16 #ifndef LLVM_CODEGEN_COMMANDFLAGS_H
17 #define LLVM_CODEGEN_COMMANDFLAGS_H
26 MArch(
"march",
cl::desc(
"Architecture to generate code for (see --version)"));
30 cl::desc(
"Target a specific cpu type (-mcpu=help for details)"),
37 cl::desc(
"Target specific attributes (-mattr=help for details)"),
46 "Target default relocation model"),
48 "Non-relocatable code"),
50 "Fully relocatable, position independent code"),
52 "Relocatable external references, non-relocatable code"),
60 "Target default code model"),
73 cl::desc(
"When used with filetype=obj, "
74 "relax all fixups in the emitted object file"));
78 cl::desc(
"Choose a file type (not all types are supported by all targets):"),
81 "Emit an assembly ('.s') file"),
83 "Emit a native object ('.o') file"),
85 "Emit nothing, for performance testing"),
89 cl::desc(
"Do not use .loc entries"));
92 cl::desc(
"Do not use .cfi_* directives"));
95 cl::desc(
"Use .file directives with an explicit directory."));
99 cl::desc(
"Do not emit code that uses the red zone."),
104 cl::desc(
"Enable less precise MAD instructions to be generated"),
109 cl::desc(
"Disable frame pointer elimination optimization"),
114 cl::desc(
"Enable optimizations that may decrease FP precision"),
119 cl::desc(
"Enable FP math optimizations that assume no +-Infs"),
124 cl::desc(
"Enable FP math optimizations that assume no NaNs"),
130 cl::desc(
"Force codegen to assume rounding mode can change dynamically"),
135 cl::desc(
"Generate software floating point library calls"),
144 "Target default float ABI type"),
146 "Soft float ABI (implied by -soft-float)"),
148 "Hard float ABI (uses FP registers)"),
153 cl::desc(
"Enable aggressive formation of fused FP ops"),
157 "Fuse FP ops whenever profitable"),
159 "Only fuse 'blessed' FP ops."),
161 "Only fuse FP ops when the result won't be effected."),
166 cl::desc(
"Don't place zero-initialized symbols into bss section"),
171 cl::desc(
"Turn fastcc calls into tail calls by (potentially) changing ABI."),
181 cl::desc(
"Override default stack alignment"),
186 cl::desc(
"Emit a call to trap function rather than a trap instruction"),
191 cl::desc(
"Assume the creation of a position independent executable."),
196 cl::desc(
"Use segmented stacks if possible."),
201 cl::desc(
"Use .init_array instead of .ctors."),
205 cl::desc(
"Stop compilation after a specific pass"),
209 cl::desc(
"Resume compilation after a specific pass"),
cl::opt< bool > EnableNoNaNsFPMath("enable-no-nans-fp-math", cl::desc("Enable FP math optimizations that assume no NaNs"), cl::init(false))
cl::opt< bool > EnableDwarfDirectory("enable-dwarf-directory", cl::Hidden, cl::desc("Use .file directives with an explicit directory."))
ValuesClass< DataType > END_WITH_NULL values(const char *Arg, DataType Val, const char *Desc,...)
cl::opt< bool > SegmentedStacks("segmented-stacks", cl::desc("Use segmented stacks if possible."), cl::init(false))
cl::opt< bool > EnableFPMAD("enable-fp-mad", cl::desc("Enable less precise MAD instructions to be generated"), cl::init(false))
cl::opt< bool > EnablePIE("enable-pie", cl::desc("Assume the creation of a position independent executable."), cl::init(false))
cl::opt< bool > GenerateSoftFloatCalls("soft-float", cl::desc("Generate software floating point library calls"), cl::init(false))
cl::opt< bool > DisableFPElim("disable-fp-elim", cl::desc("Disable frame pointer elimination optimization"), cl::init(false))
cl::opt< bool > DontPlaceZerosInBSS("nozero-initialized-in-bss", cl::desc("Don't place zero-initialized symbols into bss section"), cl::init(false))
initializer< Ty > init(const Ty &Val)
cl::opt< bool > UseInitArray("use-init-array", cl::desc("Use .init_array instead of .ctors."), cl::init(false))
cl::opt< Reloc::Model > RelocModel("relocation-model", cl::desc("Choose relocation model"), cl::init(Reloc::Default), cl::values(clEnumValN(Reloc::Default,"default","Target default relocation model"), clEnumValN(Reloc::Static,"static","Non-relocatable code"), clEnumValN(Reloc::PIC_,"pic","Fully relocatable, position independent code"), clEnumValN(Reloc::DynamicNoPIC,"dynamic-no-pic","Relocatable external references, non-relocatable code"), clEnumValEnd))
cl::list< std::string > MAttrs("mattr", cl::CommaSeparated, cl::desc("Target specific attributes (-mattr=help for details)"), cl::value_desc("a1,+a2,-a3,..."))
cl::opt< bool > EnableNoInfsFPMath("enable-no-infs-fp-math", cl::desc("Enable FP math optimizations that assume no +-Infs"), cl::init(false))
cl::opt< bool > DisableDotLoc("disable-dot-loc", cl::Hidden, cl::desc("Do not use .loc entries"))
cl::opt< llvm::CodeModel::Model > CMModel("code-model", cl::desc("Choose code model"), cl::init(CodeModel::Default), cl::values(clEnumValN(CodeModel::Default,"default","Target default code model"), clEnumValN(CodeModel::Small,"small","Small code model"), clEnumValN(CodeModel::Kernel,"kernel","Kernel code model"), clEnumValN(CodeModel::Medium,"medium","Medium code model"), clEnumValN(CodeModel::Large,"large","Large code model"), clEnumValEnd))
cl::opt< llvm::FloatABI::ABIType > FloatABIForCalls("float-abi", cl::desc("Choose float ABI type"), cl::init(FloatABI::Default), cl::values(clEnumValN(FloatABI::Default,"default","Target default float ABI type"), clEnumValN(FloatABI::Soft,"soft","Soft float ABI (implied by -soft-float)"), clEnumValN(FloatABI::Hard,"hard","Hard float ABI (uses FP registers)"), clEnumValEnd))
cl::opt< bool > DisableRedZone("disable-red-zone", cl::desc("Do not emit code that uses the red zone."), cl::init(false))
cl::opt< bool > EnableUnsafeFPMath("enable-unsafe-fp-math", cl::desc("Enable optimizations that may decrease FP precision"), cl::init(false))
cl::opt< std::string > MCPU("mcpu", cl::desc("Target a specific cpu type (-mcpu=help for details)"), cl::value_desc("cpu-name"), cl::init(""))
cl::opt< std::string > MArch("march", cl::desc("Architecture to generate code for (see --version)"))
cl::opt< bool > DisableTailCalls("disable-tail-calls", cl::desc("Never emit tail calls"), cl::init(false))
cl::opt< llvm::FPOpFusion::FPOpFusionMode > FuseFPOps("fp-contract", cl::desc("Enable aggressive formation of fused FP ops"), cl::init(FPOpFusion::Standard), cl::values(clEnumValN(FPOpFusion::Fast,"fast","Fuse FP ops whenever profitable"), clEnumValN(FPOpFusion::Standard,"on","Only fuse 'blessed' FP ops."), clEnumValN(FPOpFusion::Strict,"off","Only fuse FP ops when the result won't be effected."), clEnumValEnd))
cl::opt< unsigned > OverrideStackAlignment("stack-alignment", cl::desc("Override default stack alignment"), cl::init(0))
#define clEnumValN(ENUMVAL, FLAGNAME, DESC)
cl::opt< std::string > TrapFuncName("trap-func", cl::Hidden, cl::desc("Emit a call to trap function rather than a trap instruction"), cl::init(""))
cl::opt< std::string > StopAfter("stop-after", cl::desc("Stop compilation after a specific pass"), cl::value_desc("pass-name"), cl::init(""))
cl::opt< std::string > StartAfter("start-after", cl::desc("Resume compilation after a specific pass"), cl::value_desc("pass-name"), cl::init(""))
cl::opt< bool > DisableCFI("disable-cfi", cl::Hidden, cl::desc("Do not use .cfi_* directives"))
cl::opt< TargetMachine::CodeGenFileType > FileType("filetype", cl::init(TargetMachine::CGFT_AssemblyFile), cl::desc("Choose a file type (not all types are supported by all targets):"), cl::values(clEnumValN(TargetMachine::CGFT_AssemblyFile,"asm","Emit an assembly ('.s') file"), clEnumValN(TargetMachine::CGFT_ObjectFile,"obj","Emit a native object ('.o') file"), clEnumValN(TargetMachine::CGFT_Null,"null","Emit nothing, for performance testing"), clEnumValEnd))
cl::opt< bool > EnableHonorSignDependentRoundingFPMath("enable-sign-dependent-rounding-fp-math", cl::Hidden, cl::desc("Force codegen to assume rounding mode can change dynamically"), cl::init(false))
cl::opt< bool > RelaxAll("mc-relax-all", cl::desc("When used with filetype=obj, ""relax all fixups in the emitted object file"))
cl::opt< bool > EnableGuaranteedTailCallOpt("tailcallopt", cl::desc("Turn fastcc calls into tail calls by (potentially) changing ABI."), cl::init(false))