blob: accc38d97223150d92ea814bad1f975885f01809 [file] [edit]
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
include "llvm/Option/LibraryOptions.td"
def CodeGenToolOptions : OptionsStruct;
defm : BoolField<"addrsig", "false",
"Emit an address-significance table">;
defm : ValueField<"align-loops", "unsigned", "0",
"Default alignment for loops">;
defm : BoolField<"basic-block-address-map", "false",
"Emit the basic block address map section">;
defm : ValueField<"basic-block-sections", "StringRef", "\"none\"",
"Emit basic blocks into separate sections">;
defm : BoolField<"call-graph-section", "false",
"Emit a call graph section">;
defm : BoolField<"debug-entry-values", "false",
"Enable debug info for the debug entry values">;
// FIXME: Doesn't have way to specify separate input and output modes.
defm : OptionalEnumField<"denormal-fp-math", "DenormalMode::DenormalModeKind",
"ieee,preserve-sign,positive-zero,dynamic",
["DenormalMode::IEEE", "DenormalMode::PreserveSign", "DenormalMode::PositiveZero", "DenormalMode::Dynamic"],
"Select which denormal numbers the code is permitted to require">;
defm : OptionalEnumField<"denormal-fp-math-f32", "DenormalMode::DenormalModeKind",
"ieee,preserve-sign,positive-zero,dynamic",
["DenormalMode::IEEE", "DenormalMode::PreserveSign", "DenormalMode::PositiveZero", "DenormalMode::Dynamic"],
"Select which denormal numbers the code is permitted to require for float">;
defm : OptionalBoolField<"disable-tail-calls",
"Never emit tail calls">;
defm : BoolField<"emit-call-site-info", "false",
"Emit call site debug information, if debug information is enabled">;
defm : BoolField<"enable-jmc-instrument", "false",
"Instrument functions with a call to __CheckForDebuggerJustMyCode">;
defm : OptionalBoolField<"enable-tlsdesc",
"Enable the use of TLS Descriptors">;
defm : EnumField<"exception-model", "ExceptionHandling", "ExceptionHandling::Default",
"default,none,dwarf,sjlj,arm,wineh,wasm,emscripten",
["ExceptionHandling::Default", "ExceptionHandling::None", "ExceptionHandling::DwarfCFI", "ExceptionHandling::SjLj", "ExceptionHandling::ARM", "ExceptionHandling::WinEH", "ExceptionHandling::Wasm", "ExceptionHandling::Emscripten"],
"Exception model">;
defm : BoolField<"force-dwarf-frame-section", "false",
"Always emit a debug frame section">;
defm : OptionalEnumField<"frame-pointer", "FramePointerKind",
"all,non-leaf,non-leaf-no-reserve,reserved,none",
["FramePointerKind::All", "FramePointerKind::NonLeaf", "FramePointerKind::NonLeafNoReserve", "FramePointerKind::Reserved", "FramePointerKind::None"],
"Specify frame pointer elimination optimization">;
defm : BoolField<"ignore-xcoff-visibility", "false",
"Not emit the visibility attribute for asm in AIX OS or give all symbols 'unspecified' visibility in XCOFF object file">;
defm : BoolField<"mxcoff-roptr", "false",
"When set to true, const objects with relocatable address values are put into the RO data section">;
defm : BoolField<"nozero-initialized-in-bss", "false",
"Don't place zero-initialized symbols into bss section">;
defm : BoolField<"partition-static-data-sections", "false",
"Partition data sections using profile information">;
defm : BoolField<"separate-named-sections", "false",
"Use separate unique sections for named sections">;
defm : BoolField<"stack-size-section", "false",
"Emit a section containing stack size metadata">;
defm : BoolField<"stack-symbol-ordering", "true",
"Order local stack symbols">;
defm : BoolField<"stackrealign", "false",
"Force align the stack to the minimum alignment">;
defm : BoolField<"strict-dwarf", "false",
"Use strict DWARF">;
defm : EnumField<"swift-async-fp", "SwiftAsyncFramePointerMode", "SwiftAsyncFramePointerMode::Always",
"auto,always,never",
["SwiftAsyncFramePointerMode::DeploymentBased", "SwiftAsyncFramePointerMode::Always", "SwiftAsyncFramePointerMode::Never"],
"Determine when the Swift async frame pointer should be set">;
defm : BoolField<"tailcallopt", "false",
"Turn fastcc calls into tail calls by (potentially) changing ABI">;
defm : ValueField<"tls-size", "unsigned", "0",
"Bit size of immediate TLS offsets">;
defm : OptionalValueField<"trap-func", "StringRef",
"Emit a call to trap function rather than a trap instruction">;
defm : BoolField<"unique-basic-block-section-names", "false",
"Give unique names to every basic block section">;
defm : BoolField<"unique-section-names", "true",
"Give unique names to every section">;
defm : BoolField<"use-ctors", "false",
"Use .ctors instead of .init_array">;
defm : EnumField<"vector-library", "VectorLibrary", "VectorLibrary::NoLibrary",
"none,Accelerate,Darwin_libsystem_m,LIBMVEC,MASSV,SVML,sleefgnuabi,ArmPL,AMDLIBM",
["VectorLibrary::NoLibrary", "VectorLibrary::Accelerate", "VectorLibrary::DarwinLibSystemM", "VectorLibrary::LIBMVEC", "VectorLibrary::MASSV", "VectorLibrary::SVML", "VectorLibrary::SLEEFGNUABI", "VectorLibrary::ArmPL", "VectorLibrary::AMDLIBM"],
"Vector functions library">;
defm : BoolField<"xcoff-traceback-table", "true",
"Emit the XCOFF traceback table">;
defm : BoolField<"xray-function-index", "true",
"Emit xray_fn_idx section">;