During unswitching PhaseIdealLoop::create_slow_version_of_loop() calls PhaseIdealLoop::clone_predicates_to_unswitched_loop() twice, one for each loops, to clone some predicates above each loop. That code is fragile as it (implicitly) requires the fast loop to be processed first. I propose calling PhaseIdealLoop::clone_predicates_to_unswitched_loop() a single time and have it handle both loops in a single pass.
|