-
Notifications
You must be signed in to change notification settings - Fork 14.4k
[clang] Refactor CodeGenOptions
to specify AST effect as X macro arg
#146910
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jansvoboda11
wants to merge
2
commits into
llvm:main
Choose a base branch
from
jansvoboda11:codegenopts-ast-effect-arg
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@llvm/pr-subscribers-clang Author: Jan Svoboda (jansvoboda11) ChangesThis is the Patch is 68.79 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/146910.diff 5 Files Affected:
diff --git a/clang/include/clang/Basic/CodeGenOptions.def b/clang/include/clang/Basic/CodeGenOptions.def
index e5566a540dc65..0eba77398a22d 100644
--- a/clang/include/clang/Basic/CodeGenOptions.def
+++ b/clang/include/clang/Basic/CodeGenOptions.def
@@ -12,481 +12,473 @@
// that have enumeration type and VALUE_CODEGENOPT is a code
// generation option that describes a value rather than a flag.
//
-// AFFECTING_VALUE_CODEGENOPT is used for code generation options that can
-// affect the AST.
-//
//===----------------------------------------------------------------------===//
#ifndef CODEGENOPT
-# error Define the CODEGENOPT macro to handle language options
+# error Define the CODEGENOPT macro to handle codegen options
#endif
#ifndef VALUE_CODEGENOPT
-# define VALUE_CODEGENOPT(Name, Bits, Default) \
-CODEGENOPT(Name, Bits, Default)
+# define VALUE_CODEGENOPT(Name, Bits, Default, Compatibility) \
+CODEGENOPT(Name, Bits, Default, Compatibility)
#endif
#ifndef ENUM_CODEGENOPT
-# define ENUM_CODEGENOPT(Name, Type, Bits, Default) \
-CODEGENOPT(Name, Bits, Default)
-#endif
-
-#ifndef AFFECTING_VALUE_CODEGENOPT
-# define AFFECTING_VALUE_CODEGENOPT(Name, Bits, Default) \
-VALUE_CODEGENOPT(Name, Bits, Default)
+# define ENUM_CODEGENOPT(Name, Type, Bits, Default, Compatibility) \
+CODEGENOPT(Name, Bits, Default, Compatibility)
#endif
-CODEGENOPT(DisableIntegratedAS, 1, 0) ///< -no-integrated-as
-CODEGENOPT(Crel, 1, 0) ///< -Wa,--crel
-CODEGENOPT(ImplicitMapSyms, 1, 0) ///< -Wa,-mmapsyms=implicit
-CODEGENOPT(AsmVerbose , 1, 0) ///< -dA, -fverbose-asm.
-CODEGENOPT(PreserveAsmComments, 1, 1) ///< -dA, -fno-preserve-as-comments.
-CODEGENOPT(AssumeSaneOperatorNew , 1, 1) ///< implicit __attribute__((malloc)) operator new
-CODEGENOPT(AssumeUniqueVTables , 1, 1) ///< Assume a class has only one vtable.
-CODEGENOPT(Autolink , 1, 1) ///< -fno-autolink
-CODEGENOPT(AutoImport , 1, 1) ///< -fno-auto-import
-CODEGENOPT(ObjCAutoRefCountExceptions , 1, 0) ///< Whether ARC should be EH-safe.
-CODEGENOPT(Backchain , 1, 0) ///< -mbackchain
-CODEGENOPT(ControlFlowGuardNoChecks , 1, 0) ///< -cfguard-no-checks
-CODEGENOPT(ControlFlowGuard , 1, 0) ///< -cfguard
-CODEGENOPT(EHContGuard , 1, 0) ///< -ehcontguard
-CODEGENOPT(CXAAtExit , 1, 1) ///< Use __cxa_atexit for calling destructors.
-CODEGENOPT(RegisterGlobalDtorsWithAtExit, 1, 1) ///< Use atexit or __cxa_atexit to register global destructors.
-CODEGENOPT(CXXCtorDtorAliases, 1, 0) ///< Emit complete ctors/dtors as linker
+CODEGENOPT(DisableIntegratedAS, 1, 0, Benign) ///< -no-integrated-as
+CODEGENOPT(Crel, 1, 0, Benign) ///< -Wa,--crel
+CODEGENOPT(ImplicitMapSyms, 1, 0, Benign) ///< -Wa,-mmapsyms=implicit
+CODEGENOPT(AsmVerbose , 1, 0, Benign) ///< -dA, -fverbose-asm.
+CODEGENOPT(PreserveAsmComments, 1, 1, Benign) ///< -dA, -fno-preserve-as-comments.
+CODEGENOPT(AssumeSaneOperatorNew , 1, 1, Benign) ///< implicit __attribute__((malloc)) operator new
+CODEGENOPT(AssumeUniqueVTables , 1, 1, Benign) ///< Assume a class has only one vtable.
+CODEGENOPT(Autolink , 1, 1, Benign) ///< -fno-autolink
+CODEGENOPT(AutoImport , 1, 1, Benign) ///< -fno-auto-import
+CODEGENOPT(ObjCAutoRefCountExceptions , 1, 0, Benign) ///< Whether ARC should be EH-safe.
+CODEGENOPT(Backchain , 1, 0, Benign) ///< -mbackchain
+CODEGENOPT(ControlFlowGuardNoChecks , 1, 0, Benign) ///< -cfguard-no-checks
+CODEGENOPT(ControlFlowGuard , 1, 0, Benign) ///< -cfguard
+CODEGENOPT(EHContGuard , 1, 0, Benign) ///< -ehcontguard
+CODEGENOPT(CXAAtExit , 1, 1, Benign) ///< Use __cxa_atexit for calling destructors.
+CODEGENOPT(RegisterGlobalDtorsWithAtExit, 1, 1, Benign) ///< Use atexit or __cxa_atexit to register global destructors.
+CODEGENOPT(CXXCtorDtorAliases, 1, 0, Benign) ///< Emit complete ctors/dtors as linker
///< aliases to base ctors when possible.
-CODEGENOPT(DataSections , 1, 0) ///< Set when -fdata-sections is enabled.
-CODEGENOPT(UniqueSectionNames, 1, 1) ///< Set for -funique-section-names.
-CODEGENOPT(UniqueBasicBlockSectionNames, 1, 1) ///< Set for -funique-basic-block-section-names,
+CODEGENOPT(DataSections , 1, 0, Benign) ///< Set when -fdata-sections is enabled.
+CODEGENOPT(UniqueSectionNames, 1, 1, Benign) ///< Set for -funique-section-names.
+CODEGENOPT(UniqueBasicBlockSectionNames, 1, 1, Benign) ///< Set for -funique-basic-block-section-names,
///< Produce unique section names with
///< basic block sections.
-CODEGENOPT(SeparateNamedSections, 1, 0) ///< Set for -fseparate-named-sections.
-CODEGENOPT(EnableAIXExtendedAltivecABI, 1, 0) ///< Set for -mabi=vec-extabi. Enables the extended Altivec ABI on AIX.
-CODEGENOPT(XCOFFReadOnlyPointers, 1, 0) ///< Set for -mxcoff-roptr.
-CODEGENOPT(AllTocData, 1, 0) ///< AIX -mtocdata
-ENUM_CODEGENOPT(FramePointer, FramePointerKind, 2, FramePointerKind::None) /// frame-pointer: all,non-leaf,reserved,none
-
-CODEGENOPT(ClearASTBeforeBackend , 1, 0) ///< Free the AST before running backend code generation. Only works with -disable-free.
-CODEGENOPT(DisableFree , 1, 0) ///< Don't free memory.
-CODEGENOPT(DiscardValueNames , 1, 0) ///< Discard Value Names from the IR (LLVMContext flag)
-CODEGENOPT(DisableLLVMPasses , 1, 0) ///< Don't run any LLVM IR passes to get
- ///< the pristine IR generated by the
- ///< frontend.
-CODEGENOPT(DisableLifetimeMarkers, 1, 0) ///< Don't emit any lifetime markers
-CODEGENOPT(DisableO0ImplyOptNone , 1, 0) ///< Don't annonate function with optnone at O0
-CODEGENOPT(ExperimentalStrictFloatingPoint, 1, 0) ///< Enables the new, experimental
- ///< strict floating point.
-CODEGENOPT(EnableNoundefAttrs, 1, 0) ///< Enable emitting `noundef` attributes on IR call arguments and return values
-CODEGENOPT(DebugPassManager, 1, 0) ///< Prints debug information for the new
- ///< pass manager.
-CODEGENOPT(DisableRedZone , 1, 0) ///< Set when -mno-red-zone is enabled.
-CODEGENOPT(EmitCallSiteInfo, 1, 0) ///< Emit call site info only in the case of
- ///< '-g' + 'O>0' level.
-CODEGENOPT(IndirectTlsSegRefs, 1, 0) ///< Set when -mno-tls-direct-seg-refs
- ///< is specified.
-CODEGENOPT(DisableTailCalls , 1, 0) ///< Do not emit tail calls.
-CODEGENOPT(NoEscapingBlockTailCalls, 1, 0) ///< Do not emit tail calls from
- ///< escaping blocks.
-CODEGENOPT(EmitDeclMetadata , 1, 0) ///< Emit special metadata indicating what
- ///< Decl* various IR entities came from.
- ///< Only useful when running CodeGen as a
- ///< subroutine.
-CODEGENOPT(EmitVersionIdentMetadata , 1, 1) ///< Emit compiler version metadata.
-CODEGENOPT(EmitOpenCLArgMetadata , 1, 0) ///< Emit OpenCL kernel arg metadata.
-CODEGENOPT(EmulatedTLS , 1, 0) ///< Set by default or -f[no-]emulated-tls.
+CODEGENOPT(SeparateNamedSections, 1, 0, Benign) ///< Set for -fseparate-named-sections.
+CODEGENOPT(EnableAIXExtendedAltivecABI, 1, 0, Benign) ///< Set for -mabi=vec-extabi. Enables the extended Altivec ABI on AIX.
+CODEGENOPT(XCOFFReadOnlyPointers, 1, 0, Benign) ///< Set for -mxcoff-roptr.
+CODEGENOPT(AllTocData, 1, 0, Benign) ///< AIX -mtocdata
+ENUM_CODEGENOPT(FramePointer, FramePointerKind, 2, FramePointerKind::None, Benign) /// frame-pointer: all,non-leaf,reserved,none
+
+CODEGENOPT(ClearASTBeforeBackend , 1, 0, Benign) ///< Free the AST before running backend code generation. Only works with -disable-free.
+CODEGENOPT(DisableFree , 1, 0, Benign) ///< Don't free memory.
+CODEGENOPT(DiscardValueNames , 1, 0, Benign) ///< Discard Value Names from the IR (LLVMContext flag)
+CODEGENOPT(DisableLLVMPasses , 1, 0, Benign) ///< Don't run any LLVM IR passes to get
+ ///< the pristine IR generated by the
+ ///< frontend.
+CODEGENOPT(DisableLifetimeMarkers, 1, 0, Benign) ///< Don't emit any lifetime markers
+CODEGENOPT(DisableO0ImplyOptNone , 1, 0, Benign) ///< Don't annonate function with optnone at O0
+CODEGENOPT(ExperimentalStrictFloatingPoint, 1, 0, Benign) ///< Enables the new, experimental
+ ///< strict floating point.
+CODEGENOPT(EnableNoundefAttrs, 1, 0, Benign) ///< Enable emitting `noundef` attributes on IR call arguments and return values
+CODEGENOPT(DebugPassManager, 1, 0, Benign) ///< Prints debug information for the new
+ ///< pass manager.
+CODEGENOPT(DisableRedZone , 1, 0, Benign) ///< Set when -mno-red-zone is enabled.
+CODEGENOPT(EmitCallSiteInfo, 1, 0, Benign) ///< Emit call site info only in the case of
+ ///< '-g' + 'O>0' level.
+CODEGENOPT(IndirectTlsSegRefs, 1, 0, Benign) ///< Set when -mno-tls-direct-seg-refs
+ ///< is specified.
+CODEGENOPT(DisableTailCalls , 1, 0, Benign) ///< Do not emit tail calls.
+CODEGENOPT(NoEscapingBlockTailCalls, 1, 0, Benign) ///< Do not emit tail calls from
+ ///< escaping blocks.
+CODEGENOPT(EmitDeclMetadata , 1, 0, Benign) ///< Emit special metadata indicating what
+ ///< Decl* various IR entities came from.
+ ///< Only useful when running CodeGen as a
+ ///< subroutine.
+CODEGENOPT(EmitVersionIdentMetadata , 1, 1, Benign) ///< Emit compiler version metadata.
+CODEGENOPT(EmitOpenCLArgMetadata , 1, 0, Benign) ///< Emit OpenCL kernel arg metadata.
+CODEGENOPT(EmulatedTLS , 1, 0, Benign) ///< Set by default or -f[no-]emulated-tls.
/// Embed Bitcode mode (off/all/bitcode/marker).
-ENUM_CODEGENOPT(EmbedBitcode, EmbedBitcodeKind, 2, Embed_Off)
+ENUM_CODEGENOPT(EmbedBitcode, EmbedBitcodeKind, 2, Embed_Off, Benign)
/// Inline asm dialect, -masm=(att|intel)
-ENUM_CODEGENOPT(InlineAsmDialect, InlineAsmDialectKind, 1, IAD_ATT)
-CODEGENOPT(OutputAsmVariant, 2, 3) ///< Set the asm variant for output (3: unspecified).
-CODEGENOPT(ForbidGuardVariables , 1, 0) ///< Issue errors if C++ guard variables
- ///< are required.
-CODEGENOPT(FunctionSections , 1, 0) ///< Set when -ffunction-sections is enabled.
-CODEGENOPT(BBAddrMap , 1, 0) ///< Set when -fbasic-block-address-map is enabled.
-CODEGENOPT(InstrumentFunctions , 1, 0) ///< Set when -finstrument-functions is
- ///< enabled.
-CODEGENOPT(InstrumentFunctionsAfterInlining , 1, 0) ///< Set when
+ENUM_CODEGENOPT(InlineAsmDialect, InlineAsmDialectKind, 1, IAD_ATT, Benign)
+CODEGENOPT(OutputAsmVariant, 2, 3, Benign) ///< Set the asm variant for output (3: unspecified).
+CODEGENOPT(ForbidGuardVariables , 1, 0, Benign) ///< Issue errors if C++ guard variables
+ ///< are required.
+CODEGENOPT(FunctionSections , 1, 0, Benign) ///< Set when -ffunction-sections is enabled.
+CODEGENOPT(BBAddrMap , 1, 0, Benign) ///< Set when -fbasic-block-address-map is enabled.
+CODEGENOPT(InstrumentFunctions , 1, 0, Benign) ///< Set when -finstrument-functions is
+ ///< enabled.
+CODEGENOPT(InstrumentFunctionsAfterInlining , 1, 0, Benign) ///< Set when
///< -finstrument-functions-after-inlining is enabled.
-CODEGENOPT(InstrumentFunctionEntryBare , 1, 0) ///< Set when
+CODEGENOPT(InstrumentFunctionEntryBare , 1, 0, Benign) ///< Set when
///< -finstrument-function-entry-bare is enabled.
-CODEGENOPT(CFProtectionReturn , 1, 0) ///< if -fcf-protection is
+CODEGENOPT(CFProtectionReturn , 1, 0, Benign) ///< if -fcf-protection is
///< set to full or return.
-CODEGENOPT(CFProtectionBranch , 1, 0) ///< if -fcf-protection is
- ///< set to full or branch.
+CODEGENOPT(CFProtectionBranch , 1, 0, Benign) ///< if -fcf-protection is
+ ///< set to full or branch.
ENUM_CODEGENOPT(CFBranchLabelScheme, CFBranchLabelSchemeKind, 2,
- CFBranchLabelSchemeKind::Default) ///< if -mcf-branch-label-scheme is set.
-CODEGENOPT(FunctionReturnThunks, 1, 0) ///< -mfunction-return={keep|thunk-extern}
-CODEGENOPT(IndirectBranchCSPrefix, 1, 0) ///< if -mindirect-branch-cs-prefix
- ///< is set.
+ CFBranchLabelSchemeKind::Default, Benign) ///< if -mcf-branch-label-scheme is set.
+CODEGENOPT(FunctionReturnThunks, 1, 0, Benign) ///< -mfunction-return={keep|thunk-extern}
+CODEGENOPT(IndirectBranchCSPrefix, 1, 0, Benign) ///< if -mindirect-branch-cs-prefix
+ ///< is set.
-CODEGENOPT(XRayInstrumentFunctions , 1, 0) ///< Set when -fxray-instrument is
- ///< enabled.
-CODEGENOPT(StackSizeSection , 1, 0) ///< Set when -fstack-size-section is enabled.
+CODEGENOPT(XRayInstrumentFunctions , 1, 0, Benign) ///< Set when -fxray-instrument is
+ ///< enabled.
+CODEGENOPT(StackSizeSection , 1, 0, Benign) ///< Set when -fstack-size-section is enabled.
///< Set when -femit-compact-unwind-non-canonical is enabled.
-CODEGENOPT(EmitCompactUnwindNonCanonical, 1, 0)
+CODEGENOPT(EmitCompactUnwindNonCanonical, 1, 0, Benign)
///< Set when -fxray-always-emit-customevents is enabled.
-CODEGENOPT(XRayAlwaysEmitCustomEvents , 1, 0)
+CODEGENOPT(XRayAlwaysEmitCustomEvents , 1, 0, Benign)
///< Set when -fxray-always-emit-typedevents is enabled.
-CODEGENOPT(XRayAlwaysEmitTypedEvents , 1, 0)
+CODEGENOPT(XRayAlwaysEmitTypedEvents , 1, 0, Benign)
///< Set when -fxray-ignore-loops is enabled.
-CODEGENOPT(XRayIgnoreLoops , 1, 0)
+CODEGENOPT(XRayIgnoreLoops , 1, 0, Benign)
///< Emit the XRay function index section.
-CODEGENOPT(XRayFunctionIndex , 1, 1)
+CODEGENOPT(XRayFunctionIndex , 1, 1, Benign)
///< Set when -fxray-shared is enabled
-CODEGENOPT(XRayShared , 1, 0)
+CODEGENOPT(XRayShared , 1, 0, Benign)
///< Set the minimum number of instructions in a function to determine selective
///< XRay instrumentation.
-VALUE_CODEGENOPT(XRayInstructionThreshold , 32, 200)
+VALUE_CODEGENOPT(XRayInstructionThreshold , 32, 200, Benign)
///< Only instrument 1 in N functions, by dividing functions into N total groups and
///< instrumenting only the specified group at a time. Group numbers start at 0
///< and end at N-1.
-VALUE_CODEGENOPT(XRayTotalFunctionGroups, 32, 1)
-VALUE_CODEGENOPT(XRaySelectedFunctionGroup, 32, 0)
-
-VALUE_CODEGENOPT(PatchableFunctionEntryCount , 32, 0) ///< Number of NOPs at function entry
-VALUE_CODEGENOPT(PatchableFunctionEntryOffset , 32, 0)
-
-CODEGENOPT(HotPatch, 1, 0) ///< Supports the Microsoft /HOTPATCH flag and
- ///< generates a 'patchable-function' attribute.
-
-CODEGENOPT(TlsGuards , 1, 1) ///< Controls emission of tls guards via -fms-tls-guards
-CODEGENOPT(JMCInstrument, 1, 0) ///< Set when -fjmc is enabled.
-CODEGENOPT(InstrumentForProfiling , 1, 0) ///< Set when -pg is enabled.
-CODEGENOPT(CallFEntry , 1, 0) ///< Set when -mfentry is enabled.
-CODEGENOPT(MNopMCount , 1, 0) ///< Set when -mnop-mcount is enabled.
-CODEGENOPT(RecordMCount , 1, 0) ///< Set when -mrecord-mcount is enabled.
-CODEGENOPT(PackedStack , 1, 0) ///< Set when -mpacked-stack is enabled.
-CODEGENOPT(LessPreciseFPMAD , 1, 0) ///< Enable less precise MAD instructions to
- ///< be generated.
-CODEGENOPT(PrepareForLTO , 1, 0) ///< Set when -flto is enabled on the
- ///< compile step.
-CODEGENOPT(PrepareForThinLTO , 1, 0) ///< Set when -flto=thin is enabled on the
- ///< compile step.
-CODEGENOPT(LTOUnit, 1, 0) ///< Emit IR to support LTO unit features (CFI, whole
- ///< program vtable opt).
-CODEGENOPT(FatLTO, 1, 0) ///< Set when -ffat-lto-objects is enabled.
-CODEGENOPT(EnableSplitLTOUnit, 1, 0) ///< Enable LTO unit splitting to support
- /// CFI and traditional whole program
- /// devirtualization that require whole
- /// program IR support.
-CODEGENOPT(UnifiedLTO, 1, 0) ///< Use the unified LTO pipeline.
-CODEGENOPT(IncrementalLinkerCompatible, 1, 0) ///< Emit an object file which can
- ///< be used with an incremental
- ///< linker.
-CODEGENOPT(MergeAllConstants , 1, 1) ///< Merge identical constants.
-CODEGENOPT(MergeFunctions , 1, 0) ///< Set when -fmerge-functions is enabled.
-CODEGENOPT(NoCommon , 1, 0) ///< Set when -fno-common or C++ is enabled.
-CODEGENOPT(NoExecStack , 1, 0) ///< Set when -Wa,--noexecstack is enabled.
-CODEGENOPT(MipsMsa , 1, 0) ///< Set when -Wa,-mmsa is enabled.
-CODEGENOPT(FatalWarnings , 1, 0) ///< Set when -Wa,--fatal-warnings is
- ///< enabled.
-CODEGENOPT(NoWarn , 1, 0) ///< Set when -Wa,--no-warn is enabled.
-CODEGENOPT(NoTypeCheck , 1, 0) ///< Set when -Wa,--no-type-check is enabled.
-CODEGENOPT(MisExpect , 1, 0) ///< Set when -Wmisexpect is enabled
-CODEGENOPT(EnableSegmentedStacks , 1, 0) ///< Set when -fsplit-stack is enabled.
-CODEGENOPT(StackClashProtector, 1, 0) ///< Set when -fstack-clash-protection is enabled.
-CODEGENOPT(NoImplicitFloat , 1, 0) ///< Set when -mno-implicit-float is enabled.
-CODEGENOPT(NullPointerIsValid , 1, 0) ///< Assume Null pointer deference is defined.
-CODEGENOPT(OpenCLCorrectlyRoundedDivSqrt, 1, 0) ///< -cl-fp32-correctly-rounded-divide-sqrt
-CODEGENOPT(HIPCorrectlyRoundedDivSqrt, 1, 1) ///< -fno-hip-fp32-correctly-rounded-divide-sqrt
-CODEGENOPT(DisableBlockSignatureString, 1, 0) ///< Set when -fdisable-block-signature-string is enabled.
-CODEGENOPT(HIPSaveKernelArgName, 1, 0) ///< Set when -fhip-kernel-arg-name is enabled.
-CODEGENOPT(UniqueInternalLinkageNames, 1, 0) ///< Internal Linkage symbols get unique names.
-CODEGENOPT(SplitMachineFunctions, 1, 0) ///< Split machine functions using profile information.
-CODEGENOPT(PPCUseFullRegisterNames, 1, 0) ///< Print full register names in assembly
-CODEGENOPT(X86RelaxRelocations, 1, 1) ///< -Wa,-mrelax-relocations={yes,no}
-CODEGENOPT(X86Sse2Avx , 1, 0) ///< -Wa,-msse2avx
+VALUE_CODEGENOPT(XRayTotalFunctionGroups, 32, 1, Benign)
+VALUE_CODEGENOPT(XRaySelectedFunctionGroup, 32, 0, Benign)
+
+VALUE_CODEGENOPT(PatchableFunctionEntryCount , 32, 0, Benign) ///< Number of NOPs at function entry
+VALUE_CODEGENOPT(PatchableFunctionEntryOffset , 32, 0, Benign)
+
+CODEGENOPT(HotPatch, 1, 0, Benign) ///< Supports the Microsoft /HOTPATCH flag and
+ ///< generates a 'patchable-function' attribute.
+
+CODEGENOPT(TlsGuards , 1, 1, Benign) ///< Controls emission of tls guards via -fms-tls-guards
+CODEGENOPT(JMCInstrument, 1, 0, Benign) ///< Set when -fjmc is enabled.
+CODEGENOPT(InstrumentForProfiling , 1, 0, Benign) ///< Set when -pg is enabled.
+CODEGENOPT(CallFEntry , 1, 0, Benign) ///< Set when -mfentry is enabled.
+CODEGENOPT(MNopMCount , 1, 0, Benign) ///< Set when -mnop-mcount is enabled.
+CODEGENOPT(RecordMCount , 1, 0, Benign) ///< Set when -mrecord-mcount is enabled.
+CODEGENOPT(PackedStack , 1, 0, Benign) ///< Set when -mpacked-stack is enabled.
+CODEGENOPT(LessPreciseFPMAD , 1, 0, Benign) ///< Enable less precise MAD instructions to
+ ///< be generated.
+CODEGENOPT(PrepareForLTO , 1, 0, Benign) ///< Set when -flto is enabled on the
+ ///< compile step.
+CODEGENOPT(PrepareForThinLTO , 1, 0, Benign) ///< Set when -flto=thin is enabled on the
+ ///< compile step.
+CODEGENOPT(LTOUnit, 1, 0, Benign) ///< ...
[truncated]
|
ChuanqiXu9
approved these changes
Jul 4, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
clang:frontend
Language frontend issues, e.g. anything involving "Sema"
clang
Clang issues not falling into any other category
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the
CodeGenOptions
counterpart to #146766.