mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-20 19:14:38 +02:00
7107042: assert(no_dead_loop) failed: dead loop detected
Use dead nodes elimination code in PhaseIdealLoop before executing EA. Reviewed-by: never, twisti
This commit is contained in:
parent
dc1f4fe50e
commit
09b7902e14
9 changed files with 57 additions and 23 deletions
|
@ -1883,7 +1883,7 @@ void PhaseIdealLoop::eliminate_useless_predicates() {
|
|||
//----------------------------build_and_optimize-------------------------------
|
||||
// Create a PhaseLoop. Build the ideal Loop tree. Map each Ideal Node to
|
||||
// its corresponding LoopNode. If 'optimize' is true, do some loop cleanups.
|
||||
void PhaseIdealLoop::build_and_optimize(bool do_split_ifs) {
|
||||
void PhaseIdealLoop::build_and_optimize(bool do_split_ifs, bool skip_loop_opts) {
|
||||
ResourceMark rm;
|
||||
|
||||
int old_progress = C->major_progress();
|
||||
|
@ -2072,6 +2072,16 @@ void PhaseIdealLoop::build_and_optimize(bool do_split_ifs) {
|
|||
}
|
||||
#endif
|
||||
|
||||
if (skip_loop_opts) {
|
||||
// Cleanup any modified bits
|
||||
_igvn.optimize();
|
||||
|
||||
if (C->log() != NULL) {
|
||||
log_loop_tree(_ltree_root, _ltree_root, C->log());
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (ReassociateInvariants) {
|
||||
// Reassociate invariants and prep for split_thru_phi
|
||||
for (LoopTreeIterator iter(_ltree_root); !iter.done(); iter.next()) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue