[PATCH] D28627: [PM] Introduce an analysis set used to preserve all analyses over a function's CFG when that CFG is unchanged.

Chandler Carruth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 12 15:21:05 PST 2017


chandlerc created this revision.
chandlerc added reviewers: jlebar, bogner, mehdi_amini, silvas, davide.
chandlerc added a subscriber: llvm-commits.
Herald added subscribers: david2050, mzolotukhin, mcrosier.

This allows transformation passes to simply claim they preserve the CFG
and analysis passes to check for the CFG being preserved to remove the
fanout of all analyses being listed in all passes.

I've gone through and removed or cleaned up as many of the comments
reminding us to do this as I could.

The name for this set is ... *TERRIBLE* though. And so is the name for the
static helper function that builds one of these. I'd really lik suggestions on
better names here as I drew a complete blank. Especially if they'll be
consistent and pattern nicely with the other examples we have. These are
especially easy for me to rename.


https://reviews.llvm.org/D28627

Files:
  include/llvm/Analysis/BlockFrequencyInfo.h
  include/llvm/Analysis/DominanceFrontier.h
  include/llvm/Analysis/LoopInfo.h
  include/llvm/Analysis/PostDominators.h
  include/llvm/Analysis/RegionInfo.h
  include/llvm/IR/Dominators.h
  include/llvm/IR/PassManager.h
  lib/Analysis/BlockFrequencyInfo.cpp
  lib/Analysis/DominanceFrontier.cpp
  lib/Analysis/LoopInfo.cpp
  lib/Analysis/PostDominators.cpp
  lib/Analysis/RegionInfo.cpp
  lib/IR/Dominators.cpp
  lib/IR/PassManager.cpp
  lib/Transforms/InstCombine/InstructionCombining.cpp
  lib/Transforms/Scalar/ADCE.cpp
  lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
  lib/Transforms/Scalar/BDCE.cpp
  lib/Transforms/Scalar/ConstantHoisting.cpp
  lib/Transforms/Scalar/DCE.cpp
  lib/Transforms/Scalar/DeadStoreElimination.cpp
  lib/Transforms/Scalar/EarlyCSE.cpp
  lib/Transforms/Scalar/Float2Int.cpp
  lib/Transforms/Scalar/GuardWidening.cpp
  lib/Transforms/Scalar/IndVarSimplify.cpp
  lib/Transforms/Scalar/LICM.cpp
  lib/Transforms/Scalar/LoopInstSimplify.cpp
  lib/Transforms/Scalar/LoopRotation.cpp
  lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  lib/Transforms/Scalar/LoopUnrollPass.cpp
  lib/Transforms/Scalar/MemCpyOptimizer.cpp
  lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
  lib/Transforms/Scalar/NaryReassociate.cpp
  lib/Transforms/Scalar/Reassociate.cpp
  lib/Transforms/Scalar/SROA.cpp
  lib/Transforms/Scalar/Sink.cpp
  lib/Transforms/Utils/LCSSA.cpp
  lib/Transforms/Utils/Mem2Reg.cpp
  lib/Transforms/Utils/SimplifyInstructions.cpp
  lib/Transforms/Vectorize/SLPVectorizer.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28627.84182.patch
Type: text/x-patch
Size: 25732 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170112/6f9445ac/attachment.bin>


More information about the llvm-commits mailing list