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

Ahmed Bougacha via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 2 15:44:10 PDT 2017


ab created this revision.

This is an alternative to https://reviews.llvm.org/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.


https://reviews.llvm.org/D32766

Files:
  include/llvm/CodeGen/SelectionDAG.h
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  lib/CodeGen/TwoAddressInstructionPass.cpp
  test/CodeGen/X86/O0-pipeline.ll
  test/CodeGen/X86/pr32284.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32766.97514.patch
Type: text/x-patch
Size: 15003 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170502/2f9d4552/attachment.bin>


More information about the llvm-commits mailing list