src/share/vm/opto/memnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 7081933 Cdiff src/share/vm/opto/memnode.hpp

src/share/vm/opto/memnode.hpp

Print this page

        

*** 940,950 **** // Isolation of object setup after an AllocateNode and before next safepoint. // (See comment in memnode.cpp near InitializeNode::InitializeNode for semantics.) class InitializeNode: public MemBarNode { friend class AllocateNode; ! bool _is_complete; public: enum { Control = TypeFunc::Control, Memory = TypeFunc::Memory, // MergeMem for states affected by this op --- 940,955 ---- // Isolation of object setup after an AllocateNode and before next safepoint. // (See comment in memnode.cpp near InitializeNode::InitializeNode for semantics.) class InitializeNode: public MemBarNode { friend class AllocateNode; ! enum { ! Incomplete = 0, ! Complete = 1, ! WithArraycopy = 2 ! }; ! int _is_complete; public: enum { Control = TypeFunc::Control, Memory = TypeFunc::Memory, // MergeMem for states affected by this op
*** 974,987 **** bool is_non_zero(); // An InitializeNode must completed before macro expansion is done. // Completion requires that the AllocateNode must be followed by // initialization of the new memory to zero, then to any initializers. ! bool is_complete() { return _is_complete; } // Mark complete. (Must not yet be complete.) void set_complete(PhaseGVN* phase); #ifdef ASSERT // ensure all non-degenerate stores are ordered and non-overlapping bool stores_are_sane(PhaseTransform* phase); #endif //ASSERT --- 979,994 ---- bool is_non_zero(); // An InitializeNode must completed before macro expansion is done. // Completion requires that the AllocateNode must be followed by // initialization of the new memory to zero, then to any initializers. ! bool is_complete() { return _is_complete != Incomplete; } ! bool is_complete_with_arraycopy() { return (_is_complete & WithArraycopy) != 0; } // Mark complete. (Must not yet be complete.) void set_complete(PhaseGVN* phase); + void set_complete_with_arraycopy() { _is_complete = Complete | WithArraycopy; } #ifdef ASSERT // ensure all non-degenerate stores are ordered and non-overlapping bool stores_are_sane(PhaseTransform* phase); #endif //ASSERT
src/share/vm/opto/memnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File