mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +02:00
6674588: (Escape Analysis) Improve Escape Analysis code
Current EA code has several problems which have to be fixed. Reviewed-by: jrose, sgoldman
This commit is contained in:
parent
30dc0edfc8
commit
fc0117cb9a
12 changed files with 1352 additions and 523 deletions
|
@ -587,11 +587,6 @@ ConNode* PhaseValues::uncached_makecon(const Type *t) {
|
|||
Node_Notes* loc = C->locate_node_notes(nna, x->_idx, true);
|
||||
loc->clear(); // do not put debug info on constants
|
||||
}
|
||||
// Collect points-to information for escape analysys
|
||||
ConnectionGraph *cgr = C->congraph();
|
||||
if (cgr != NULL) {
|
||||
cgr->record_escape(x, this);
|
||||
}
|
||||
} else {
|
||||
x->destruct(); // Hit, destroy duplicate constant
|
||||
x = k; // use existing constant
|
||||
|
@ -714,12 +709,6 @@ Node *PhaseGVN::transform_no_reclaim( Node *n ) {
|
|||
return i;
|
||||
}
|
||||
|
||||
// Collect points-to information for escape analysys
|
||||
ConnectionGraph *cgr = C->congraph();
|
||||
if (cgr != NULL) {
|
||||
cgr->record_escape(k, this);
|
||||
}
|
||||
|
||||
// Return Idealized original
|
||||
return k;
|
||||
}
|
||||
|
@ -1245,7 +1234,7 @@ void PhaseIterGVN::add_users_to_worklist( Node *n ) {
|
|||
|
||||
uint use_op = use->Opcode();
|
||||
// If changed Cast input, check Phi users for simple cycles
|
||||
if( use->is_ConstraintCast() || use->Opcode() == Op_CheckCastPP ) {
|
||||
if( use->is_ConstraintCast() || use->is_CheckCastPP() ) {
|
||||
for (DUIterator_Fast i2max, i2 = use->fast_outs(i2max); i2 < i2max; i2++) {
|
||||
Node* u = use->fast_out(i2);
|
||||
if (u->is_Phi())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue