diff options
author | Chad Rosier <mcrosier@codeaurora.org> | 2016-07-06 21:20:47 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@codeaurora.org> | 2016-07-06 21:20:47 +0000 |
commit | 232e29ebeaa61a9fb394a9dbdf90c0e8513b8358 (patch) | |
tree | 833f336861987ca3c08de6cb2b44719325918869 /llvm/lib/Transforms | |
parent | a29971faeb4fa8169388335ea8b3f2d5f97660d8 (diff) | |
download | bcm5719-llvm-232e29ebeaa61a9fb394a9dbdf90c0e8513b8358.tar.gz bcm5719-llvm-232e29ebeaa61a9fb394a9dbdf90c0e8513b8358.zip |
[MemorySSA] Reinstate the legacy printer and verifier.
Differential Revision: http://reviews.llvm.org/D22058
llvm-svn: 274679
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Utils/MemorySSA.cpp | 30 | ||||
-rw-r--r-- | llvm/lib/Transforms/Utils/Utils.cpp | 1 |
2 files changed, 31 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/MemorySSA.cpp b/llvm/lib/Transforms/Utils/MemorySSA.cpp index d13cfe35470..0aed1334571 100644 --- a/llvm/lib/Transforms/Utils/MemorySSA.cpp +++ b/llvm/lib/Transforms/Utils/MemorySSA.cpp @@ -54,6 +54,16 @@ INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) INITIALIZE_PASS_END(MemorySSAWrapperPass, "memoryssa", "Memory SSA", false, true) +INITIALIZE_PASS_BEGIN(MemorySSAPrinterLegacyPass, "print-memoryssa", + "Memory SSA Printer", false, false) +INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass) +INITIALIZE_PASS_END(MemorySSAPrinterLegacyPass, "print-memoryssa", + "Memory SSA Printer", false, false) + +static cl::opt<bool> + VerifyMemorySSA("verify-memoryssa", cl::init(false), cl::Hidden, + cl::desc("Verify MemorySSA in legacy printer pass.")); + namespace llvm { /// \brief An assembly annotator class to print Memory SSA information in /// comments. @@ -894,6 +904,26 @@ void MemoryAccess::dump() const { dbgs() << "\n"; } +char MemorySSAPrinterLegacyPass::ID = 0; + +MemorySSAPrinterLegacyPass::MemorySSAPrinterLegacyPass() : FunctionPass(ID) { + initializeMemorySSAPrinterLegacyPassPass(*PassRegistry::getPassRegistry()); +} + +void MemorySSAPrinterLegacyPass::getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + AU.addRequired<MemorySSAWrapperPass>(); + AU.addPreserved<MemorySSAWrapperPass>(); +} + +bool MemorySSAPrinterLegacyPass::runOnFunction(Function &F) { + auto &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA(); + MSSA.print(dbgs()); + if (VerifyMemorySSA) + MSSA.verifyMemorySSA(); + return false; +} + char MemorySSAAnalysis::PassID; MemorySSA MemorySSAAnalysis::run(Function &F, AnalysisManager<Function> &AM) { diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp index e363dd40da7..8f85f19efe3 100644 --- a/llvm/lib/Transforms/Utils/Utils.cpp +++ b/llvm/lib/Transforms/Utils/Utils.cpp @@ -34,6 +34,7 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) { initializeInstSimplifierPass(Registry); initializeMetaRenamerPass(Registry); initializeMemorySSAWrapperPassPass(Registry); + initializeMemorySSAPrinterLegacyPassPass(Registry); } /// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses. |