This is an archive of the discontinued LLVM Phabricator instance.

[CodeGen] Don't require AA in SDAG/2Addr at CodeGenOpt::None.
ClosedPublic

Authored by ab on May 2 2017, 3:44 PM.

Details

Summary

This is an alternative to D31642.

Before r247167, the pass manager builder controlled which AA
implementations were used, exporting them all in the AliasAnalysis
analysis group.

Now, AAResultsWrapperPass always uses BasicAA, but still uses other
AA implementations if made available in the pass pipeline.

But regardless, both SDAG and TwoAddress are required at O0, and really
don't need to be doing fancy optimizations based on useful AA results.

Don't require AA at CodeGenOpt::None, and only use it otherwise.

This does have a functional impact (and one testcase is pessimized
because we can't reuse a load).
But I think that's desirable no matter what.

Diff Detail

Event Timeline

ab created this revision.May 2 2017, 3:44 PM
chandlerc accepted this revision.May 2 2017, 10:40 PM

LGTM, nice!

This revision is now accepted and ready to land.May 2 2017, 10:40 PM
This revision was automatically updated to reflect the committed changes.