summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-diff/llvm-diff.cpp
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-09-18 23:31:16 +0000
committerAndrew Trick <atrick@apple.com>2013-09-18 23:31:16 +0000
commitf33d6df89997d48f8ecb747431a2043b559ec88a (patch)
tree1bcfbbc9185a19895ff0cb96ba54195e377d6837 /llvm/tools/llvm-diff/llvm-diff.cpp
parentdc073addc5e89601f35be20566a146cb887f2350 (diff)
downloadbcm5719-llvm-f33d6df89997d48f8ecb747431a2043b559ec88a.tar.gz
bcm5719-llvm-f33d6df89997d48f8ecb747431a2043b559ec88a.zip
Encapsulate PassManager debug flags to avoid static init and cxa_exit.
This puts all the global PassManager debugging flags, like -print-after-all and -time-passes, behind a managed static. This eliminates their static initializers and, more importantly, exit-time destructors. The only behavioral change I anticipate is that tools need to initialize the PassManager before parsing the command line in order to export these options, which makes sense. Tools that already initialize the standard passes (opt/llc) don't need to do anything new. llvm-svn: 190974
Diffstat (limited to 'llvm/tools/llvm-diff/llvm-diff.cpp')
-rw-r--r--llvm/tools/llvm-diff/llvm-diff.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/tools/llvm-diff/llvm-diff.cpp b/llvm/tools/llvm-diff/llvm-diff.cpp
index f70219eaf54..62fc026327e 100644
--- a/llvm/tools/llvm-diff/llvm-diff.cpp
+++ b/llvm/tools/llvm-diff/llvm-diff.cpp
@@ -20,6 +20,7 @@
#include "llvm/IR/Module.h"
#include "llvm/IR/Type.h"
#include "llvm/IRReader/IRReader.h"
+#include "llvm/PassManager.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/SourceMgr.h"
@@ -67,6 +68,9 @@ static cl::list<std::string> GlobalsToCompare(cl::Positional,
cl::desc("<globals to compare>"));
int main(int argc, char **argv) {
+ // Initialize PassManager for -time-passes support.
+ initializePassManager();
+
cl::ParseCommandLineOptions(argc, argv);
LLVMContext Context;
OpenPOWER on IntegriCloud