14 #ifndef LLVM_CLANG_FRONTEND_CODEGENOPTIONS_H 15 #define LLVM_CLANG_FRONTEND_CODEGENOPTIONS_H 19 #include "llvm/Support/Regex.h" 20 #include "llvm/Target/TargetOptions.h" 32 #define CODEGENOPT(Name, Bits, Default) unsigned Name : Bits; 33 #define ENUM_CODEGENOPT(Name, Type, Bits, Default) 34 #include "clang/Frontend/CodeGenOptions.def" 37 #define CODEGENOPT(Name, Bits, Default) 38 #define ENUM_CODEGENOPT(Name, Type, Bits, Default) unsigned Name : Bits; 39 #include "clang/Frontend/CodeGenOptions.def" 121 char CoverageVersion[4];
150 bool PropagateAttrs =
false;
152 bool Internalize =
false;
154 unsigned LinkFlags = 0;
263 #define CODEGENOPT(Name, Bits, Default) 264 #define ENUM_CODEGENOPT(Name, Type, Bits, Default) \ 265 Type get##Name() const { return static_cast<Type>(Name); } \ 266 void set##Name(Type Value) { Name = static_cast<unsigned>(Value); } 267 #include "clang/Frontend/CodeGenOptions.def" 273 bool isNoBuiltinFunc(
const char *Name)
const;
276 return NoBuiltinFuncs;
281 return getProfileInstr() == ProfileClangInstr;
286 return getProfileInstr() == ProfileIRInstr;
291 return getProfileUse() == ProfileClangInstr;
296 return getProfileUse() == ProfileIRInstr;
std::string CoverageNotesFile
The filename with path we use for coverage notes files.
std::string ProfileInstrumentUsePath
Name of the profile file to use as input for -fprofile-instr-use.
std::string DwarfDebugFlags
The string to embed in the debug information for the compile unit, if non-empty.
std::shared_ptr< llvm::Regex > OptimizationRemarkMissedPattern
Regular expression to select optimizations for which we should enable missed optimization remarks...
std::string FPDenormalMode
The floating-point denormal mode to use.
std::string SampleProfileFile
Name of the profile file to use with -fprofile-sample-use.
std::vector< std::string > Reciprocals
std::vector< std::string > RewriteMapFiles
Set of files defining the rules for the symbol rewriting.
Bitfields of CodeGenOptions, split out from CodeGenOptions to ensure that this large collection of bi...
std::string SplitDwarfFile
The name for the split debug info file that we'll break out.
std::string DebugPass
Enable additional debugging information.
SanitizerSet SanitizeRecover
Set of sanitizer checks that are non-fatal (i.e.
std::vector< std::string > CudaGpuBinaryFileNames
A list of file names passed with -fcuda-include-gpubinary options to forward to CUDA runtime back-end...
Defines the clang::SanitizerKind enum.
std::map< std::string, std::string > DebugPrefixMap
std::vector< uint8_t > CmdArgs
List of backend command-line options for -fembed-bitcode.
std::string CodeModel
The code model to use (-mcmodel).
ClangABI
Clang versions with different platform ABI conformance.
std::string FloatABI
The ABI to use for passing floating point arguments.
bool hasProfileClangUse() const
Check if Clang profile use is on.
std::string ThreadModel
The thread model to use.
std::vector< std::string > DependentLibraries
A list of dependent libraries.
std::vector< std::string > NoBuiltinFuncs
A list of all -fno-builtin-* function names (e.g., memset).
std::string LimitFloatPrecision
The float precision limit to use, if non-empty.
std::string RelocationModel
The name of the relocation model to use.
std::shared_ptr< llvm::Regex > OptimizationRemarkPattern
Regular expression to select optimizations for which we should enable optimization remarks...
std::string Filename
The filename of the bitcode file to link in.
SanitizerSet SanitizeTrap
Set of sanitizer checks that trap rather than diagnose.
std::shared_ptr< llvm::Regex > OptimizationRemarkAnalysisPattern
Regular expression to select optimizations for which we should enable optimization analyses...
std::vector< BitcodeFileToLink > LinkBitcodeFiles
The files specified here are linked in to the module before optimizations.
StructReturnConventionKind
std::string ThinLTOIndexFile
Name of the function summary index file to use for ThinLTO function importing.
Dataflow Directional Tag Classes.
std::string PreferVectorWidth
The preferred width for auto-vectorization transforms.
bool hasProfileIRUse() const
Check if IR level profile use is on.
std::string DebugCompilationDir
The string to embed in debug information as the current working directory.
bool hasProfileClangInstr() const
Check if Clang profile instrumenation is on.
std::string CoverageDataFile
The filename with path we use for coverage data files.
std::vector< std::string > LinkerOptions
A list of linker options to embed in the object file.
CodeGenOptions - Track various options which control how the code is optimized and passed to the back...
std::string MainFileName
The user provided name for the "main file", if non-empty.
bool hasProfileIRInstr() const
Check if IR level profile instrumentation is on.
const std::vector< std::string > & getNoBuiltinFuncs() const
std::string InstrProfileOutput
Name of the profile file to use as output for -fprofile-instr-generate and -fprofile-generate.
std::string TrapFuncName
If not an empty string, trap intrinsics are lowered to calls to this function instead of to trap inst...
std::string OptRecordFile
The name of the file to which the backend should save YAML optimization records.
std::string ThinLinkBitcodeFile
Name of a file that can optionally be written with minimized bitcode to be used as input for the Thin...
std::vector< std::string > BackendOptions
A list of command-line options to forward to the LLVM backend.