LEFT | RIGHT |
1 //===--- CodeGenOptions.h ---------------------------------------*- C++ -*-===// | 1 //===--- CodeGenOptions.h ---------------------------------------*- C++ -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file defines the CodeGenOptions interface. | 10 // This file defines the CodeGenOptions interface. |
(...skipping 26 matching lines...) Expand all Loading... |
37 | 37 |
38 enum DebugInfoKind { | 38 enum DebugInfoKind { |
39 NoDebugInfo, // Don't generate debug info. | 39 NoDebugInfo, // Don't generate debug info. |
40 DebugLineTablesOnly, // Emit only debug info necessary for generating | 40 DebugLineTablesOnly, // Emit only debug info necessary for generating |
41 // line number tables (-gline-tables-only). | 41 // line number tables (-gline-tables-only). |
42 LimitedDebugInfo, // Limit generated debug info to reduce size | 42 LimitedDebugInfo, // Limit generated debug info to reduce size |
43 // (-flimit-debug-info). | 43 // (-flimit-debug-info). |
44 FullDebugInfo // Generate complete debug info. | 44 FullDebugInfo // Generate complete debug info. |
45 }; | 45 }; |
46 | 46 |
47 unsigned AsmVerbose : 1; /// -dA, -fverbose-asm. | 47 unsigned AsmVerbose : 1; ///< -dA, -fverbose-asm. |
48 unsigned ObjCAutoRefCountExceptions : 1; /// Whether ARC should be EH-safe. | 48 unsigned ObjCAutoRefCountExceptions : 1; ///< Whether ARC should be EH-safe. |
49 unsigned CUDAIsDevice : 1; /// Set when compiling for CUDA device. | 49 unsigned CUDAIsDevice : 1; ///< Set when compiling for CUDA device. |
50 unsigned CXAAtExit : 1; /// Use __cxa_atexit for calling destructors. | 50 unsigned CXAAtExit : 1; ///< Use __cxa_atexit for calling destructors. |
51 unsigned CXXCtorDtorAliases: 1; /// Emit complete ctors/dtors as linker | 51 unsigned CXXCtorDtorAliases: 1; ///< Emit complete ctors/dtors as linker |
52 /// aliases to base ctors when possible. | 52 ///< aliases to base ctors when possible. |
53 unsigned DataSections : 1; /// Set when -fdata-sections is enabled | 53 unsigned DataSections : 1; ///< Set when -fdata-sections is enabled |
54 unsigned DisableFPElim : 1; /// Set when -fomit-frame-pointer is enabled. | 54 unsigned DisableFPElim : 1; ///< Set when -fomit-frame-pointer is enabled. |
55 unsigned DisableLLVMOpts : 1; /// Don't run any optimizations, for use in | 55 unsigned DisableLLVMOpts : 1; ///< Don't run any optimizations, for use in |
56 /// getting .bc files that correspond to the | 56 ///< getting .bc files that correspond to the |
57 /// internal state before optimizations are | 57 ///< internal state before optimizations are |
58 /// done. | 58 ///< done. |
59 unsigned DisableRedZone : 1; /// Set when -mno-red-zone is enabled. | 59 unsigned DisableRedZone : 1; ///< Set when -mno-red-zone is enabled. |
60 unsigned DisableTailCalls : 1; /// Do not emit tail calls. | 60 unsigned DisableTailCalls : 1; ///< Do not emit tail calls. |
61 unsigned EmitDeclMetadata : 1; /// Emit special metadata indicating what | 61 unsigned EmitDeclMetadata : 1; ///< Emit special metadata indicating what |
62 /// Decl* various IR entities came from. Only | 62 ///< Decl* various IR entities came from. Only |
63 /// useful when running CodeGen as a | 63 ///< useful when running CodeGen as a |
64 /// subroutine. | 64 ///< subroutine. |
65 unsigned EmitGcovArcs : 1; /// Emit coverage data files, aka. GCDA. | 65 unsigned EmitGcovArcs : 1; ///< Emit coverage data files, aka. GCDA. |
66 unsigned EmitGcovNotes : 1; /// Emit coverage "notes" files, aka GCNO. | 66 unsigned EmitGcovNotes : 1; ///< Emit coverage "notes" files, aka GCNO. |
67 unsigned ForbidGuardVariables : 1; /// Issue errors if C++ guard variables | 67 unsigned ForbidGuardVariables : 1; ///< Issue errors if C++ guard variables |
68 /// are required | 68 ///< are required |
69 unsigned FunctionSections : 1; /// Set when -ffunction-sections is enabled | 69 unsigned FunctionSections : 1; ///< Set when -ffunction-sections is enabled |
70 unsigned HiddenWeakTemplateVTables : 1; /// Emit weak vtables and RTTI for | 70 unsigned HiddenWeakTemplateVTables : 1; ///< Emit weak vtables and RTTI for |
71 /// template classes with hidden visibility | 71 ///< template classes with hidden visibility |
72 unsigned HiddenWeakVTables : 1; /// Emit weak vtables, RTTI, and thunks with | 72 unsigned HiddenWeakVTables : 1; ///< Emit weak vtables, RTTI, and thunks with |
73 /// hidden visibility. | 73 ///< hidden visibility. |
74 unsigned InstrumentFunctions : 1; /// Set when -finstrument-functions is | 74 unsigned InstrumentFunctions : 1; ///< Set when -finstrument-functions is |
75 /// enabled. | 75 ///< enabled. |
76 unsigned InstrumentForProfiling : 1; /// Set when -pg is enabled | 76 unsigned InstrumentForProfiling : 1; ///< Set when -pg is enabled |
77 unsigned LessPreciseFPMAD : 1; /// Enable less precise MAD instructions to be | 77 unsigned LessPreciseFPMAD : 1; ///< Enable less precise MAD instructions to |
78 /// generated. | 78 ///< be generated. |
79 unsigned MergeAllConstants : 1; /// Merge identical constants. | 79 unsigned MergeAllConstants : 1; ///< Merge identical constants. |
80 unsigned NoCommon : 1; /// Set when -fno-common or C++ is enabled. | 80 unsigned NoCommon : 1; ///< Set when -fno-common or C++ is enabled. |
81 unsigned NoDwarf2CFIAsm : 1; /// Set when -fno-dwarf2-cfi-asm is enabled. | 81 unsigned NoDwarf2CFIAsm : 1; ///< Set when -fno-dwarf2-cfi-asm is enabled. |
82 unsigned NoDwarfDirectoryAsm : 1; /// Set when -fno-dwarf-directory-asm is | 82 unsigned NoDwarfDirectoryAsm : 1; ///< Set when -fno-dwarf-directory-asm is |
83 /// enabled. | 83 ///< enabled. |
84 unsigned NoExecStack : 1; /// Set when -Wa,--noexecstack is enabled. | 84 unsigned NoExecStack : 1; ///< Set when -Wa,--noexecstack is enabled. |
85 unsigned NoGlobalMerge : 1; /// Set when -mno-global-merge is enabled. | 85 unsigned NoGlobalMerge : 1; ///< Set when -mno-global-merge is enabled. |
86 unsigned NoImplicitFloat : 1; /// Set when -mno-implicit-float is enabled. | 86 unsigned NoImplicitFloat : 1; ///< Set when -mno-implicit-float is enabled. |
87 unsigned NoInfsFPMath : 1; /// Assume FP arguments, results not +-Inf. | 87 unsigned NoInfsFPMath : 1; ///< Assume FP arguments, results not +-Inf. |
88 unsigned NoInline : 1; /// Set when -fno-inline is enabled. Disables | 88 unsigned NoInline : 1; ///< Set when -fno-inline is enabled. Disables |
89 /// use of the inline keyword. | 89 ///< use of the inline keyword. |
90 unsigned NoNaNsFPMath : 1; /// Assume FP arguments, results not NaN. | 90 unsigned NoNaNsFPMath : 1; ///< Assume FP arguments, results not NaN. |
91 unsigned NoZeroInitializedInBSS : 1; /// -fno-zero-initialized-in-bss | 91 unsigned NoZeroInitializedInBSS : 1; ///< -fno-zero-initialized-in-bss |
92 unsigned ObjCDispatchMethod : 2; /// Method of Objective-C dispatch to use. | 92 unsigned ObjCDispatchMethod : 2; ///< Method of Objective-C dispatch to use. |
93 unsigned ObjCRuntimeHasARC : 1; /// The target runtime supports ARC natively | 93 unsigned ObjCRuntimeHasARC : 1; ///< The target runtime supports ARC natively |
94 unsigned ObjCRuntimeHasTerminate : 1; /// The ObjC runtime has objc_terminate | 94 unsigned ObjCRuntimeHasTerminate : 1; ///< The ObjC runtime has objc_terminate |
95 unsigned OmitLeafFramePointer : 1; /// Set when -momit-leaf-frame-pointer is | 95 unsigned OmitLeafFramePointer : 1; ///< Set when -momit-leaf-frame-pointer is |
96 /// enabled. | 96 ///< enabled. |
97 unsigned OptimizationLevel : 3; /// The -O[0-4] option specified. | 97 unsigned OptimizationLevel : 3; ///< The -O[0-4] option specified. |
98 unsigned OptimizeSize : 2; /// If -Os (==1) or -Oz (==2) is specified. | 98 unsigned OptimizeSize : 2; ///< If -Os (==1) or -Oz (==2) is specified. |
99 unsigned RelaxAll : 1; /// Relax all machine code instructions. | 99 unsigned RelaxAll : 1; ///< Relax all machine code instructions. |
100 unsigned RelaxedAliasing : 1; /// Set when -fno-strict-aliasing is enabled. | 100 unsigned RelaxedAliasing : 1; ///< Set when -fno-strict-aliasing is enabled. |
101 unsigned SaveTempLabels : 1; /// Save temporary labels. | 101 unsigned SaveTempLabels : 1; ///< Save temporary labels. |
102 unsigned SimplifyLibCalls : 1; /// Set when -fbuiltin is enabled. | 102 unsigned SimplifyLibCalls : 1; ///< Set when -fbuiltin is enabled. |
103 unsigned SoftFloat : 1; /// -soft-float. | 103 unsigned SoftFloat : 1; ///< -soft-float. |
104 unsigned StrictEnums : 1; /// Optimize based on strict enum definition. | 104 unsigned StrictEnums : 1; ///< Optimize based on strict enum definition. |
105 unsigned TimePasses : 1; /// Set when -ftime-report is enabled. | 105 unsigned TimePasses : 1; ///< Set when -ftime-report is enabled. |
106 unsigned UnitAtATime : 1; /// Unused. For mirroring GCC optimization | 106 unsigned UnitAtATime : 1; ///< Unused. For mirroring GCC optimization |
107 /// selection. | 107 /// selection. |
108 unsigned UnrollLoops : 1; /// Control whether loops are unrolled. | 108 unsigned UnrollLoops : 1; ///< Control whether loops are unrolled. |
109 unsigned UnsafeFPMath : 1; /// Allow unsafe floating point optzns. | 109 unsigned UnsafeFPMath : 1; ///< Allow unsafe floating point optzns. |
110 unsigned UnwindTables : 1; /// Emit unwind tables. | 110 unsigned UnwindTables : 1; ///< Emit unwind tables. |
111 | 111 |
112 /// Attempt to use register sized accesses to bit-fields in structures, when | 112 /// Attempt to use register sized accesses to bit-fields in structures, when |
113 /// possible. | 113 /// possible. |
114 unsigned UseRegisterSizedBitfieldAccess : 1; | 114 unsigned UseRegisterSizedBitfieldAccess : 1; |
115 | 115 |
116 unsigned VerifyModule : 1; /// Control whether the module should be run | 116 unsigned VerifyModule : 1; ///< Control whether the module should be run |
117 /// through the LLVM Verifier. | 117 ///< through the LLVM Verifier. |
118 | 118 |
119 unsigned StackRealignment : 1; /// Control whether to permit stack | 119 unsigned StackRealignment : 1; ///< Control whether to permit stack |
120 /// realignment. | 120 ///< realignment. |
121 unsigned StackAlignment; /// Overrides default stack alignment, | 121 unsigned StackAlignment; ///< Overrides default stack alignment, |
122 /// if not 0. | 122 ///< if not 0. |
123 | 123 |
124 /// The code model to use (-mcmodel). | 124 /// The code model to use (-mcmodel). |
125 std::string CodeModel; | 125 std::string CodeModel; |
126 | 126 |
127 /// The filename with path we use for coverage files. The extension will be | 127 /// The filename with path we use for coverage files. The extension will be |
128 /// replaced. | 128 /// replaced. |
129 std::string CoverageFile; | 129 std::string CoverageFile; |
130 | 130 |
131 /// Enable additional debugging information. | 131 /// Enable additional debugging information. |
132 std::string DebugPass; | 132 std::string DebugPass; |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 } | 231 } |
232 | 232 |
233 ObjCDispatchMethodKind getObjCDispatchMethod() const { | 233 ObjCDispatchMethodKind getObjCDispatchMethod() const { |
234 return ObjCDispatchMethodKind(ObjCDispatchMethod); | 234 return ObjCDispatchMethodKind(ObjCDispatchMethod); |
235 } | 235 } |
236 }; | 236 }; |
237 | 237 |
238 } // end namespace clang | 238 } // end namespace clang |
239 | 239 |
240 #endif | 240 #endif |
LEFT | RIGHT |