Projects
openEuler:24.03:SP1:Everything
openjdk-1.8.0
_service:tar_scm:8223486-split-if-update_uses-a...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:8223486-split-if-update_uses-accesses-stale-idom-dat.patch of Package openjdk-1.8.0
Subject: 8223486: split-if update_uses accesses stale idom data --- hotspot/src/share/vm/opto/split_if.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hotspot/src/share/vm/opto/split_if.cpp b/hotspot/src/share/vm/opto/split_if.cpp index 94d680c11..636af191d 100644 --- a/hotspot/src/share/vm/opto/split_if.cpp +++ b/hotspot/src/share/vm/opto/split_if.cpp @@ -486,7 +486,9 @@ void PhaseIdealLoop::do_split_if( Node *iff ) { } _igvn.remove_dead_node(new_iff); // Lazy replace IDOM info with the region's dominator - lazy_replace( iff, region_dom ); + lazy_replace(iff, region_dom); + lazy_update(region, region_dom); // idom must be update before handle_uses + region->set_req(0, NULL); // Break the self-cycle. Required for lazy_update to work on region // Now make the original merge point go dead, by handling all its uses. small_cache region_cache; @@ -529,13 +531,8 @@ void PhaseIdealLoop::do_split_if( Node *iff ) { --k; } // End of while merge point has phis - assert(region->outcnt() == 1, "Only self reference should remain"); // Just Self on the Region - region->set_req(0, NULL); // Break the self-cycle + _igvn.remove_dead_node(region); - // Any leftover bits in the splitting block must not have depended on local - // Phi inputs (these have already been split-up). Hence it's safe to hoist - // these guys to the dominating point. - lazy_replace( region, region_dom ); #ifndef PRODUCT if( VerifyLoopOptimizations ) verify(); #endif -- 2.19.1
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2