Page MenuHomePhabricator

[LoopRotate] Add explicit flag to require MSSA.
Changes PlannedPublic

Authored by asbirlea on Feb 14 2020, 1:07 PM.

Details

Summary

Add an explicit flag to require MSSA when LoopRotate is known to join a
loop pass pipeline with other passes that will require the anlysis.
This undoes the pipeline split from D74574, but keep the analysis from
being run when LoopRotate is run alone in the loop pipeline.

Diff Detail

Event Timeline

asbirlea created this revision.Feb 14 2020, 1:07 PM
fhahn added inline comments.Feb 19 2020, 2:50 PM
llvm/lib/Transforms/Scalar/LoopRotation.cpp
80

nit: initialise directly in the initialiser list?

88

Would it be slightly simpler to just have RequireMSSA == true mean that we require and preserve it and RequireMSSA == false means neither require nor preserve it? I think both approaches are fine, but in the current pipeline the case we can preserve MSSA without requiring it is not going to happen I guess?

asbirlea planned changes to this revision.Feb 25 2020, 10:36 AM

This re-regresses PR44408 and PR44889 at ToT today.
I am planning to resolve the underlying cause (a new DT being built when doing MSSA updates) before coming back to this. The regression will not occur when that work is done (I have tested this already).