< prev index next >
src/hotspot/share/opto/escape.cpp
Print this page
rev 49911 : imported patch removeAllGCs
*** 35,47 ****
#include "opto/compile.hpp"
#include "opto/escape.hpp"
#include "opto/phaseX.hpp"
#include "opto/movenode.hpp"
#include "opto/rootnode.hpp"
! #if INCLUDE_ALL_GCS
#include "gc/g1/g1ThreadLocalData.hpp"
! #endif // INCLUDE_ALL_GCS
ConnectionGraph::ConnectionGraph(Compile * C, PhaseIterGVN *igvn) :
_nodes(C->comp_arena(), C->unique(), C->unique(), NULL),
_in_worklist(C->comp_arena()),
_next_pidx(0),
--- 35,47 ----
#include "opto/compile.hpp"
#include "opto/escape.hpp"
#include "opto/phaseX.hpp"
#include "opto/movenode.hpp"
#include "opto/rootnode.hpp"
! #if INCLUDE_G1GC
#include "gc/g1/g1ThreadLocalData.hpp"
! #endif // INCLUDE_G1GC
ConnectionGraph::ConnectionGraph(Compile * C, PhaseIterGVN *igvn) :
_nodes(C->comp_arena(), C->unique(), C->unique(), NULL),
_in_worklist(C->comp_arena()),
_next_pidx(0),
*** 536,545 ****
--- 536,546 ----
// Stored value escapes in unsafe access.
if ((opcode == Op_StoreP) && adr_type->isa_rawptr()) {
// Pointer stores in G1 barriers looks like unsafe access.
// Ignore such stores to be able scalar replace non-escaping
// allocations.
+ #if INCLUDE_G1GC
if (UseG1GC && adr->is_AddP()) {
Node* base = get_addp_base(adr);
if (base->Opcode() == Op_LoadP &&
base->in(MemNode::Address)->is_AddP()) {
adr = base->in(MemNode::Address);
*** 553,562 ****
--- 554,564 ----
break; // G1 post barrier card address store.
}
}
}
}
+ #endif
delayed_worklist->push(n); // Process unsafe access later.
break;
}
#ifdef ASSERT
n->dump(1);
< prev index next >