-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Open
Labels
Description
| Bugzilla Link | 9184 |
| Version | trunk |
| OS | All |
| Reporter | LLVM Bugzilla Contributor |
Extended Description
Currently, this analysis usage (taken from LoopStrengthReduce)
AU.addRequired();
AU.addRequiredID(LoopSimplifyID);
AU.addRequired();
AU.addRequired();
AU.addRequired();
causes this pass order:
Natural Loop Information
Loop Pass Manager
Canonicalize natural loops
Scalar Evolution Analysis
Loop Pass Manager
Induction Variable Users
Canonicalize natural loops
Induction Variable Users
Loop Strength Reduction
The PassManager should move ScalarEvolution before all of the loop passes, since they all preserve ScalarEvolution. It is easy enough to fix this by changing the pass ordering, but in the future this could be done automatically.