diff options
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/BackendUtil.cpp | 3 | ||||
-rw-r--r-- | lib/CodeGen/CodeGenAction.cpp | 4 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp index 5ef72d486e..54150e426b 100644 --- a/lib/CodeGen/BackendUtil.cpp +++ b/lib/CodeGen/BackendUtil.cpp @@ -373,7 +373,10 @@ void EmitAssemblyHelper::EmitAssembly(BackendAction Action, raw_ostream *OS) { break; case Backend_EmitBC: + case Backend_EmitBCVerify: getPerModulePasses()->add(createBitcodeWriterPass(*OS)); + if (Action == Backend_EmitBCVerify) + getPerModulePasses()->add(createBitcodeVerifierPass(*OS)); break; case Backend_EmitLL: diff --git a/lib/CodeGen/CodeGenAction.cpp b/lib/CodeGen/CodeGenAction.cpp index 2ddcc3e5dc..3d21ef9af3 100644 --- a/lib/CodeGen/CodeGenAction.cpp +++ b/lib/CodeGen/CodeGenAction.cpp @@ -301,6 +301,7 @@ static raw_ostream *GetOutputStream(CompilerInstance &CI, case Backend_EmitLL: return CI.createDefaultOutputFile(false, InFile, "ll"); case Backend_EmitBC: + case Backend_EmitBCVerify: return CI.createDefaultOutputFile(true, InFile, "bc"); case Backend_EmitNothing: return 0; @@ -412,6 +413,9 @@ EmitAssemblyAction::EmitAssemblyAction(llvm::LLVMContext *_VMContext) EmitBCAction::EmitBCAction(llvm::LLVMContext *_VMContext) : CodeGenAction(Backend_EmitBC, _VMContext) {} +EmitBCVerifyAction::EmitBCVerifyAction(llvm::LLVMContext *_VMContext) + : CodeGenAction(Backend_EmitBCVerify, _VMContext) {} + EmitLLVMAction::EmitLLVMAction(llvm::LLVMContext *_VMContext) : CodeGenAction(Backend_EmitLL, _VMContext) {} |