diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2023-09-02 21:17:18 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2023-12-08 17:34:50 +0000 |
commit | 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e (patch) | |
tree | 62f873df87c7c675557a179e0c4c83fe9f3087bc /contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp | |
parent | cf037972ea8863e2bab7461d77345367d2c1e054 (diff) | |
parent | 7fa27ce4a07f19b07799a767fc29416f3b625afb (diff) |
Diffstat (limited to 'contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp')
-rw-r--r-- | contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp | 65 |
1 files changed, 37 insertions, 28 deletions
diff --git a/contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp b/contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp index 48cd8e998ec9..c34a52a6f2de 100644 --- a/contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp +++ b/contrib/llvm-project/llvm/lib/CodeGen/CommandFlags.cpp @@ -14,15 +14,15 @@ #include "llvm/CodeGen/CommandFlags.h" #include "llvm/ADT/StringExtras.h" -#include "llvm/ADT/Triple.h" #include "llvm/IR/Instructions.h" #include "llvm/IR/Intrinsics.h" #include "llvm/IR/Module.h" #include "llvm/MC/MCTargetOptionsCommandFlags.h" -#include "llvm/MC/SubtargetFeature.h" #include "llvm/Support/CommandLine.h" -#include "llvm/Support/Host.h" #include "llvm/Support/MemoryBuffer.h" +#include "llvm/TargetParser/Host.h" +#include "llvm/TargetParser/SubtargetFeature.h" +#include "llvm/TargetParser/Triple.h" #include <optional> using namespace llvm; @@ -81,7 +81,7 @@ CGOPT(bool, StackSymbolOrdering) CGOPT(bool, StackRealign) CGOPT(std::string, TrapFuncName) CGOPT(bool, UseCtors) -CGOPT(bool, LowerGlobalDtorsViaCxaAtExit) +CGOPT(bool, DisableIntegratedAS) CGOPT(bool, RelaxELFRelocations) CGOPT_EXP(bool, DataSections) CGOPT_EXP(bool, FunctionSections) @@ -89,7 +89,7 @@ CGOPT(bool, IgnoreXCOFFVisibility) CGOPT(bool, XCOFFTracebackTable) CGOPT(std::string, BBSections) CGOPT(unsigned, TLSSize) -CGOPT(bool, EmulatedTLS) +CGOPT_EXP(bool, EmulatedTLS) CGOPT(bool, UniqueSectionNames) CGOPT(bool, UniqueBasicBlockSectionNames) CGOPT(EABI, EABIVersion) @@ -100,10 +100,11 @@ CGOPT(bool, EmitCallSiteInfo) CGOPT(bool, EnableMachineFunctionSplitter) CGOPT(bool, EnableDebugEntryValues) CGOPT(bool, ForceDwarfFrameSection) -CGOPT(bool, XRayOmitFunctionIndex) +CGOPT(bool, XRayFunctionIndex) CGOPT(bool, DebugStrictDwarf) CGOPT(unsigned, AlignLoops) CGOPT(bool, JMCInstrument) +CGOPT(bool, XCOFFReadOnlyPointers) codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { #define CGBINDOPT(NAME) \ @@ -241,14 +242,15 @@ codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { cl::init(false)); CGBINDOPT(EnableNoTrappingFPMath); - static const auto DenormFlagEnumOptions = - cl::values(clEnumValN(DenormalMode::IEEE, "ieee", - "IEEE 754 denormal numbers"), - clEnumValN(DenormalMode::PreserveSign, "preserve-sign", - "the sign of a flushed-to-zero number is preserved " - "in the sign of 0"), - clEnumValN(DenormalMode::PositiveZero, "positive-zero", - "denormals are flushed to positive zero")); + static const auto DenormFlagEnumOptions = cl::values( + clEnumValN(DenormalMode::IEEE, "ieee", "IEEE 754 denormal numbers"), + clEnumValN(DenormalMode::PreserveSign, "preserve-sign", + "the sign of a flushed-to-zero number is preserved " + "in the sign of 0"), + clEnumValN(DenormalMode::PositiveZero, "positive-zero", + "denormals are flushed to positive zero"), + clEnumValN(DenormalMode::Dynamic, "dynamic", + "denormals have unknown treatment")); // FIXME: Doesn't have way to specify separate input and output modes. static cl::opt<DenormalMode::DenormalModeKind> DenormalFPMath( @@ -349,12 +351,6 @@ codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { cl::init(false)); CGBINDOPT(UseCtors); - static cl::opt<bool> LowerGlobalDtorsViaCxaAtExit( - "lower-global-dtors-via-cxa-atexit", - cl::desc("Lower llvm.global_dtors (global destructors) via __cxa_atexit"), - cl::init(true)); - CGBINDOPT(LowerGlobalDtorsViaCxaAtExit); - static cl::opt<bool> RelaxELFRelocations( "relax-elf-relocations", cl::desc( @@ -466,10 +462,10 @@ codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { cl::desc("Always emit a debug frame section."), cl::init(false)); CGBINDOPT(ForceDwarfFrameSection); - static cl::opt<bool> XRayOmitFunctionIndex( - "no-xray-index", cl::desc("Don't emit xray_fn_idx section"), - cl::init(false)); - CGBINDOPT(XRayOmitFunctionIndex); + static cl::opt<bool> XRayFunctionIndex("xray-function-index", + cl::desc("Emit xray_fn_idx section"), + cl::init(true)); + CGBINDOPT(XRayFunctionIndex); static cl::opt<bool> DebugStrictDwarf( "strict-dwarf", cl::desc("use strict dwarf"), cl::init(false)); @@ -485,6 +481,18 @@ codegen::RegisterCodeGenFlags::RegisterCodeGenFlags() { cl::init(false)); CGBINDOPT(JMCInstrument); + static cl::opt<bool> XCOFFReadOnlyPointers( + "mxcoff-roptr", + cl::desc("When set to true, const objects with relocatable address " + "values are put into the RO data section."), + cl::init(false)); + CGBINDOPT(XCOFFReadOnlyPointers); + + static cl::opt<bool> DisableIntegratedAS( + "no-integrated-as", cl::desc("Disable integrated assembler"), + cl::init(false)); + CGBINDOPT(DisableIntegratedAS); + #undef CGBINDOPT mc::RegisterMCTargetOptionsFlags(); @@ -538,7 +546,7 @@ codegen::InitTargetOptionsFromCodeGenFlags(const Triple &TheTriple) { Options.GuaranteedTailCallOpt = getEnableGuaranteedTailCallOpt(); Options.StackSymbolOrdering = getStackSymbolOrdering(); Options.UseInitArray = !getUseCtors(); - Options.LowerGlobalDtorsViaCxaAtExit = getLowerGlobalDtorsViaCxaAtExit(); + Options.DisableIntegratedAS = getDisableIntegratedAS(); Options.RelaxELFRelocations = getRelaxELFRelocations(); Options.DataSections = getExplicitDataSections().value_or(TheTriple.hasDefaultDataSections()); @@ -549,8 +557,8 @@ codegen::InitTargetOptionsFromCodeGenFlags(const Triple &TheTriple) { Options.UniqueSectionNames = getUniqueSectionNames(); Options.UniqueBasicBlockSectionNames = getUniqueBasicBlockSectionNames(); Options.TLSSize = getTLSSize(); - Options.EmulatedTLS = getEmulatedTLS(); - Options.ExplicitEmulatedTLS = EmulatedTLSView->getNumOccurrences() > 0; + Options.EmulatedTLS = + getExplicitEmulatedTLS().value_or(TheTriple.hasDefaultEmulatedTLS()); Options.ExceptionModel = getExceptionModel(); Options.EmitStackSizeSection = getEnableStackSizeSection(); Options.EnableMachineFunctionSplitter = getEnableMachineFunctionSplitter(); @@ -558,10 +566,11 @@ codegen::InitTargetOptionsFromCodeGenFlags(const Triple &TheTriple) { Options.EmitCallSiteInfo = getEmitCallSiteInfo(); Options.EnableDebugEntryValues = getEnableDebugEntryValues(); Options.ForceDwarfFrameSection = getForceDwarfFrameSection(); - Options.XRayOmitFunctionIndex = getXRayOmitFunctionIndex(); + Options.XRayFunctionIndex = getXRayFunctionIndex(); Options.DebugStrictDwarf = getDebugStrictDwarf(); Options.LoopAlignment = getAlignLoops(); Options.JMCInstrument = getJMCInstrument(); + Options.XCOFFReadOnlyPointers = getXCOFFReadOnlyPointers(); Options.MCOptions = mc::InitMCTargetOptionsFromFlags(); |