llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-flang-driver @llvm/pr-subscribers-clang-codegen Author: Tarun Prabhu (tarunprabhu) <details> <summary>Changes</summary> Reverts llvm/llvm-project#<!-- -->136098 --- Patch is 29.10 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/142159.diff 21 Files Affected: - (modified) clang/include/clang/Basic/CodeGenOptions.def (+2-4) - (modified) clang/include/clang/Basic/CodeGenOptions.h (+8-14) - (modified) clang/include/clang/Basic/ProfileList.h (+5-4) - (modified) clang/include/clang/Driver/Options.td (+2-2) - (modified) clang/lib/Basic/ProfileList.cpp (+10-10) - (modified) clang/lib/CodeGen/BackendUtil.cpp (+24-18) - (modified) clang/lib/CodeGen/CodeGenAction.cpp (+2-2) - (modified) clang/lib/CodeGen/CodeGenFunction.cpp (+1-2) - (modified) clang/lib/CodeGen/CodeGenModule.cpp (+1-1) - (modified) clang/lib/Driver/ToolChains/Flang.cpp (-4) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (+3-3) - (modified) flang/include/flang/Frontend/CodeGenOptions.def (-7) - (modified) flang/include/flang/Frontend/CodeGenOptions.h (-38) - (modified) flang/lib/Frontend/CompilerInvocation.cpp (-10) - (modified) flang/lib/Frontend/FrontendActions.cpp (-26) - (modified) flang/test/Driver/flang-f-opts.f90 (-5) - (removed) flang/test/Profile/Inputs/gcc-flag-compatibility_IR.proftext (-18) - (removed) flang/test/Profile/Inputs/gcc-flag-compatibility_IR_entry.proftext (-11) - (removed) flang/test/Profile/gcc-flag-compatibility.f90 (-32) - (modified) llvm/include/llvm/Frontend/Driver/CodeGenOptions.h (-12) - (modified) llvm/lib/Frontend/Driver/CodeGenOptions.cpp (-13) ``````````diff diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def index 11dad53a52efe..aad4e107cbeb3 100644 --- a/clang/include/clang/Basic/CodeGenOptions.def +++ b/clang/include/clang/Basic/CodeGenOptions.def @@ -223,11 +223,9 @@ AFFECTING_VALUE_CODEGENOPT(OptimizeSize, 2, 0) ///< If -Os (==1) or -Oz (==2) is CODEGENOPT(AtomicProfileUpdate , 1, 0) ///< Set -fprofile-update=atomic CODEGENOPT(ContinuousProfileSync, 1, 0) ///< Enable continuous instrumentation profiling /// Choose profile instrumenation kind or no instrumentation. - -ENUM_CODEGENOPT(ProfileInstr, llvm::driver::ProfileInstrKind, 4, llvm::driver::ProfileInstrKind::ProfileNone) - +ENUM_CODEGENOPT(ProfileInstr, ProfileInstrKind, 4, ProfileNone) /// Choose profile kind for PGO use compilation. -ENUM_CODEGENOPT(ProfileUse, llvm::driver::ProfileInstrKind, 2, llvm::driver::ProfileInstrKind::ProfileNone) +ENUM_CODEGENOPT(ProfileUse, ProfileInstrKind, 2, ProfileNone) /// Partition functions into N groups and select only functions in group i to be /// instrumented. Selected group numbers can be 0 to N-1 inclusive. VALUE_CODEGENOPT(ProfileTotalFunctionGroups, 32, 1) diff --git a/clang/include/clang/Basic/CodeGenOptions.h b/clang/include/clang/Basic/CodeGenOptions.h index bffbd00b1bd72..278803f7bb960 100644 --- a/clang/include/clang/Basic/CodeGenOptions.h +++ b/clang/include/clang/Basic/CodeGenOptions.h @@ -518,41 +518,35 @@ class CodeGenOptions : public CodeGenOptionsBase { /// Check if Clang profile instrumenation is on. bool hasProfileClangInstr() const { - return getProfileInstr() == - llvm::driver::ProfileInstrKind::ProfileClangInstr; + return getProfileInstr() == ProfileClangInstr; } /// Check if IR level profile instrumentation is on. bool hasProfileIRInstr() const { - return getProfileInstr() == llvm::driver::ProfileInstrKind::ProfileIRInstr; + return getProfileInstr() == ProfileIRInstr; } /// Check if CS IR level profile instrumentation is on. bool hasProfileCSIRInstr() const { - return getProfileInstr() == - llvm::driver::ProfileInstrKind::ProfileCSIRInstr; + return getProfileInstr() == ProfileCSIRInstr; } /// Check if any form of instrumentation is on. - bool hasProfileInstr() const { - return getProfileInstr() != llvm::driver::ProfileInstrKind::ProfileNone; - } + bool hasProfileInstr() const { return getProfileInstr() != ProfileNone; } /// Check if Clang profile use is on. bool hasProfileClangUse() const { - return getProfileUse() == llvm::driver::ProfileInstrKind::ProfileClangInstr; + return getProfileUse() == ProfileClangInstr; } /// Check if IR level profile use is on. bool hasProfileIRUse() const { - return getProfileUse() == llvm::driver::ProfileInstrKind::ProfileIRInstr || - getProfileUse() == llvm::driver::ProfileInstrKind::ProfileCSIRInstr; + return getProfileUse() == ProfileIRInstr || + getProfileUse() == ProfileCSIRInstr; } /// Check if CSIR profile use is on. - bool hasProfileCSIRUse() const { - return getProfileUse() == llvm::driver::ProfileInstrKind::ProfileCSIRInstr; - } + bool hasProfileCSIRUse() const { return getProfileUse() == ProfileCSIRInstr; } /// Check if type and variable info should be emitted. bool hasReducedDebugInfo() const { diff --git a/clang/include/clang/Basic/ProfileList.h b/clang/include/clang/Basic/ProfileList.h index 5338ef3992ade..b4217e49c18a3 100644 --- a/clang/include/clang/Basic/ProfileList.h +++ b/clang/include/clang/Basic/ProfileList.h @@ -49,16 +49,17 @@ class ProfileList { ~ProfileList(); bool isEmpty() const { return Empty; } - ExclusionType getDefault(llvm::driver::ProfileInstrKind Kind) const; + ExclusionType getDefault(CodeGenOptions::ProfileInstrKind Kind) const; std::optional<ExclusionType> isFunctionExcluded(StringRef FunctionName, - llvm::driver::ProfileInstrKind Kind) const; + CodeGenOptions::ProfileInstrKind Kind) const; std::optional<ExclusionType> isLocationExcluded(SourceLocation Loc, - llvm::driver::ProfileInstrKind Kind) const; + CodeGenOptions::ProfileInstrKind Kind) const; std::optional<ExclusionType> - isFileExcluded(StringRef FileName, llvm::driver::ProfileInstrKind Kind) const; + isFileExcluded(StringRef FileName, + CodeGenOptions::ProfileInstrKind Kind) const; }; } // namespace clang diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 5c79c66b55eb3..5ca31c253ed8f 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -1772,7 +1772,7 @@ def fmcdc_max_test_vectors_EQ : Joined<["-"], "fmcdc-max-test-vectors=">, HelpText<"Maximum number of test vectors in MC/DC coverage">, MarshallingInfoInt<CodeGenOpts<"MCDCMaxTVs">, "0x7FFFFFFE">; def fprofile_generate : Flag<["-"], "fprofile-generate">, - Group<f_Group>, Visibility<[ClangOption, CLOption, FlangOption, FC1Option]>, + Group<f_Group>, Visibility<[ClangOption, CLOption]>, HelpText<"Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)">; def fprofile_generate_EQ : Joined<["-"], "fprofile-generate=">, Group<f_Group>, Visibility<[ClangOption, CLOption]>, @@ -1789,7 +1789,7 @@ def fprofile_use : Flag<["-"], "fprofile-use">, Group<f_Group>, Visibility<[ClangOption, CLOption]>, Alias<fprofile_instr_use>; def fprofile_use_EQ : Joined<["-"], "fprofile-use=">, Group<f_Group>, - Visibility<[ClangOption, CLOption, FlangOption, FC1Option]>, + Visibility<[ClangOption, CLOption]>, MetaVarName<"<pathname>">, HelpText<"Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.">; def fno_profile_instr_generate : Flag<["-"], "fno-profile-instr-generate">, diff --git a/clang/lib/Basic/ProfileList.cpp b/clang/lib/Basic/ProfileList.cpp index bea65579f396b..2d37014294b92 100644 --- a/clang/lib/Basic/ProfileList.cpp +++ b/clang/lib/Basic/ProfileList.cpp @@ -70,24 +70,24 @@ ProfileList::ProfileList(ArrayRef<std::string> Paths, SourceManager &SM) ProfileList::~ProfileList() = default; -static StringRef getSectionName(llvm::driver::ProfileInstrKind Kind) { +static StringRef getSectionName(CodeGenOptions::ProfileInstrKind Kind) { switch (Kind) { - case llvm::driver::ProfileInstrKind::ProfileNone: + case CodeGenOptions::ProfileNone: return ""; - case llvm::driver::ProfileInstrKind::ProfileClangInstr: + case CodeGenOptions::ProfileClangInstr: return "clang"; - case llvm::driver::ProfileInstrKind::ProfileIRInstr: + case CodeGenOptions::ProfileIRInstr: return "llvm"; - case llvm::driver::ProfileInstrKind::ProfileCSIRInstr: + case CodeGenOptions::ProfileCSIRInstr: return "csllvm"; case CodeGenOptions::ProfileIRSampleColdCov: return "sample-coldcov"; } - llvm_unreachable("Unhandled llvm::driver::ProfileInstrKind enum"); + llvm_unreachable("Unhandled CodeGenOptions::ProfileInstrKind enum"); } ProfileList::ExclusionType -ProfileList::getDefault(llvm::driver::ProfileInstrKind Kind) const { +ProfileList::getDefault(CodeGenOptions::ProfileInstrKind Kind) const { StringRef Section = getSectionName(Kind); // Check for "default:<type>" if (SCL->inSection(Section, "default", "allow")) @@ -118,7 +118,7 @@ ProfileList::inSection(StringRef Section, StringRef Prefix, std::optional<ProfileList::ExclusionType> ProfileList::isFunctionExcluded(StringRef FunctionName, - llvm::driver::ProfileInstrKind Kind) const { + CodeGenOptions::ProfileInstrKind Kind) const { StringRef Section = getSectionName(Kind); // Check for "function:<regex>=<case>" if (auto V = inSection(Section, "function", FunctionName)) @@ -132,13 +132,13 @@ ProfileList::isFunctionExcluded(StringRef FunctionName, std::optional<ProfileList::ExclusionType> ProfileList::isLocationExcluded(SourceLocation Loc, - llvm::driver::ProfileInstrKind Kind) const { + CodeGenOptions::ProfileInstrKind Kind) const { return isFileExcluded(SM.getFilename(SM.getFileLoc(Loc)), Kind); } std::optional<ProfileList::ExclusionType> ProfileList::isFileExcluded(StringRef FileName, - llvm::driver::ProfileInstrKind Kind) const { + CodeGenOptions::ProfileInstrKind Kind) const { StringRef Section = getSectionName(Kind); // Check for "source:<regex>=<case>" if (auto V = inSection(Section, "source", FileName)) diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 03e10b1138a71..cd5fc48c4a22b 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -123,10 +123,17 @@ namespace clang { extern llvm::cl::opt<bool> ClSanitizeGuardChecks; } +// Default filename used for profile generation. +static std::string getDefaultProfileGenName() { + return DebugInfoCorrelate || ProfileCorrelate != InstrProfCorrelator::NONE + ? "default_%m.proflite" + : "default_%m.profraw"; +} + // Path and name of file used for profile generation static std::string getProfileGenName(const CodeGenOptions &CodeGenOpts) { std::string FileName = CodeGenOpts.InstrProfileOutput.empty() - ? llvm::driver::getDefaultProfileGenName() + ? getDefaultProfileGenName() : CodeGenOpts.InstrProfileOutput; if (CodeGenOpts.ContinuousProfileSync) FileName = "%c" + FileName; @@ -828,12 +835,12 @@ void EmitAssemblyHelper::RunOptimizationPipeline( if (CodeGenOpts.hasProfileIRInstr()) // -fprofile-generate. - PGOOpt = PGOOptions( - getProfileGenName(CodeGenOpts), "", "", - CodeGenOpts.MemoryProfileUsePath, nullptr, PGOOptions::IRInstr, - PGOOptions::NoCSAction, llvm::ClPGOColdFuncAttr, - CodeGenOpts.DebugInfoForProfiling, - /*PseudoProbeForProfiling=*/false, CodeGenOpts.AtomicProfileUpdate); + PGOOpt = PGOOptions(getProfileGenName(CodeGenOpts), "", "", + CodeGenOpts.MemoryProfileUsePath, nullptr, + PGOOptions::IRInstr, PGOOptions::NoCSAction, + ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling, + /*PseudoProbeForProfiling=*/false, + CodeGenOpts.AtomicProfileUpdate); else if (CodeGenOpts.hasProfileIRUse()) { // -fprofile-use. auto CSAction = CodeGenOpts.hasProfileCSIRUse() ? PGOOptions::CSIRUse @@ -841,32 +848,31 @@ void EmitAssemblyHelper::RunOptimizationPipeline( PGOOpt = PGOOptions(CodeGenOpts.ProfileInstrumentUsePath, "", CodeGenOpts.ProfileRemappingFile, CodeGenOpts.MemoryProfileUsePath, VFS, - PGOOptions::IRUse, CSAction, llvm::ClPGOColdFuncAttr, + PGOOptions::IRUse, CSAction, ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling); } else if (!CodeGenOpts.SampleProfileFile.empty()) // -fprofile-sample-use PGOOpt = PGOOptions( CodeGenOpts.SampleProfileFile, "", CodeGenOpts.ProfileRemappingFile, CodeGenOpts.MemoryProfileUsePath, VFS, PGOOptions::SampleUse, - PGOOptions::NoCSAction, llvm::ClPGOColdFuncAttr, + PGOOptions::NoCSAction, ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling, CodeGenOpts.PseudoProbeForProfiling); else if (!CodeGenOpts.MemoryProfileUsePath.empty()) // -fmemory-profile-use (without any of the above options) - PGOOpt = - PGOOptions("", "", "", CodeGenOpts.MemoryProfileUsePath, VFS, - PGOOptions::NoAction, PGOOptions::NoCSAction, - llvm::ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling); + PGOOpt = PGOOptions("", "", "", CodeGenOpts.MemoryProfileUsePath, VFS, + PGOOptions::NoAction, PGOOptions::NoCSAction, + ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling); else if (CodeGenOpts.PseudoProbeForProfiling) // -fpseudo-probe-for-profiling - PGOOpt = PGOOptions("", "", "", /*MemoryProfile=*/"", nullptr, - PGOOptions::NoAction, PGOOptions::NoCSAction, - llvm::ClPGOColdFuncAttr, - CodeGenOpts.DebugInfoForProfiling, true); + PGOOpt = + PGOOptions("", "", "", /*MemoryProfile=*/"", nullptr, + PGOOptions::NoAction, PGOOptions::NoCSAction, + ClPGOColdFuncAttr, CodeGenOpts.DebugInfoForProfiling, true); else if (CodeGenOpts.DebugInfoForProfiling) // -fdebug-info-for-profiling PGOOpt = PGOOptions("", "", "", /*MemoryProfile=*/"", nullptr, PGOOptions::NoAction, PGOOptions::NoCSAction, - llvm::ClPGOColdFuncAttr, true); + ClPGOColdFuncAttr, true); // Check to see if we want to generate a CS profile. if (CodeGenOpts.hasProfileCSIRInstr()) { diff --git a/clang/lib/CodeGen/CodeGenAction.cpp b/clang/lib/CodeGen/CodeGenAction.cpp index 5493cc92bd8b0..1f5eb427b566f 100644 --- a/clang/lib/CodeGen/CodeGenAction.cpp +++ b/clang/lib/CodeGen/CodeGenAction.cpp @@ -273,8 +273,8 @@ void BackendConsumer::HandleTranslationUnit(ASTContext &C) { std::unique_ptr<llvm::ToolOutputFile> OptRecordFile = std::move(*OptRecordFileOrErr); - if (OptRecordFile && CodeGenOpts.getProfileUse() != - llvm::driver::ProfileInstrKind::ProfileNone) + if (OptRecordFile && + CodeGenOpts.getProfileUse() != CodeGenOptions::ProfileNone) Ctx.setDiagnosticsHotnessRequested(true); if (CodeGenOpts.MisExpect) { diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp index 30aec87c909eb..4193f0a1b278f 100644 --- a/clang/lib/CodeGen/CodeGenFunction.cpp +++ b/clang/lib/CodeGen/CodeGenFunction.cpp @@ -940,8 +940,7 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy, } } - if (CGM.getCodeGenOpts().getProfileInstr() != - llvm::driver::ProfileInstrKind::ProfileNone) { + if (CGM.getCodeGenOpts().getProfileInstr() != CodeGenOptions::ProfileNone) { switch (CGM.isFunctionBlockedFromProfileInstr(Fn, Loc)) { case ProfileList::Skip: Fn->addFnAttr(llvm::Attribute::SkipProfile); diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 264f1bdee81c6..6d2c705338ecf 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -3601,7 +3601,7 @@ CodeGenModule::isFunctionBlockedByProfileList(llvm::Function *Fn, // If the profile list is empty, then instrument everything. if (ProfileList.isEmpty()) return ProfileList::Allow; - llvm::driver::ProfileInstrKind Kind = getCodeGenOpts().getProfileInstr(); + CodeGenOptions::ProfileInstrKind Kind = getCodeGenOpts().getProfileInstr(); // First, check the function name. if (auto V = ProfileList.isFunctionExcluded(Fn->getName(), Kind)) return *V; diff --git a/clang/lib/Driver/ToolChains/Flang.cpp b/clang/lib/Driver/ToolChains/Flang.cpp index e303631cc1d57..dcc46469df3e9 100644 --- a/clang/lib/Driver/ToolChains/Flang.cpp +++ b/clang/lib/Driver/ToolChains/Flang.cpp @@ -883,10 +883,6 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA, // TODO: Handle interactions between -w, -pedantic, -Wall, -WOption Args.AddLastArg(CmdArgs, options::OPT_w); - // recognise options: fprofile-generate -fprofile-use= - Args.addAllArgs( - CmdArgs, {options::OPT_fprofile_generate, options::OPT_fprofile_use_EQ}); - // Forward flags for OpenMP. We don't do this if the current action is an // device offloading action other than OpenMP. if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ, diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 11d0dc6b7b6f1..9c33910eff57e 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1499,11 +1499,11 @@ static void setPGOUseInstrumentor(CodeGenOptions &Opts, // which is available (might be one or both). if (PGOReader->isIRLevelProfile() || PGOReader->hasMemoryProfile()) { if (PGOReader->hasCSIRLevelProfile()) - Opts.setProfileUse(llvm::driver::ProfileInstrKind::ProfileCSIRInstr); + Opts.setProfileUse(CodeGenOptions::ProfileCSIRInstr); else - Opts.setProfileUse(llvm::driver::ProfileInstrKind::ProfileIRInstr); + Opts.setProfileUse(CodeGenOptions::ProfileIRInstr); } else - Opts.setProfileUse(llvm::driver::ProfileInstrKind::ProfileClangInstr); + Opts.setProfileUse(CodeGenOptions::ProfileClangInstr); } void CompilerInvocation::setDefaultPointerAuthOptions( diff --git a/flang/include/flang/Frontend/CodeGenOptions.def b/flang/include/flang/Frontend/CodeGenOptions.def index ae12aec518108..a697872836569 100644 --- a/flang/include/flang/Frontend/CodeGenOptions.def +++ b/flang/include/flang/Frontend/CodeGenOptions.def @@ -24,15 +24,8 @@ CODEGENOPT(OptimizationLevel, 2, 0) ///< The -O[0-3] option specified. CODEGENOPT(DebugPassManager, 1, 0) ///< Prints debug information for the new ///< pass manager. - -/// Choose profile instrumenation kind or no instrumentation. -ENUM_CODEGENOPT(ProfileInstr, llvm::driver::ProfileInstrKind, 2, llvm::driver::ProfileInstrKind::ProfileNone) -/// Choose profile kind for PGO use compilation. -ENUM_CODEGENOPT(ProfileUse, llvm::driver::ProfileInstrKind, 2, llvm::driver::ProfileInstrKind::ProfileNone) - CODEGENOPT(InstrumentFunctions, 1, 0) ///< Set when -finstrument_functions is ///< enabled on the compile step. - CODEGENOPT(IsPIE, 1, 0) ///< PIE level is the same as PIC Level. CODEGENOPT(PICLevel, 2, 0) ///< PIC level of the LLVM module. CODEGENOPT(PrepareForFullLTO , 1, 0) ///< Set when -flto is enabled on the diff --git a/flang/include/flang/Frontend/CodeGenOptions.h b/flang/include/flang/Frontend/CodeGenOptions.h index 06203670f97b9..61e56e51c4bbb 100644 --- a/flang/include/flang/Frontend/CodeGenOptions.h +++ b/flang/include/flang/Frontend/CodeGenOptions.h @@ -151,44 +151,6 @@ class CodeGenOptions : public CodeGenOptionsBase { /// OpenMP is enabled. using DoConcurrentMappingKind = flangomp::DoConcurrentMappingKind; - /// Name of the profile file to use as output for -fprofile-instr-generate, - /// -fprofile-generate, and -fcs-profile-generate. - std::string InstrProfileOutput; - - /// Name of the profile file to use as input for -fmemory-profile-use. - std::string MemoryProfileUsePath; - - /// Name of the profile file to use as input for -fprofile-instr-use - std::string ProfileInstrumentUsePath; - - /// Name of the profile remapping file to apply to the profile data supplied - /// by -fprofile-sample-use or -fprofile-instr-use. - std::string ProfileRemappingFile; - - /// Check if Clang profile instrumenation is on. - bool hasProfileClangInstr() const { - return getProfileInstr() == llvm::driver::ProfileClangInstr; - } - - /// Check if IR level profile instrumentation is on. - bool hasProfileIRInstr() const { - return getProfileInstr() == llvm::driver::ProfileIRInstr; - } - - /// Check if CS IR level profile instrumentation is on. - bool hasProfileCSIRInstr() const { - return getProfileInstr() == llvm::driver::ProfileCSIRInstr; - } - /// Check if IR level profile use is on. - bool hasProfileIRUse() const { - return getProfileUse() == llvm::driver::ProfileIRInstr || - getProfileUse() == llvm::driver::ProfileCSIRInstr; - } - /// Check if CSIR profile use is on. - bool hasProfileCSIRUse() const { - return getProfileUse() == llvm::driver::ProfileCSIRInstr; - } - // Define accessors/mutators for code generation options of enumeration type. #define CODEGENOPT(Name, Bits, Default) #define ENUM_CODEGENOPT(Name, Type, Bits, Default) \ diff --git a/flang/lib/Frontend/CompilerInvocation.cpp b/flang/lib/Frontend/CompilerI... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/142159 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits