summaryrefslogtreecommitdiffstats
path: root/include/clang/CodeGen/CodeGenOptions.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/CodeGen/CodeGenOptions.h')
-rw-r--r--include/clang/CodeGen/CodeGenOptions.h52
1 files changed, 41 insertions, 11 deletions
diff --git a/include/clang/CodeGen/CodeGenOptions.h b/include/clang/CodeGen/CodeGenOptions.h
index 02679cd..c8fb37b 100644
--- a/include/clang/CodeGen/CodeGenOptions.h
+++ b/include/clang/CodeGen/CodeGenOptions.h
@@ -29,7 +29,9 @@ public:
OnlyAlwaysInlining // Only run the always inlining pass.
};
+ unsigned AsmVerbose : 1; /// -dA, -fverbose-asm.
unsigned DebugInfo : 1; /// Should generate deubg info (-g).
+ unsigned DisableFPElim : 1; /// Set when -fomit-frame-pointer is enabled.
unsigned DisableLLVMOpts : 1; /// Don't run any optimizations, for use in
/// getting .bc files that correspond to the
/// internal state before optimizations are
@@ -38,35 +40,63 @@ public:
unsigned MergeAllConstants : 1; /// Merge identical constants.
unsigned NoCommon : 1; /// Set when -fno-common or C++ is enabled.
unsigned NoImplicitFloat : 1; /// Set when -mno-implicit-float is enabled.
+ unsigned NoZeroInitializedInBSS : 1; /// -fno-zero-initialized-in-bss
unsigned OptimizationLevel : 3; /// The -O[0-4] option specified.
unsigned OptimizeSize : 1; /// If -Os is specified.
- unsigned SimplifyLibCalls : 1; /// Should standard library calls be treated
- /// specially.
+ unsigned SoftFloat : 1; /// -soft-float.
unsigned TimePasses : 1; /// Set when -ftime-report is enabled.
unsigned UnitAtATime : 1; /// Unused. For mirroring GCC optimization
/// selection.
unsigned UnrollLoops : 1; /// Control whether loops are unrolled.
+ unsigned UnwindTables : 1; /// Emit unwind tables.
unsigned VerifyModule : 1; /// Control whether the module should be run
/// through the LLVM Verifier.
- /// Inlining - The kind of inlining to perform.
+ /// The code model to use (-mcmodel).
+ std::string CodeModel;
+
+ /// Enable additional debugging information.
+ std::string DebugPass;
+
+ /// The ABI to use for passing floating point arguments.
+ std::string FloatABI;
+
+ /// The float precision limit to use, if non-empty.
+ std::string LimitFloatPrecision;
+
+ /// The kind of inlining to perform.
InliningMethod Inlining;
+ /// The user provided name for the "main file", if non-empty. This is useful
+ /// in situations where the input file name does not match the original input
+ /// file, for example with -save-temps.
+ std::string MainFileName;
+
+ /// The name of the relocation model to use.
+ std::string RelocationModel;
+
public:
CodeGenOptions() {
+ AsmVerbose = 0;
+ DebugInfo = 0;
+ DisableFPElim = 0;
+ DisableLLVMOpts = 0;
+ DisableRedZone = 0;
+ MergeAllConstants = 1;
+ NoCommon = 0;
+ NoImplicitFloat = 0;
+ NoZeroInitializedInBSS = 0;
OptimizationLevel = 0;
OptimizeSize = 0;
- DebugInfo = 0;
+ UnrollLoops = 0;
+ SoftFloat = 0;
+ TimePasses = 0;
UnitAtATime = 1;
- SimplifyLibCalls = UnrollLoops = 0;
+ UnwindTables = 0;
VerifyModule = 1;
- TimePasses = 0;
- NoCommon = 0;
+
Inlining = NoInlining;
- DisableRedZone = 0;
- NoImplicitFloat = 0;
- MergeAllConstants = 1;
- DisableLLVMOpts = 0;
+ RelocationModel = "pic";
}
};
OpenPOWER on IntegriCloud