diff --git a/llvm/tools/bugpoint/BugDriver.h b/llvm/tools/bugpoint/BugDriver.h index eff11ec0de47..2b43aae584c4 100644 --- a/llvm/tools/bugpoint/BugDriver.h +++ b/llvm/tools/bugpoint/BugDriver.h @@ -85,8 +85,8 @@ public: /// compileSharedObject - This method creates a SharedObject from a given /// BytecodeFile for debugging a code generator. - int compileSharedObject(const std::string &BytecodeFile, - std::string &SharedObject); + /// + std::string compileSharedObject(const std::string &BytecodeFile); /// debugCodeGenerator - This method narrows down a module to a function or /// set of functions, using the CBE as a ``safe'' code generator for other diff --git a/llvm/tools/bugpoint/CodeGeneratorBug.cpp b/llvm/tools/bugpoint/CodeGeneratorBug.cpp index 28e3b9111ac1..b7757097019d 100644 --- a/llvm/tools/bugpoint/CodeGeneratorBug.cpp +++ b/llvm/tools/bugpoint/CodeGeneratorBug.cpp @@ -225,8 +225,7 @@ bool ReduceMisCodegenFunctions::TestFuncs(const std::vector &Funcs, } // Make a shared library - std::string SharedObject; - BD.compileSharedObject(SafeModuleBC, SharedObject); + std::string SharedObject = compileSharedObject(SafeModuleBC); delete SafeModule; delete TestModule; diff --git a/llvm/tools/bugpoint/ExecutionDriver.cpp b/llvm/tools/bugpoint/ExecutionDriver.cpp index f941713b3ab0..17e2ce2378d0 100644 --- a/llvm/tools/bugpoint/ExecutionDriver.cpp +++ b/llvm/tools/bugpoint/ExecutionDriver.cpp @@ -135,16 +135,16 @@ std::string BugDriver::executeProgramWithCBE(std::string OutputFile, return executeProgram(OutputFile, BytecodeFile, SharedObject, cbe); } -int BugDriver::compileSharedObject(const std::string &BytecodeFile, - std::string &SharedObject) { +std::string BugDriver::compileSharedObject(const std::string &BytecodeFile) { assert(Interpreter && "Interpreter should have been created already!"); - std::string Message, OutputCFile; + std::string OutputCFile; // Using CBE cbe->OutputC(BytecodeFile, OutputCFile); #if 0 /* This is an alternative, as yet unimplemented */ // Using LLC + std::string Message; LLC *llc = createLLCtool(Message); if (llc->OutputAsm(BytecodeFile, OutputFile)) { std::cerr << "Could not generate asm code with `llc', exiting.\n"; @@ -152,12 +152,14 @@ int BugDriver::compileSharedObject(const std::string &BytecodeFile, } #endif - gcc->MakeSharedObject(OutputCFile, CFile, SharedObject); + std::string SharedObjectFile; + if (gcc->MakeSharedObject(OutputCFile, CFile, SharedObject)) + exit(1); // Remove the intermediate C file removeFile(OutputCFile); - return 0; + return SharedObjectFile; }