From cc2e8ccc6fced5931a31f2ba90a9d1c22dc80cde Mon Sep 17 00:00:00 2001 From: Alina Sbirlea Date: Wed, 15 Aug 2018 17:34:55 +0000 Subject: [PATCH] [MemorySSA] Expose the verify as a debug option. Summary: Expose VerifyMemorySSA as a debug option. If set, passes will call the MSSA->verifyMemorySSA() after calling into the updater's APIs when MemorySSA should be valid. Reviewers: george.burgess.iv Subscribers: sanjoy, jlebar, Prazek, llvm-commits Differential Revision: https://reviews.llvm.org/D50749 llvm-svn: 339795 --- llvm/include/llvm/Support/Debug.h | 4 ++++ llvm/lib/Analysis/MemorySSA.cpp | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/llvm/include/llvm/Support/Debug.h b/llvm/include/llvm/Support/Debug.h index 980abfb0e8da..df86dbb82414 100644 --- a/llvm/include/llvm/Support/Debug.h +++ b/llvm/include/llvm/Support/Debug.h @@ -94,6 +94,10 @@ extern bool VerifyDomInfo; /// extern bool VerifyLoopInfo; +/// Enables verification of MemorySSA. +/// +extern bool VerifyMemorySSA; + ///\} /// EnableDebugBuffering - This defaults to false. If true, the debug diff --git a/llvm/lib/Analysis/MemorySSA.cpp b/llvm/lib/Analysis/MemorySSA.cpp index b38c0c4f1439..734dee2bcf1f 100644 --- a/llvm/lib/Analysis/MemorySSA.cpp +++ b/llvm/lib/Analysis/MemorySSA.cpp @@ -77,9 +77,15 @@ static cl::opt MaxCheckLimit( cl::desc("The maximum number of stores/phis MemorySSA" "will consider trying to walk past (default = 100)")); -static cl::opt - VerifyMemorySSA("verify-memoryssa", cl::init(false), cl::Hidden, - cl::desc("Verify MemorySSA in legacy printer pass.")); +// Always verify MemorySSA if expensive checking is enabled. +#ifdef EXPENSIVE_CHECKS +bool llvm::VerifyMemorySSA = true; +#else +bool llvm::VerifyMemorySSA = false; +#endif +static cl::opt + VerifyMemorySSAX("verify-memoryssa", cl::location(VerifyMemorySSA), + cl::Hidden, cl::desc("Enable verification of MemorySSA.")); namespace llvm {