< prev index next >

src/hotspot/share/opto/callnode.hpp

Print this page




 874   // Result of Escape Analysis
 875   bool _is_scalar_replaceable;
 876   bool _is_non_escaping;
 877   // True when MemBar for new is redundant with MemBar at initialzer exit
 878   bool _is_allocation_MemBar_redundant;
 879 
 880   virtual uint size_of() const; // Size is bigger
 881   AllocateNode(Compile* C, const TypeFunc *atype, Node *ctrl, Node *mem, Node *abio,
 882                Node *size, Node *klass_node, Node *initial_test, ValueTypeBaseNode* value_node = NULL);
 883   // Expansion modifies the JVMState, so we need to clone it
 884   virtual void  clone_jvms(Compile* C) {
 885     if (jvms() != NULL) {
 886       set_jvms(jvms()->clone_deep(C));
 887       jvms()->set_map_deep(this);
 888     }
 889   }
 890   virtual int Opcode() const;
 891   virtual uint ideal_reg() const { return Op_RegP; }
 892   virtual bool        guaranteed_safepoint()  { return false; }
 893 


 894   // allocations do not modify their arguments
 895   virtual bool        may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase) { return false;}
 896 
 897   // Pattern-match a possible usage of AllocateNode.
 898   // Return null if no allocation is recognized.
 899   // The operand is the pointer produced by the (possible) allocation.
 900   // It must be a projection of the Allocate or its subsequent CastPP.
 901   // (Note:  This function is defined in file graphKit.cpp, near
 902   // GraphKit::new_instance/new_array, whose output it recognizes.)
 903   // The 'ptr' may not have an offset unless the 'offset' argument is given.
 904   static AllocateNode* Ideal_allocation(Node* ptr, PhaseTransform* phase);
 905 
 906   // Fancy version which uses AddPNode::Ideal_base_and_offset to strip
 907   // an offset, which is reported back to the caller.
 908   // (Note:  AllocateNode::Ideal_allocation is defined in graphKit.cpp.)
 909   static AllocateNode* Ideal_allocation(Node* ptr, PhaseTransform* phase,
 910                                         intptr_t& offset);
 911 
 912   // Dig the klass operand out of a (possible) allocation site.
 913   static Node* Ideal_klass(Node* ptr, PhaseTransform* phase) {




 874   // Result of Escape Analysis
 875   bool _is_scalar_replaceable;
 876   bool _is_non_escaping;
 877   // True when MemBar for new is redundant with MemBar at initialzer exit
 878   bool _is_allocation_MemBar_redundant;
 879 
 880   virtual uint size_of() const; // Size is bigger
 881   AllocateNode(Compile* C, const TypeFunc *atype, Node *ctrl, Node *mem, Node *abio,
 882                Node *size, Node *klass_node, Node *initial_test, ValueTypeBaseNode* value_node = NULL);
 883   // Expansion modifies the JVMState, so we need to clone it
 884   virtual void  clone_jvms(Compile* C) {
 885     if (jvms() != NULL) {
 886       set_jvms(jvms()->clone_deep(C));
 887       jvms()->set_map_deep(this);
 888     }
 889   }
 890   virtual int Opcode() const;
 891   virtual uint ideal_reg() const { return Op_RegP; }
 892   virtual bool        guaranteed_safepoint()  { return false; }
 893 
 894   virtual Node* Ideal(PhaseGVN* phase, bool can_reshape);
 895 
 896   // allocations do not modify their arguments
 897   virtual bool        may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase) { return false;}
 898 
 899   // Pattern-match a possible usage of AllocateNode.
 900   // Return null if no allocation is recognized.
 901   // The operand is the pointer produced by the (possible) allocation.
 902   // It must be a projection of the Allocate or its subsequent CastPP.
 903   // (Note:  This function is defined in file graphKit.cpp, near
 904   // GraphKit::new_instance/new_array, whose output it recognizes.)
 905   // The 'ptr' may not have an offset unless the 'offset' argument is given.
 906   static AllocateNode* Ideal_allocation(Node* ptr, PhaseTransform* phase);
 907 
 908   // Fancy version which uses AddPNode::Ideal_base_and_offset to strip
 909   // an offset, which is reported back to the caller.
 910   // (Note:  AllocateNode::Ideal_allocation is defined in graphKit.cpp.)
 911   static AllocateNode* Ideal_allocation(Node* ptr, PhaseTransform* phase,
 912                                         intptr_t& offset);
 913 
 914   // Dig the klass operand out of a (possible) allocation site.
 915   static Node* Ideal_klass(Node* ptr, PhaseTransform* phase) {


< prev index next >