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