Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/macro.cpp @ 601:523ded093c31
6809798: SafePointScalarObject node placed into incorrect block during GCM
Summary: Replace the control edge of a pinned node before scheduling.
Reviewed-by: never
author | kvn |
---|---|
date | Thu, 26 Feb 2009 14:26:02 -0800 |
parents | 49a36a80b0c7 |
children | 98cb887364d3 |
comparison
equal
deleted
inserted
replaced
600:07d449658fc7 | 601:523ded093c31 |
---|---|
62 if (old_in != NULL && old_in->is_SafePointScalarObject()) { | 62 if (old_in != NULL && old_in->is_SafePointScalarObject()) { |
63 SafePointScalarObjectNode* old_sosn = old_in->as_SafePointScalarObject(); | 63 SafePointScalarObjectNode* old_sosn = old_in->as_SafePointScalarObject(); |
64 uint old_unique = C->unique(); | 64 uint old_unique = C->unique(); |
65 Node* new_in = old_sosn->clone(jvms_adj, sosn_map); | 65 Node* new_in = old_sosn->clone(jvms_adj, sosn_map); |
66 if (old_unique != C->unique()) { | 66 if (old_unique != C->unique()) { |
67 new_in->set_req(0, newcall->in(0)); // reset control edge | |
67 new_in = transform_later(new_in); // Register new node. | 68 new_in = transform_later(new_in); // Register new node. |
68 } | 69 } |
69 old_in = new_in; | 70 old_in = new_in; |
70 } | 71 } |
71 newcall->add_req(old_in); | 72 newcall->add_req(old_in); |