14#ifndef LLVM_SUPPORT_CODEGEN_H
15#define LLVM_SUPPORT_CODEGEN_H
111 if (Name ==
"emscripten")
147 if (Name ==
"double")
149 if (Name ==
"x86_fp80")
153 if (Name ==
"ppc_fp128")
238 inline std::optional<CodeGenOptLevel>
getLevel(
int OL) {
239 if (OL < 0 || OL > 3)
249 return getLevel(
static_cast<int>(
C -
'0'));
static GCRegistry::Add< ShadowStackGC > C("shadow-stack", "Very portable GC for uncooperative code generators")
Represent a constant reference to a string, i.e.
This class is the base class for all object file types.
Define some predicates that are used for node matching.
std::optional< CodeGenOptLevel > getLevel(int OL)
Get the Level identified by the integer OL.
std::optional< CodeGenOptLevel > parseLevel(char C)
Parse C as a single digit integer and get matching CodeGenLevel.
std::optional< ABIType > parseABIType(StringRef S)
Parse the string spelling used by the "float-abi" IR module flag into an ABIType.
StringRef getABITypeName(ABIType ABI)
Returns the string spelling used by the "float-abi" IR module flag for a Soft or Hard ABIType.
This is an optimization pass for GlobalISel generic memory operations.
std::optional< LongDoubleFormat > parseLongDoubleFormat(StringRef Name)
Parses an IR floating-point type name into a LongDoubleFormat, returning std::nullopt if it does not ...
@ Unknown
Not known to have no common set bits.
StringRef getLongDoubleFormatName(LongDoubleFormat Format)
Returns the IR floating-point type name for a LongDoubleFormat.
LongDoubleFormat
The floating-point format used for the target's "long double" type.
std::optional< ExceptionHandling > parseExceptionModel(StringRef Name)
Parses the string spelling used by the "exception-model" IR module flag into an ExceptionHandling val...
StringRef getExceptionModelName(ExceptionHandling EH)
Returns the "exception-model" module flag spelling for an ExceptionHandling value.
@ Async
"Asynchronous" unwind tables (instr precise)
@ Sync
"Synchronous" unwind tables
CodeGenFileType
These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit,...
CodeGenOptLevel
Code generation optimization level.
ThreadModel
The threading model to assume for lowering, e.g. of atomics.
std::optional< ThreadModel > parseThreadModel(StringRef S)
Parse the string spelling used by the "thread-model" IR module flag into a ThreadModel.
@ SjLj
setjmp/longjmp based exceptions
@ ZOS
z/OS MVS Exception Handling.
@ Emscripten
Emscripten JavaScript-based exception handling.
@ None
No exception support.
@ Default
Not specified; resolve to the target's default model.
@ AIX
AIX Exception Handling.
@ DwarfCFI
DWARF-like instruction based exceptions.
@ WinEH
Windows Exception Handling.
@ Wasm
WebAssembly Exception Handling.
ControlFlowGuardMechanism
StringRef getThreadModelName(ThreadModel TM)
Returns the string spelling used by the "thread-model" IR module flag for a ThreadModel.
@ Enabled
Convert any .debug_str_offsets tables to DWARF64 if needed.
@ Disabled
Don't do any conversion of .debug_str_offsets tables.
@ Default
The result value is uniform if and only if all operands are uniform.
@ Keep
No function return thunk.
@ Extern
Replace returns with jump to thunk, don't emit thunk.