[llvm] r274679 - [MemorySSA] Reinstate the legacy printer and verifier.
Chad Rosier via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 6 14:20:47 PDT 2016
Author: mcrosier
Date: Wed Jul 6 16:20:47 2016
New Revision: 274679
URL: http://llvm.org/viewvc/llvm-project?rev=274679&view=rev
Log:
[MemorySSA] Reinstate the legacy printer and verifier.
Differential Revision: http://reviews.llvm.org/D22058
Modified:
llvm/trunk/include/llvm/InitializePasses.h
llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h
llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp
llvm/trunk/lib/Transforms/Utils/Utils.cpp
llvm/trunk/test/Transforms/Util/MemorySSA/atomic-clobber.ll
llvm/trunk/test/Transforms/Util/MemorySSA/cyclicphi.ll
llvm/trunk/test/Transforms/Util/MemorySSA/function-clobber.ll
llvm/trunk/test/Transforms/Util/MemorySSA/function-mem-attrs.ll
llvm/trunk/test/Transforms/Util/MemorySSA/livein.ll
llvm/trunk/test/Transforms/Util/MemorySSA/load-invariant.ll
llvm/trunk/test/Transforms/Util/MemorySSA/many-dom-backedge.ll
llvm/trunk/test/Transforms/Util/MemorySSA/many-doms.ll
llvm/trunk/test/Transforms/Util/MemorySSA/multi-edges.ll
llvm/trunk/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll
llvm/trunk/test/Transforms/Util/MemorySSA/multiple-locations.ll
llvm/trunk/test/Transforms/Util/MemorySSA/no-disconnected.ll
llvm/trunk/test/Transforms/Util/MemorySSA/optimize-use.ll
llvm/trunk/test/Transforms/Util/MemorySSA/phi-translation.ll
llvm/trunk/test/Transforms/Util/MemorySSA/volatile-clobber.ll
Modified: llvm/trunk/include/llvm/InitializePasses.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/InitializePasses.h?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/include/llvm/InitializePasses.h (original)
+++ llvm/trunk/include/llvm/InitializePasses.h Wed Jul 6 16:20:47 2016
@@ -226,6 +226,7 @@ void initializeMemDepPrinterPass(PassReg
void initializeMemDerefPrinterPass(PassRegistry&);
void initializeMemoryDependenceWrapperPassPass(PassRegistry&);
void initializeMemorySSAWrapperPassPass(PassRegistry&);
+void initializeMemorySSAPrinterLegacyPassPass(PassRegistry &);
void initializeMemorySanitizerPass(PassRegistry&);
void initializeMergeFunctionsPass(PassRegistry&);
void initializeMergedLoadStoreMotionLegacyPassPass(PassRegistry &);
Modified: llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h (original)
+++ llvm/trunk/include/llvm/Transforms/Utils/MemorySSA.h Wed Jul 6 16:20:47 2016
@@ -626,6 +626,17 @@ private:
unsigned NextID;
};
+// This pass does eager building and then printing of MemorySSA. It is used by
+// the tests to be able to build, dump, and verify Memory SSA.
+class MemorySSAPrinterLegacyPass : public FunctionPass {
+public:
+ MemorySSAPrinterLegacyPass();
+
+ static char ID;
+ bool runOnFunction(Function &) override;
+ void getAnalysisUsage(AnalysisUsage &AU) const override;
+};
+
/// An analysis that produces \c MemorySSA for a function.
///
class MemorySSAAnalysis : public AnalysisInfoMixin<MemorySSAAnalysis> {
Modified: llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/MemorySSA.cpp Wed Jul 6 16:20:47 2016
@@ -54,6 +54,16 @@ INITIALIZE_PASS_DEPENDENCY(AAResultsWrap
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) {
Modified: llvm/trunk/lib/Transforms/Utils/Utils.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/Utils.cpp?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/Utils.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/Utils.cpp Wed Jul 6 16:20:47 2016
@@ -34,6 +34,7 @@ void llvm::initializeTransformUtils(Pass
initializeInstSimplifierPass(Registry);
initializeMetaRenamerPass(Registry);
initializeMemorySSAWrapperPassPass(Registry);
+ initializeMemorySSAPrinterLegacyPassPass(Registry);
}
/// LLVMInitializeTransformUtils - C binding for initializeTransformUtilsPasses.
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/atomic-clobber.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/atomic-clobber.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/atomic-clobber.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/atomic-clobber.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Ensures that atomic loads count as MemoryDefs
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/cyclicphi.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/cyclicphi.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/cyclicphi.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/cyclicphi.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
%struct.hoge = type { i32, %struct.widget }
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/function-clobber.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/function-clobber.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/function-clobber.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/function-clobber.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Ensuring that external functions without attributes are MemoryDefs
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/function-mem-attrs.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/function-mem-attrs.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/function-mem-attrs.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/function-mem-attrs.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Test that various function attributes give us sane results.
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/livein.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/livein.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/livein.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/livein.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
define void @F(i8*) {
br i1 true, label %left, label %right
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/load-invariant.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/load-invariant.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/load-invariant.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/load-invariant.ll Wed Jul 6 16:20:47 2016
@@ -1,5 +1,5 @@
; XFAIL: *
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>' -verify-memoryssa -disable-output < %s 2>&1 | FileCheck %s
;
; Invariant loads should be considered live on entry, because, once the
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/many-dom-backedge.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/many-dom-backedge.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/many-dom-backedge.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/many-dom-backedge.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; many-dom.ll, with an added back-edge back into the switch.
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/many-doms.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/many-doms.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/many-doms.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/many-doms.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Testing many dominators, specifically from a switch statement in C.
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/multi-edges.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/multi-edges.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/multi-edges.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/multi-edges.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Makes sure we have a sane model if both successors of some block is the same
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/multiple-backedges-hal.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
; hfinkel's case
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/multiple-locations.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/multiple-locations.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/multiple-locations.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/multiple-locations.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Checks that basicAA is doing some amount of disambiguation for us
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/no-disconnected.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/no-disconnected.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/no-disconnected.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/no-disconnected.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; This test ensures we don't end up with multiple reaching defs for a single
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/optimize-use.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/optimize-use.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/optimize-use.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/optimize-use.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
; Function Attrs: ssp uwtable
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/phi-translation.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/phi-translation.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/phi-translation.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/phi-translation.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
; %ptr can't alias %local, so we should be able to optimize the use of %local to
Modified: llvm/trunk/test/Transforms/Util/MemorySSA/volatile-clobber.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Util/MemorySSA/volatile-clobber.ll?rev=274679&r1=274678&r2=274679&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/Util/MemorySSA/volatile-clobber.ll (original)
+++ llvm/trunk/test/Transforms/Util/MemorySSA/volatile-clobber.ll Wed Jul 6 16:20:47 2016
@@ -1,4 +1,4 @@
-; RUN: opt -basicaa -memoryssa -analyze < %s 2>&1 | FileCheck %s
+; RUN: opt -basicaa -print-memoryssa -verify-memoryssa -analyze < %s 2>&1 | FileCheck %s
; RUN: opt -aa-pipeline=basic-aa -passes='print<memoryssa>,verify<memoryssa>' -disable-output < %s 2>&1 | FileCheck %s
;
; Ensures that volatile stores/loads count as MemoryDefs
More information about the llvm-commits
mailing list