X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fbugpoint%2FBugDriver.h;h=2750575454f150b944a64accbb3a4336afeecc46;hb=180c1691c7fd79e2376bdd59e962d190607e20fa;hp=3de7b055f94c7d29e5651de766d36c53fd0dc23f;hpb=4e3be89cb5cde6e2df294c64db3bc28133b67594;p=oota-llvm.git diff --git a/tools/bugpoint/BugDriver.h b/tools/bugpoint/BugDriver.h index 3de7b055f94..2750575454f 100644 --- a/tools/bugpoint/BugDriver.h +++ b/tools/bugpoint/BugDriver.h @@ -2,8 +2,8 @@ // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -50,6 +50,7 @@ class BugDriver { bool run_as_child; bool run_find_bugs; unsigned Timeout; + unsigned MemoryLimit; // FIXME: sort out public/private distinctions... friend class ReducePassList; @@ -57,7 +58,7 @@ class BugDriver { public: BugDriver(const char *toolname, bool as_child, bool find_bugs, - unsigned timeout); + unsigned timeout, unsigned memlimit); const std::string &getToolName() const { return ToolName; } @@ -106,9 +107,9 @@ public: const std::string &ReferenceOutput); /// compileSharedObject - This method creates a SharedObject from a given - /// BytecodeFile for debugging a code generator. + /// BitcodeFile for debugging a code generator. /// - std::string compileSharedObject(const std::string &BytecodeFile); + std::string compileSharedObject(const std::string &BitcodeFile); /// debugCodeGenerator - This method narrows down a module to a function or /// set of functions, using the CBE as a ``safe'' code generator for other @@ -166,7 +167,7 @@ public: /// generator (e.g., llc crashes), this will throw an exception. /// std::string executeProgram(std::string RequestedOutputFilename = "", - std::string Bytecode = "", + std::string Bitcode = "", const std::string &SharedObjects = "", AbstractInterpreter *AI = 0, bool *ProgramExitedNonzero = 0); @@ -190,14 +191,14 @@ public: /// is different, true is returned. If there is a problem with the code /// generator (e.g., llc crashes), this will throw an exception. /// - bool diffProgram(const std::string &BytecodeFile = "", + bool diffProgram(const std::string &BitcodeFile = "", const std::string &SharedObj = "", - bool RemoveBytecode = false); + bool RemoveBitcode = false); - /// EmitProgressBytecode - This function is used to output the current Program + /// EmitProgressBitcode - This function is used to output the current Program /// to a file named "bugpoint-ID.bc". /// - void EmitProgressBytecode(const std::string &ID, bool NoFlyer = false); + void EmitProgressBitcode(const std::string &ID, bool NoFlyer = false); /// deleteInstructionFromProgram - This method clones the current Program and /// deletes the specified instruction from the cloned module. It then runs a @@ -233,19 +234,22 @@ public: /// automatically attempt to track down a crashing pass if one exists, and /// this method will never return null. Module *runPassesOn(Module *M, const std::vector &Passes, - bool AutoDebugCrashes = false); + bool AutoDebugCrashes = false, unsigned NumExtraArgs = 0, + const char * const *ExtraArgs = NULL); - /// runPasses - Run the specified passes on Program, outputting a bytecode + /// runPasses - Run the specified passes on Program, outputting a bitcode /// file and writting the filename into OutputFile if successful. If the /// optimizations fail for some reason (optimizer crashes), return true, - /// otherwise return false. If DeleteOutput is set to true, the bytecode is + /// otherwise return false. If DeleteOutput is set to true, the bitcode is /// deleted on success, and the filename string is undefined. This prints to /// cout a single line message indicating whether compilation was successful - /// or failed, unless Quiet is set. + /// or failed, unless Quiet is set. ExtraArgs specifies additional arguments + /// to pass to the child bugpoint instance. /// bool runPasses(const std::vector &PassesToRun, std::string &OutputFilename, bool DeleteOutput = false, - bool Quiet = false) const; + bool Quiet = false, unsigned NumExtraArgs = 0, + const char * const *ExtraArgs = NULL) const; /// runManyPasses - Take the specified pass list and create different /// combinations of passes to compile the program with. Compile the program with @@ -257,7 +261,7 @@ public: bool runManyPasses(const std::vector &AllPasses); /// writeProgramToFile - This writes the current "Program" to the named - /// bytecode file. If an error occurs, true is returned. + /// bitcode file. If an error occurs, true is returned. /// bool writeProgramToFile(const std::string &Filename, Module *M = 0) const; @@ -281,7 +285,7 @@ private: bool initializeExecutionEnvironment(); }; -/// ParseInputFile - Given a bytecode or assembly input filename, parse and +/// ParseInputFile - Given a bitcode or assembly input filename, parse and /// return it, or return null if not possible. /// Module *ParseInputFile(const std::string &InputFilename);