[PATCH] D12080: [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible with the new pass manager, and no longer relying on analysis groups.

Chandler Carruth via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 18 20:57:10 PDT 2015


chandlerc updated this revision to Diff 32498.
chandlerc added a comment.

Complete all of the porting, wire up all the pass preservation semantics, fix
all of the test cases, etc. Also rebase onto top-of-tree which includes several
fixes needed to get the AA stuff working.

This patch now passes all tests and could be landed. The only substantial
feature (that I'm aware of) missing is a repalcement for AliasAnalysisCounter.
I'd like to do that in a follow-up patch as no tests actually need it.

Please review! (Seriously, the sooner the better, this thing is a nightmare to
rebase...)


http://reviews.llvm.org/D12080

Files:
  diff.txt
  include/llvm/Analysis/AliasAnalysis.h
  include/llvm/Analysis/AliasAnalysisCounter.h
  include/llvm/Analysis/AliasSetTracker.h
  include/llvm/Analysis/BasicAliasAnalysis.h
  include/llvm/Analysis/CFLAliasAnalysis.h
  include/llvm/Analysis/DependenceAnalysis.h
  include/llvm/Analysis/GlobalsModRef.h
  include/llvm/Analysis/Loads.h
  include/llvm/Analysis/LoopAccessAnalysis.h
  include/llvm/Analysis/MemoryDependenceAnalysis.h
  include/llvm/Analysis/ObjCARCAliasAnalysis.h
  include/llvm/Analysis/Passes.h
  include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
  include/llvm/Analysis/ScopedNoAliasAA.h
  include/llvm/Analysis/TypeBasedAliasAnalysis.h
  include/llvm/CodeGen/LiveIntervalAnalysis.h
  include/llvm/CodeGen/LiveRangeEdit.h
  include/llvm/CodeGen/MachineInstr.h
  include/llvm/CodeGen/MachineScheduler.h
  include/llvm/CodeGen/ScheduleDAG.h
  include/llvm/CodeGen/SelectionDAG.h
  include/llvm/InitializePasses.h
  include/llvm/LinkAllPasses.h
  include/llvm/Transforms/Utils/Cloning.h
  include/llvm/Transforms/Utils/Local.h
  include/llvm/Transforms/Utils/LoopUtils.h
  lib/Analysis/AliasAnalysis.cpp
  lib/Analysis/AliasAnalysisCounter.cpp
  lib/Analysis/AliasAnalysisEvaluator.cpp
  lib/Analysis/AliasSetTracker.cpp
  lib/Analysis/Analysis.cpp
  lib/Analysis/BasicAliasAnalysis.cpp
  lib/Analysis/CFLAliasAnalysis.cpp
  lib/Analysis/CMakeLists.txt
  lib/Analysis/DependenceAnalysis.cpp
  lib/Analysis/GlobalsModRef.cpp
  lib/Analysis/Lint.cpp
  lib/Analysis/LoopAccessAnalysis.cpp
  lib/Analysis/MemDepPrinter.cpp
  lib/Analysis/MemoryDependenceAnalysis.cpp
  lib/Analysis/NoAliasAnalysis.cpp
  lib/Analysis/ObjCARCAliasAnalysis.cpp
  lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
  lib/Analysis/ScopedNoAliasAA.cpp
  lib/Analysis/TypeBasedAliasAnalysis.cpp
  lib/CodeGen/InlineSpiller.cpp
  lib/CodeGen/LiveIntervalAnalysis.cpp
  lib/CodeGen/MachineCSE.cpp
  lib/CodeGen/MachineFunctionPass.cpp
  lib/CodeGen/MachineLICM.cpp
  lib/CodeGen/MachineScheduler.cpp
  lib/CodeGen/MachineSink.cpp
  lib/CodeGen/Passes.cpp
  lib/CodeGen/PostRASchedulerList.cpp
  lib/CodeGen/ProcessImplicitDefs.cpp
  lib/CodeGen/RegAllocBasic.cpp
  lib/CodeGen/RegAllocGreedy.cpp
  lib/CodeGen/RegAllocPBQP.cpp
  lib/CodeGen/RegisterCoalescer.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  lib/CodeGen/TwoAddressInstructionPass.cpp
  lib/LTO/LTOCodeGenerator.cpp
  lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
  lib/Target/PowerPC/PPCLoopDataPrefetch.cpp
  lib/Transforms/IPO/ArgumentPromotion.cpp
  lib/Transforms/IPO/FunctionAttrs.cpp
  lib/Transforms/IPO/InlineAlways.cpp
  lib/Transforms/IPO/InlineSimple.cpp
  lib/Transforms/IPO/Inliner.cpp
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/InstCombine/InstructionCombining.cpp
  lib/Transforms/Instrumentation/SafeStack.cpp
  lib/Transforms/ObjCARC/ObjCARC.cpp
  lib/Transforms/ObjCARC/ObjCARCContract.cpp
  lib/Transforms/ObjCARC/ObjCARCOpts.cpp
  lib/Transforms/ObjCARC/ProvenanceAnalysis.h
  lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp
  lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
  lib/Transforms/Scalar/DeadStoreElimination.cpp
  lib/Transforms/Scalar/FlattenCFGPass.cpp
  lib/Transforms/Scalar/Float2Int.cpp
  lib/Transforms/Scalar/GVN.cpp
  lib/Transforms/Scalar/IndVarSimplify.cpp
  lib/Transforms/Scalar/LICM.cpp
  lib/Transforms/Scalar/LoadCombine.cpp
  lib/Transforms/Scalar/LoopDeletion.cpp
  lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  lib/Transforms/Scalar/LoopInstSimplify.cpp
  lib/Transforms/Scalar/LoopInterchange.cpp
  lib/Transforms/Scalar/LoopRerollPass.cpp
  lib/Transforms/Scalar/LoopRotation.cpp
  lib/Transforms/Scalar/LoopStrengthReduce.cpp
  lib/Transforms/Scalar/LoopUnrollPass.cpp
  lib/Transforms/Scalar/LoopUnswitch.cpp
  lib/Transforms/Scalar/MemCpyOptimizer.cpp
  lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
  lib/Transforms/Scalar/NaryReassociate.cpp
  lib/Transforms/Scalar/Scalar.cpp
  lib/Transforms/Scalar/Sink.cpp
  lib/Transforms/Utils/InlineFunction.cpp
  lib/Transforms/Utils/LCSSA.cpp
  lib/Transforms/Utils/LoopSimplify.cpp
  lib/Transforms/Vectorize/BBVectorize.cpp
  lib/Transforms/Vectorize/LoopVectorize.cpp
  lib/Transforms/Vectorize/SLPVectorizer.cpp
  test/Analysis/BasicAA/full-store-partial-alias.ll
  test/Analysis/CFLAliasAnalysis/arguments-globals.ll
  test/Analysis/CFLAliasAnalysis/basic-interproc.ll
  test/Analysis/CFLAliasAnalysis/branch-alias.ll
  test/Analysis/CFLAliasAnalysis/const-expr-gep.ll
  test/Analysis/CFLAliasAnalysis/full-store-partial-alias.ll
  test/Analysis/CFLAliasAnalysis/gep-signed-arithmetic.ll
  test/Analysis/CFLAliasAnalysis/multilevel-combine.ll
  test/Analysis/CFLAliasAnalysis/must-and-partial.ll
  test/Analysis/CFLAliasAnalysis/va.ll
  test/Analysis/DependenceAnalysis/PR21585.ll
  test/Analysis/GlobalsModRef/2008-09-03-ReadGlobals.ll
  test/Analysis/GlobalsModRef/aliastest.ll
  test/Analysis/GlobalsModRef/atomic-instrs.ll
  test/Analysis/GlobalsModRef/chaining-analysis.ll
  test/Analysis/GlobalsModRef/indirect-global.ll
  test/Analysis/GlobalsModRef/modreftest.ll
  test/Analysis/GlobalsModRef/nonescaping-noalias.ll
  test/Analysis/GlobalsModRef/pr12351.ll
  test/Analysis/GlobalsModRef/purecse.ll
  test/Analysis/ScalarEvolution/scev-aa.ll
  test/Analysis/TypeBasedAliasAnalysis/precedence.ll
  test/Transforms/BBVectorize/X86/wr-aliases.ll
  test/Transforms/GVN/crash-no-aa.ll
  test/Transforms/GVN/pr14166.ll
  test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll
  test/Transforms/LICM/hoist-invariant-load.ll
  test/Transforms/LoopVectorize/X86/reduction-crash.ll
  test/Transforms/ObjCARC/provenance.ll
  unittests/Analysis/AliasAnalysisTest.cpp
  unittests/Analysis/MixedTBAATest.cpp
  unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h
  utils/shuffle_test.py
  utils/shuffle_test_gen.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12080.32498.patch
Type: text/x-patch
Size: 326821 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150819/1cc12800/attachment-0001.bin>


More information about the llvm-commits mailing list