From 680ff33b17bc018d4227720b66da4f547698e41a Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Mon, 31 Aug 2015 23:44:06 +0000 Subject: [PATCH] LTO: Cleanup parameter names and header docs, NFC Follow LLVM style for the parameter names (`CamelCase` not `camelCase`), and surface the header docs in doxygen. No functionality change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@246509 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/LTO/LTOCodeGenerator.h | 120 ++++++++++++++-------------- lib/LTO/LTOCodeGenerator.cpp | 101 +++++++++++------------ 2 files changed, 109 insertions(+), 112 deletions(-) diff --git a/include/llvm/LTO/LTOCodeGenerator.h b/include/llvm/LTO/LTOCodeGenerator.h index 0047a10247a..cf31bda6dc1 100644 --- a/include/llvm/LTO/LTOCodeGenerator.h +++ b/include/llvm/LTO/LTOCodeGenerator.h @@ -65,79 +65,81 @@ struct LTOCodeGenerator { LTOCodeGenerator(std::unique_ptr Context); ~LTOCodeGenerator(); - // Merge given module, return true on success. + /// Merge given module. Return true on success. bool addModule(struct LTOModule *); - // Set the destination module. + /// Set the destination module. void setModule(std::unique_ptr M); - void setTargetOptions(TargetOptions options); + void setTargetOptions(TargetOptions Options); void setDebugInfo(lto_debug_model); - void setCodePICModel(Reloc::Model model) { RelocModel = model; } + void setCodePICModel(Reloc::Model Model) { RelocModel = Model; } - void setCpu(const char *mCpu) { MCpu = mCpu; } - void setAttr(const char *mAttr) { MAttr = mAttr; } - void setOptLevel(unsigned optLevel); + void setCpu(const char *MCpu) { this->MCpu = MCpu; } + void setAttr(const char *MAttr) { this->MAttr = MAttr; } + void setOptLevel(unsigned OptLevel); void setShouldInternalize(bool Value) { ShouldInternalize = Value; } void setShouldEmbedUselists(bool Value) { ShouldEmbedUselists = Value; } - void addMustPreserveSymbol(StringRef sym) { MustPreserveSymbols[sym] = 1; } - - // To pass options to the driver and optimization passes. These options are - // not necessarily for debugging purpose (The function name is misleading). - // This function should be called before LTOCodeGenerator::compilexxx(), - // and LTOCodeGenerator::writeMergedModules(). - void setCodeGenDebugOptions(const char *opts); - - // Parse the options set in setCodeGenDebugOptions. Like - // setCodeGenDebugOptions, this must be called before - // LTOCodeGenerator::compilexxx() and LTOCodeGenerator::writeMergedModules() + void addMustPreserveSymbol(StringRef Sym) { MustPreserveSymbols[Sym] = 1; } + + /// Pass options to the driver and optimization passes. + /// + /// These options are not necessarily for debugging purpose (the function + /// name is misleading). This function should be called before + /// LTOCodeGenerator::compilexxx(), and + /// LTOCodeGenerator::writeMergedModules(). + void setCodeGenDebugOptions(const char *Opts); + + /// Parse the options set in setCodeGenDebugOptions. + /// + /// Like \a setCodeGenDebugOptions(), this must be called before + /// LTOCodeGenerator::compilexxx() and + /// LTOCodeGenerator::writeMergedModules(). void parseCodeGenDebugOptions(); - // Write the merged module to the file specified by the given path. - // Return true on success. - bool writeMergedModules(const char *path, std::string &errMsg); - - // Compile the merged module into a *single* object file; the path to object - // file is returned to the caller via argument "name". Return true on - // success. - // - // NOTE that it is up to the linker to remove the intermediate object file. - // Do not try to remove the object file in LTOCodeGenerator's destructor - // as we don't who (LTOCodeGenerator or the obj file) will last longer. - bool compile_to_file(const char **name, - bool disableInline, - bool disableGVNLoadPRE, - bool disableVectorization, - std::string &errMsg); - - // As with compile_to_file(), this function compiles the merged module into - // single object file. Instead of returning the object-file-path to the caller - // (linker), it brings the object to a buffer, and return the buffer to the - // caller. This function should delete intermediate object file once its content - // is brought to memory. Return NULL if the compilation was not successful. - std::unique_ptr compile(bool disableInline, - bool disableGVNLoadPRE, - bool disableVectorization, + /// Write the merged module to the file specified by the given path. Return + /// true on success. + bool writeMergedModules(const char *Path, std::string &ErrMsg); + + /// Compile the merged module into a *single* object file; the path to object + /// file is returned to the caller via argument "name". Return true on + /// success. + /// + /// \note It is up to the linker to remove the intermediate object file. Do + /// not try to remove the object file in LTOCodeGenerator's destructor as we + /// don't who (LTOCodeGenerator or the obj file) will last longer. + bool compile_to_file(const char **Name, bool DisableInline, + bool DisableGVNLoadPRE, bool DisableVectorization, + std::string &ErrMsg); + + /// As with compile_to_file(), this function compiles the merged module into + /// single object file. Instead of returning the object-file-path to the + /// caller (linker), it brings the object to a buffer, and return the buffer + /// to the caller. This function should delete intermediate object file once + /// its content is brought to memory. Return NULL if the compilation was not + /// successful. + std::unique_ptr compile(bool DisableInline, + bool DisableGVNLoadPRE, + bool DisableVectorization, std::string &errMsg); - // Optimizes the merged module. Returns true on success. - bool optimize(bool disableInline, - bool disableGVNLoadPRE, - bool disableVectorization, - std::string &errMsg); + /// Optimizes the merged module. Returns true on success. + bool optimize(bool DisableInline, bool DisableGVNLoadPRE, + bool DisableVectorization, std::string &ErrMsg); - // Compiles the merged optimized module into a single object file. It brings - // the object to a buffer, and returns the buffer to the caller. Return NULL - // if the compilation was not successful. - std::unique_ptr compileOptimized(std::string &errMsg); + /// Compiles the merged optimized module into a single object file. It brings + /// the object to a buffer, and returns the buffer to the caller. Return NULL + /// if the compilation was not successful. + std::unique_ptr compileOptimized(std::string &ErrMsg); - // Compile the merged optimized module into out.size() object files each - // representing a linkable partition of the module. If out contains more than - // one element, code generation is done in parallel with out.size() threads. - // Object files will be written to members of out. Returns true on success. - bool compileOptimized(ArrayRef out, std::string &errMsg); + /// Compile the merged optimized module into out.size() object files each + /// representing a linkable partition of the module. If out contains more + /// than one element, code generation is done in parallel with out.size() + /// threads. Object files will be written to members of out. Returns true on + /// success. + bool compileOptimized(ArrayRef Out, std::string &ErrMsg); void setDiagnosticHandler(lto_diagnostic_handler_t, void *); @@ -146,13 +148,13 @@ struct LTOCodeGenerator { private: void initializeLTOPasses(); - bool compileOptimizedToFile(const char **name, std::string &errMsg); + bool compileOptimizedToFile(const char **Name, std::string &ErrMsg); void applyScopeRestrictions(); void applyRestriction(GlobalValue &GV, ArrayRef Libcalls, std::vector &MustPreserveList, SmallPtrSetImpl &AsmUsed, Mangler &Mangler); - bool determineTarget(std::string &errMsg); + bool determineTarget(std::string &ErrMsg); static void DiagnosticHandler(const DiagnosticInfo &DI, void *Context); diff --git a/lib/LTO/LTOCodeGenerator.cpp b/lib/LTO/LTOCodeGenerator.cpp index eaec47ee682..3f3f75c99c1 100644 --- a/lib/LTO/LTOCodeGenerator.cpp +++ b/lib/LTO/LTOCodeGenerator.cpp @@ -110,13 +110,13 @@ void LTOCodeGenerator::initializeLTOPasses() { initializeCFGSimplifyPassPass(R); } -bool LTOCodeGenerator::addModule(LTOModule *mod) { - assert(&mod->getModule().getContext() == &Context && +bool LTOCodeGenerator::addModule(LTOModule *Mod) { + assert(&Mod->getModule().getContext() == &Context && "Expected module in same context"); - bool ret = IRLinker.linkInModule(&mod->getModule()); + bool ret = IRLinker.linkInModule(&Mod->getModule()); - const std::vector &undefs = mod->getAsmUndefinedRefs(); + const std::vector &undefs = Mod->getAsmUndefinedRefs(); for (int i = 0, e = undefs.size(); i != e; ++i) AsmUndefinedRefs[undefs[i]] = 1; @@ -137,12 +137,12 @@ void LTOCodeGenerator::setModule(std::unique_ptr Mod) { AsmUndefinedRefs[Undefs[I]] = 1; } -void LTOCodeGenerator::setTargetOptions(TargetOptions options) { - Options = options; +void LTOCodeGenerator::setTargetOptions(TargetOptions Options) { + this->Options = Options; } -void LTOCodeGenerator::setDebugInfo(lto_debug_model debug) { - switch (debug) { +void LTOCodeGenerator::setDebugInfo(lto_debug_model Debug) { + switch (Debug) { case LTO_DEBUG_MODEL_NONE: EmitDwarfDebugInfo = false; return; @@ -154,8 +154,8 @@ void LTOCodeGenerator::setDebugInfo(lto_debug_model debug) { llvm_unreachable("Unknown debug format!"); } -void LTOCodeGenerator::setOptLevel(unsigned level) { - OptLevel = level; +void LTOCodeGenerator::setOptLevel(unsigned Level) { + OptLevel = Level; switch (OptLevel) { case 0: CGOptLevel = CodeGenOpt::None; @@ -172,9 +172,9 @@ void LTOCodeGenerator::setOptLevel(unsigned level) { } } -bool LTOCodeGenerator::writeMergedModules(const char *path, - std::string &errMsg) { - if (!determineTarget(errMsg)) +bool LTOCodeGenerator::writeMergedModules(const char *Path, + std::string &ErrMsg) { + if (!determineTarget(ErrMsg)) return false; // mark which symbols can not be internalized @@ -182,10 +182,10 @@ bool LTOCodeGenerator::writeMergedModules(const char *path, // create output file std::error_code EC; - tool_output_file Out(path, EC, sys::fs::F_None); + tool_output_file Out(Path, EC, sys::fs::F_None); if (EC) { - errMsg = "could not open bitcode file for writing: "; - errMsg += path; + ErrMsg = "could not open bitcode file for writing: "; + ErrMsg += Path; return false; } @@ -194,8 +194,8 @@ bool LTOCodeGenerator::writeMergedModules(const char *path, Out.os().close(); if (Out.os().has_error()) { - errMsg = "could not write bitcode file: "; - errMsg += path; + ErrMsg = "could not write bitcode file: "; + ErrMsg += Path; Out.os().clear_error(); return false; } @@ -204,22 +204,22 @@ bool LTOCodeGenerator::writeMergedModules(const char *path, return true; } -bool LTOCodeGenerator::compileOptimizedToFile(const char **name, - std::string &errMsg) { +bool LTOCodeGenerator::compileOptimizedToFile(const char **Name, + std::string &ErrMsg) { // make unique temp .o file to put generated object file SmallString<128> Filename; int FD; std::error_code EC = sys::fs::createTemporaryFile("lto-llvm", "o", FD, Filename); if (EC) { - errMsg = EC.message(); + ErrMsg = EC.message(); return false; } // generate object file tool_output_file objFile(Filename.c_str(), FD); - bool genResult = compileOptimized(&objFile.os(), errMsg); + bool genResult = compileOptimized(&objFile.os(), ErrMsg); objFile.os().close(); if (objFile.os().has_error()) { objFile.os().clear_error(); @@ -234,21 +234,21 @@ bool LTOCodeGenerator::compileOptimizedToFile(const char **name, } NativeObjectPath = Filename.c_str(); - *name = NativeObjectPath.c_str(); + *Name = NativeObjectPath.c_str(); return true; } std::unique_ptr -LTOCodeGenerator::compileOptimized(std::string &errMsg) { +LTOCodeGenerator::compileOptimized(std::string &ErrMsg) { const char *name; - if (!compileOptimizedToFile(&name, errMsg)) + if (!compileOptimizedToFile(&name, ErrMsg)) return nullptr; // read .o file into memory buffer ErrorOr> BufferOrErr = MemoryBuffer::getFile(name, -1, false); if (std::error_code EC = BufferOrErr.getError()) { - errMsg = EC.message(); + ErrMsg = EC.message(); sys::fs::remove(NativeObjectPath); return nullptr; } @@ -259,30 +259,26 @@ LTOCodeGenerator::compileOptimized(std::string &errMsg) { return std::move(*BufferOrErr); } - -bool LTOCodeGenerator::compile_to_file(const char **name, - bool disableInline, - bool disableGVNLoadPRE, - bool disableVectorization, - std::string &errMsg) { - if (!optimize(disableInline, disableGVNLoadPRE, - disableVectorization, errMsg)) +bool LTOCodeGenerator::compile_to_file(const char **Name, bool DisableInline, + bool DisableGVNLoadPRE, + bool DisableVectorization, + std::string &ErrMsg) { + if (!optimize(DisableInline, DisableGVNLoadPRE, DisableVectorization, ErrMsg)) return false; - return compileOptimizedToFile(name, errMsg); + return compileOptimizedToFile(Name, ErrMsg); } std::unique_ptr -LTOCodeGenerator::compile(bool disableInline, bool disableGVNLoadPRE, - bool disableVectorization, std::string &errMsg) { - if (!optimize(disableInline, disableGVNLoadPRE, - disableVectorization, errMsg)) +LTOCodeGenerator::compile(bool DisableInline, bool DisableGVNLoadPRE, + bool DisableVectorization, std::string &ErrMsg) { + if (!optimize(DisableInline, DisableGVNLoadPRE, DisableVectorization, ErrMsg)) return nullptr; - return compileOptimized(errMsg); + return compileOptimized(ErrMsg); } -bool LTOCodeGenerator::determineTarget(std::string &errMsg) { +bool LTOCodeGenerator::determineTarget(std::string &ErrMsg) { if (TargetMach) return true; @@ -294,7 +290,7 @@ bool LTOCodeGenerator::determineTarget(std::string &errMsg) { llvm::Triple Triple(TripleStr); // create target machine from info for merged modules - const Target *march = TargetRegistry::lookupTarget(TripleStr, errMsg); + const Target *march = TargetRegistry::lookupTarget(TripleStr, ErrMsg); if (!march) return false; @@ -457,11 +453,10 @@ void LTOCodeGenerator::applyScopeRestrictions() { } /// Optimize merged modules using various IPO passes -bool LTOCodeGenerator::optimize(bool DisableInline, - bool DisableGVNLoadPRE, +bool LTOCodeGenerator::optimize(bool DisableInline, bool DisableGVNLoadPRE, bool DisableVectorization, - std::string &errMsg) { - if (!this->determineTarget(errMsg)) + std::string &ErrMsg) { + if (!this->determineTarget(ErrMsg)) return false; // Mark which symbols can not be internalized @@ -496,9 +491,9 @@ bool LTOCodeGenerator::optimize(bool DisableInline, return true; } -bool LTOCodeGenerator::compileOptimized(ArrayRef out, - std::string &errMsg) { - if (!this->determineTarget(errMsg)) +bool LTOCodeGenerator::compileOptimized(ArrayRef Out, + std::string &ErrMsg) { + if (!this->determineTarget(ErrMsg)) return false; legacy::PassManager preCodeGenPasses; @@ -514,7 +509,7 @@ bool LTOCodeGenerator::compileOptimized(ArrayRef out, // original module at parallelism level 1 which we then assign back to // MergedModule. MergedModule = - splitCodeGen(std::move(MergedModule), out, MCpu, FeatureStr, Options, + splitCodeGen(std::move(MergedModule), Out, MCpu, FeatureStr, Options, RelocModel, CodeModel::Default, CGOptLevel); return true; @@ -522,9 +517,9 @@ bool LTOCodeGenerator::compileOptimized(ArrayRef out, /// setCodeGenDebugOptions - Set codegen debugging options to aid in debugging /// LTO problems. -void LTOCodeGenerator::setCodeGenDebugOptions(const char *options) { - for (std::pair o = getToken(options); - !o.first.empty(); o = getToken(o.second)) +void LTOCodeGenerator::setCodeGenDebugOptions(const char *Options) { + for (std::pair o = getToken(Options); !o.first.empty(); + o = getToken(o.second)) CodegenOptions.push_back(o.first); } -- 2.34.1