< prev index next >

src/share/vm/opto/arraycopynode.hpp

Print this page




 136                              Node* src_klass = NULL, Node* dest_klass = NULL,
 137                              Node* src_length = NULL, Node* dest_length = NULL);
 138 
 139   void connect_outputs(GraphKit* kit);
 140 
 141   bool is_arraycopy()             const  { assert(_kind != None, "should bet set"); return _kind == ArrayCopy; }
 142   bool is_arraycopy_validated()   const  { assert(_kind != None, "should bet set"); return _kind == ArrayCopy && _arguments_validated; }
 143   bool is_clonebasic()            const  { assert(_kind != None, "should bet set"); return _kind == CloneBasic; }
 144   bool is_cloneoop()              const  { assert(_kind != None, "should bet set"); return _kind == CloneOop; }
 145   bool is_copyof()                const  { assert(_kind != None, "should bet set"); return _kind == CopyOf; }
 146   bool is_copyof_validated()      const  { assert(_kind != None, "should bet set"); return _kind == CopyOf && _arguments_validated; }
 147   bool is_copyofrange()           const  { assert(_kind != None, "should bet set"); return _kind == CopyOfRange; }
 148   bool is_copyofrange_validated() const  { assert(_kind != None, "should bet set"); return _kind == CopyOfRange && _arguments_validated; }
 149 
 150   void set_arraycopy(bool validated)   { assert(_kind == None, "shouldn't bet set yet"); _kind = ArrayCopy; _arguments_validated = validated; }
 151   void set_clonebasic()                { assert(_kind == None, "shouldn't bet set yet"); _kind = CloneBasic; }
 152   void set_cloneoop()                  { assert(_kind == None, "shouldn't bet set yet"); _kind = CloneOop; }
 153   void set_copyof(bool validated)      { assert(_kind == None, "shouldn't bet set yet"); _kind = CopyOf; _arguments_validated = validated; }
 154   void set_copyofrange(bool validated) { assert(_kind == None, "shouldn't bet set yet"); _kind = CopyOfRange; _arguments_validated = validated; }
 155 
 156   virtual int Opcode() const;
 157   virtual uint size_of() const; // Size is bigger
 158   virtual bool guaranteed_safepoint()  { return false; }
 159   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 160 
 161   virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase);
 162 
 163   bool is_alloc_tightly_coupled() const { return _alloc_tightly_coupled; }
 164 
 165   static bool may_modify(const TypeOopPtr *t_oop, MemBarNode* mb, PhaseTransform *phase, ArrayCopyNode*& ac);
 166   bool modifies(intptr_t offset_lo, intptr_t offset_hi, PhaseTransform* phase, bool must_modify);
 167 
 168 #ifndef PRODUCT
 169   virtual void dump_spec(outputStream *st) const;
 170   virtual void dump_compact_spec(outputStream* st) const;
 171 #endif
 172 };
 173 #endif // SHARE_VM_OPTO_ARRAYCOPYNODE_HPP


 136                              Node* src_klass = NULL, Node* dest_klass = NULL,
 137                              Node* src_length = NULL, Node* dest_length = NULL);
 138 
 139   void connect_outputs(GraphKit* kit);
 140 
 141   bool is_arraycopy()             const  { assert(_kind != None, "should bet set"); return _kind == ArrayCopy; }
 142   bool is_arraycopy_validated()   const  { assert(_kind != None, "should bet set"); return _kind == ArrayCopy && _arguments_validated; }
 143   bool is_clonebasic()            const  { assert(_kind != None, "should bet set"); return _kind == CloneBasic; }
 144   bool is_cloneoop()              const  { assert(_kind != None, "should bet set"); return _kind == CloneOop; }
 145   bool is_copyof()                const  { assert(_kind != None, "should bet set"); return _kind == CopyOf; }
 146   bool is_copyof_validated()      const  { assert(_kind != None, "should bet set"); return _kind == CopyOf && _arguments_validated; }
 147   bool is_copyofrange()           const  { assert(_kind != None, "should bet set"); return _kind == CopyOfRange; }
 148   bool is_copyofrange_validated() const  { assert(_kind != None, "should bet set"); return _kind == CopyOfRange && _arguments_validated; }
 149 
 150   void set_arraycopy(bool validated)   { assert(_kind == None, "shouldn't bet set yet"); _kind = ArrayCopy; _arguments_validated = validated; }
 151   void set_clonebasic()                { assert(_kind == None, "shouldn't bet set yet"); _kind = CloneBasic; }
 152   void set_cloneoop()                  { assert(_kind == None, "shouldn't bet set yet"); _kind = CloneOop; }
 153   void set_copyof(bool validated)      { assert(_kind == None, "shouldn't bet set yet"); _kind = CopyOf; _arguments_validated = validated; }
 154   void set_copyofrange(bool validated) { assert(_kind == None, "shouldn't bet set yet"); _kind = CopyOfRange; _arguments_validated = validated; }
 155 
 156   virtual Opcodes Opcode() const;
 157   virtual uint size_of() const; // Size is bigger
 158   virtual bool guaranteed_safepoint()  { return false; }
 159   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
 160 
 161   virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase);
 162 
 163   bool is_alloc_tightly_coupled() const { return _alloc_tightly_coupled; }
 164 
 165   static bool may_modify(const TypeOopPtr *t_oop, MemBarNode* mb, PhaseTransform *phase, ArrayCopyNode*& ac);
 166   bool modifies(intptr_t offset_lo, intptr_t offset_hi, PhaseTransform* phase, bool must_modify);
 167 
 168 #ifndef PRODUCT
 169   virtual void dump_spec(outputStream *st) const;
 170   virtual void dump_compact_spec(outputStream* st) const;
 171 #endif
 172 };
 173 #endif // SHARE_VM_OPTO_ARRAYCOPYNODE_HPP
< prev index next >