diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/CodeGen/BackendUtil.cpp | 12 | ||||
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 12 | ||||
-rw-r--r-- | clang/lib/Interpreter/DeviceOffload.cpp | 2 | ||||
-rw-r--r-- | clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp | 25 | ||||
-rw-r--r-- | clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 10 |
5 files changed, 31 insertions, 30 deletions
diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 04cb906..e2afc5d 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -314,12 +314,12 @@ getCodeModel(const CodeGenOptions &CodeGenOpts) { static CodeGenFileType getCodeGenFileType(BackendAction Action) { if (Action == Backend_EmitObj) - return CGFT_ObjectFile; + return CodeGenFileType::ObjectFile; else if (Action == Backend_EmitMCNull) - return CGFT_Null; + return CodeGenFileType::Null; else { assert(Action == Backend_EmitAssembly && "Invalid action!"); - return CGFT_AssemblyFile; + return CodeGenFileType::AssemblyFile; } } @@ -561,10 +561,10 @@ void EmitAssemblyHelper::CreateTargetMachine(bool MustCreateTM) { std::string FeaturesStr = llvm::join(TargetOpts.Features.begin(), TargetOpts.Features.end(), ","); llvm::Reloc::Model RM = CodeGenOpts.RelocationModel; - std::optional<CodeGenOpt::Level> OptLevelOrNone = + std::optional<CodeGenOptLevel> OptLevelOrNone = CodeGenOpt::getLevel(CodeGenOpts.OptimizationLevel); assert(OptLevelOrNone && "Invalid optimization level!"); - CodeGenOpt::Level OptLevel = *OptLevelOrNone; + CodeGenOptLevel OptLevel = *OptLevelOrNone; llvm::TargetOptions Options; if (!initTargetOptions(Diags, Options, CodeGenOpts, TargetOpts, LangOpts, @@ -1216,7 +1216,7 @@ static void runThinLTOBackend( Conf.CodeModel = getCodeModel(CGOpts); Conf.MAttrs = TOpts.Features; Conf.RelocModel = CGOpts.RelocationModel; - std::optional<CodeGenOpt::Level> OptLevelOrNone = + std::optional<CodeGenOptLevel> OptLevelOrNone = CodeGenOpt::getLevel(CGOpts.OptimizationLevel); assert(OptLevelOrNone && "Invalid optimization level!"); Conf.CGOptLevel = *OptLevelOrNone; diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 2dd299b..ffb4f30 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -661,27 +661,27 @@ static bool FixupInvocation(CompilerInvocation &Invocation, static unsigned getOptimizationLevel(ArgList &Args, InputKind IK, DiagnosticsEngine &Diags) { - unsigned DefaultOpt = llvm::CodeGenOpt::None; + unsigned DefaultOpt = 0; if ((IK.getLanguage() == Language::OpenCL || IK.getLanguage() == Language::OpenCLCXX) && !Args.hasArg(OPT_cl_opt_disable)) - DefaultOpt = llvm::CodeGenOpt::Default; + DefaultOpt = 2; if (Arg *A = Args.getLastArg(options::OPT_O_Group)) { if (A->getOption().matches(options::OPT_O0)) - return llvm::CodeGenOpt::None; + return 0; if (A->getOption().matches(options::OPT_Ofast)) - return llvm::CodeGenOpt::Aggressive; + return 3; assert(A->getOption().matches(options::OPT_O)); StringRef S(A->getValue()); if (S == "s" || S == "z") - return llvm::CodeGenOpt::Default; + return 2; if (S == "g") - return llvm::CodeGenOpt::Less; + return 1; return getLastArgIntValue(Args, OPT_O, DefaultOpt, Diags); } diff --git a/clang/lib/Interpreter/DeviceOffload.cpp b/clang/lib/Interpreter/DeviceOffload.cpp index 8e39af6..fb42964 100644 --- a/clang/lib/Interpreter/DeviceOffload.cpp +++ b/clang/lib/Interpreter/DeviceOffload.cpp @@ -88,7 +88,7 @@ llvm::Expected<llvm::StringRef> IncrementalCUDADeviceParser::GeneratePTX() { llvm::legacy::PassManager PM; if (TargetMachine->addPassesToEmitFile(PM, dest, nullptr, - llvm::CGFT_AssemblyFile)) { + llvm::CodeGenFileType::AssemblyFile)) { return llvm::make_error<llvm::StringError>( "NVPTX backend cannot produce PTX code.", llvm::inconvertibleErrorCode()); diff --git a/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp b/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp index bd3490e..3d39d69 100644 --- a/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp +++ b/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp @@ -48,10 +48,9 @@ using namespace llvm; typedef void (*LLVMFunc)(int*, int*, int*, int); // Helper function to parse command line args and find the optimization level -static CodeGenOpt::Level -getOptLevel(const std::vector<const char *> &ExtraArgs) { +static CodeGenOptLevel getOptLevel(const std::vector<const char *> &ExtraArgs) { // Find the optimization level from the command line args - CodeGenOpt::Level OLvl = CodeGenOpt::Default; + CodeGenOptLevel OLvl = CodeGenOptLevel::Default; for (auto &A : ExtraArgs) { if (A[0] == '-' && A[1] == 'O') { if (auto Level = CodeGenOpt::parseLevel(A[2])) { @@ -73,19 +72,19 @@ static void ErrorAndExit(std::string message) { // Helper function to add optimization passes to the TargetMachine at the // specified optimization level, OptLevel static void RunOptimizationPasses(raw_ostream &OS, Module &M, - CodeGenOpt::Level OptLevel) { + CodeGenOptLevel OptLevel) { llvm::OptimizationLevel OL; switch (OptLevel) { - case CodeGenOpt::None: + case CodeGenOptLevel::None: OL = OptimizationLevel::O0; break; - case CodeGenOpt::Less: + case CodeGenOptLevel::Less: OL = OptimizationLevel::O1; break; - case CodeGenOpt::Default: + case CodeGenOptLevel::Default: OL = OptimizationLevel::O2; break; - case CodeGenOpt::Aggressive: + case CodeGenOptLevel::Aggressive: OL = OptimizationLevel::O3; break; } @@ -110,7 +109,7 @@ static void RunOptimizationPasses(raw_ostream &OS, Module &M, } // Mimics the opt tool to run an optimization pass over the provided IR -static std::string OptLLVM(const std::string &IR, CodeGenOpt::Level OLvl) { +static std::string OptLLVM(const std::string &IR, CodeGenOptLevel OLvl) { // Create a module that will run the optimization passes SMDiagnostic Err; LLVMContext Context; @@ -154,7 +153,7 @@ static void RunFuncOnInputs(LLVMFunc f, int Arr[kNumArrays][kArraySize]) { } // Takes a string of IR and compiles it using LLVM's JIT Engine -static void CreateAndRunJITFunc(const std::string &IR, CodeGenOpt::Level OLvl) { +static void CreateAndRunJITFunc(const std::string &IR, CodeGenOptLevel OLvl) { SMDiagnostic Err; LLVMContext Context; std::unique_ptr<Module> M = parseIR(MemoryBufferRef(IR, "IR"), Err, Context); @@ -205,7 +204,7 @@ static void CreateAndRunJITFunc(const std::string &IR, CodeGenOpt::Level OLvl) { #endif // Figure out if we are running the optimized func or the unoptimized func - RunFuncOnInputs(f, (OLvl == CodeGenOpt::None) ? UnoptArrays : OptArrays); + RunFuncOnInputs(f, (OLvl == CodeGenOptLevel::None) ? UnoptArrays : OptArrays); EE->runStaticConstructorsDestructors(true); } @@ -219,13 +218,13 @@ void clang_fuzzer::HandleLLVM(const std::string &IR, memcpy(UnoptArrays, InputArrays, kTotalSize); // Parse ExtraArgs to set the optimization level - CodeGenOpt::Level OLvl = getOptLevel(ExtraArgs); + CodeGenOptLevel OLvl = getOptLevel(ExtraArgs); // First we optimize the IR by running a loop vectorizer pass std::string OptIR = OptLLVM(IR, OLvl); CreateAndRunJITFunc(OptIR, OLvl); - CreateAndRunJITFunc(IR, CodeGenOpt::None); + CreateAndRunJITFunc(IR, CodeGenOptLevel::None); if (memcmp(OptArrays, UnoptArrays, kTotalSize)) ErrorAndExit("!!!BUG!!!"); diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp index 432a347..b5f6fb3 100644 --- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp +++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp @@ -528,7 +528,7 @@ std::unique_ptr<lto::LTO> createLTO( StringRef OptLevel = Args.getLastArgValue(OPT_opt_level, "O2"); Conf.MAttrs = Features; - std::optional<CodeGenOpt::Level> CGOptLevelOrNone = + std::optional<CodeGenOptLevel> CGOptLevelOrNone = CodeGenOpt::parseLevel(OptLevel[1]); assert(CGOptLevelOrNone && "Invalid optimization level"); Conf.CGOptLevel = *CGOptLevelOrNone; @@ -569,8 +569,9 @@ std::unique_ptr<lto::LTO> createLTO( }; } Conf.PostOptModuleHook = Hook; - Conf.CGFileType = - (Triple.isNVPTX() || SaveTemps) ? CGFT_AssemblyFile : CGFT_ObjectFile; + Conf.CGFileType = (Triple.isNVPTX() || SaveTemps) + ? CodeGenFileType::AssemblyFile + : CodeGenFileType::ObjectFile; // TODO: Handle remark files Conf.HasWholeProgramVisibility = Args.hasArg(OPT_whole_program); @@ -840,7 +841,8 @@ Expected<StringRef> compileModule(Module &M) { legacy::PassManager CodeGenPasses; TargetLibraryInfoImpl TLII(Triple(M.getTargetTriple())); CodeGenPasses.add(new TargetLibraryInfoWrapperPass(TLII)); - if (TM->addPassesToEmitFile(CodeGenPasses, *OS, nullptr, CGFT_ObjectFile)) + if (TM->addPassesToEmitFile(CodeGenPasses, *OS, nullptr, + CodeGenFileType::ObjectFile)) return createStringError(inconvertibleErrorCode(), "Failed to execute host backend"); CodeGenPasses.run(M); |