Initialize all common codegen passes before configuration so we can use their PassIDs.
authorAndrew Trick <atrick@apple.com>
Fri, 3 Feb 2012 20:14:47 +0000 (20:14 +0000)
committerAndrew Trick <atrick@apple.com>
Fri, 3 Feb 2012 20:14:47 +0000 (20:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149705 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/Passes.h
lib/CodeGen/LLVMTargetMachine.cpp

index 082bada1c38a2cb861672458ac84ff10581bcc3e..627568a4e4df26f50cbbc450bd549473b049e441 100644 (file)
@@ -42,8 +42,7 @@ protected:
 
 public:
   TargetPassConfig(TargetMachine *tm, PassManagerBase &pm,
-                   bool DisableVerifyFlag)
-    : TM(tm), PM(pm), DisableVerify(DisableVerifyFlag) {}
+                   bool DisableVerifyFlag);
 
   virtual ~TargetPassConfig() {}
 
index 34bf77b7901a8406a11b7bc3ae40a41d11deee40..3490e8f26fe10a776b4df8dfb05beea08ef1266d 100644 (file)
@@ -125,6 +125,13 @@ LLVMTargetMachine::LLVMTargetMachine(const Target &T, StringRef Triple,
          "and that InitializeAllTargetMCs() is being invoked!");
 }
 
+TargetPassConfig::TargetPassConfig(TargetMachine *tm, PassManagerBase &pm,
+                                   bool DisableVerifyFlag)
+  : TM(tm), PM(pm), DisableVerify(DisableVerifyFlag) {
+  // Register all target independent codegen passes to activate their PassIDs.
+  initializeCodeGen(*PassRegistry::getPassRegistry());
+}
+
 /// createPassConfig - Create a pass configuration object to be used by
 /// addPassToEmitX methods for generating a pipeline of CodeGen passes.
 TargetPassConfig *LLVMTargetMachine::createPassConfig(PassManagerBase &PM,