Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(45)

Delta Between Two Patch Sets: lib/Target/TargetMachine.cpp

Issue 91042: Implement LLVM JIT side of GDB JIT debugging interface (Closed) SVN Base: http://llvm.org/svn/llvm-project/llvm/trunk/
Left Patch Set: Created 5 months ago
Right Patch Set: Synced with TOT. Created 2 months, 2 weeks ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
1 //===-- TargetMachine.cpp - General Target Information ---------------------==// 1 //===-- TargetMachine.cpp - General Target Information ---------------------==//
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 describes the general parts of a Target machine. 10 // This file describes the general parts of a Target machine.
11 // 11 //
12 //===----------------------------------------------------------------------===// 12 //===----------------------------------------------------------------------===//
13 13
14 #include "llvm/Target/TargetAsmInfo.h" 14 #include "llvm/MC/MCAsmInfo.h"
15 #include "llvm/Target/TargetMachine.h" 15 #include "llvm/Target/TargetMachine.h"
16 #include "llvm/Target/TargetOptions.h" 16 #include "llvm/Target/TargetOptions.h"
17 #include "llvm/Support/CommandLine.h" 17 #include "llvm/Support/CommandLine.h"
18 using namespace llvm; 18 using namespace llvm;
19 19
20 //--------------------------------------------------------------------------- 20 //---------------------------------------------------------------------------
21 // Command-line options that tend to be useful on more than one back-end. 21 // Command-line options that tend to be useful on more than one back-end.
22 // 22 //
23 23
24 namespace llvm { 24 namespace llvm {
25 bool LessPreciseFPMADOption; 25 bool LessPreciseFPMADOption;
26 bool PrintMachineCode; 26 bool PrintMachineCode;
27 bool NoFramePointerElim; 27 bool NoFramePointerElim;
28 bool NoExcessFPPrecision; 28 bool NoExcessFPPrecision;
29 bool UnsafeFPMath; 29 bool UnsafeFPMath;
30 bool FiniteOnlyFPMathOption; 30 bool FiniteOnlyFPMathOption;
31 bool HonorSignDependentRoundingFPMathOption; 31 bool HonorSignDependentRoundingFPMathOption;
32 bool UseSoftFloat; 32 bool UseSoftFloat;
33 FloatABI::ABIType FloatABIType; 33 FloatABI::ABIType FloatABIType;
34 bool NoImplicitFloat; 34 bool NoImplicitFloat;
35 bool NoZerosInBSS; 35 bool NoZerosInBSS;
36 bool ExceptionHandling; 36 bool DwarfExceptionHandling;
37 bool JitEmitDebugInfo; 37 bool SjLjExceptionHandling;
38 bool JITEmitDebugInfo;
38 bool UnwindTablesMandatory; 39 bool UnwindTablesMandatory;
39 Reloc::Model RelocationModel; 40 Reloc::Model RelocationModel;
40 CodeModel::Model CMModel; 41 CodeModel::Model CMModel;
41 bool PerformTailCallOpt; 42 bool PerformTailCallOpt;
42 unsigned StackAlignment; 43 unsigned StackAlignment;
43 bool RealignStack; 44 bool RealignStack;
44 bool DisableJumpTables; 45 bool DisableJumpTables;
45 bool StrongPHIElim; 46 bool StrongPHIElim;
46 bool AsmVerbosityDefault(false); 47 bool AsmVerbosityDefault(false);
47 } 48 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 "Soft float ABI (implied by -soft-float)"), 99 "Soft float ABI (implied by -soft-float)"),
99 clEnumValN(FloatABI::Hard, "hard", 100 clEnumValN(FloatABI::Hard, "hard",
100 "Hard float ABI (uses FP registers)"), 101 "Hard float ABI (uses FP registers)"),
101 clEnumValEnd)); 102 clEnumValEnd));
102 static cl::opt<bool, true> 103 static cl::opt<bool, true>
103 DontPlaceZerosInBSS("nozero-initialized-in-bss", 104 DontPlaceZerosInBSS("nozero-initialized-in-bss",
104 cl::desc("Don't place zero-initialized symbols into bss section"), 105 cl::desc("Don't place zero-initialized symbols into bss section"),
105 cl::location(NoZerosInBSS), 106 cl::location(NoZerosInBSS),
106 cl::init(false)); 107 cl::init(false));
107 static cl::opt<bool, true> 108 static cl::opt<bool, true>
108 EnableExceptionHandling("enable-eh", 109 EnableDwarfExceptionHandling("enable-eh",
109 cl::desc("Emit DWARF exception handling (default if target supports)"), 110 cl::desc("Emit DWARF exception handling (default if target supports)"),
110 cl::location(ExceptionHandling), 111 cl::location(DwarfExceptionHandling),
111 cl::init(false)); 112 cl::init(false));
113 static cl::opt<bool, true>
114 EnableSjLjExceptionHandling("enable-sjlj-eh",
115 cl::desc("Emit SJLJ exception handling (default if target supports)"),
116 cl::location(SjLjExceptionHandling),
117 cl::init(false));
118 // In debug builds, make this default to true.
119 #ifdef NDEBUG
120 #define EMIT_DEBUG false
121 #else
122 #define EMIT_DEBUG true
123 #endif
112 static cl::opt<bool, true> 124 static cl::opt<bool, true>
113 EmitJitDebugInfo("jit-emit-debug", 125 EmitJitDebugInfo("jit-emit-debug",
114 cl::desc("Emit debug information to debugger"), 126 cl::desc("Emit debug information to debugger"),
115 cl::location(JitEmitDebugInfo), 127 cl::location(JITEmitDebugInfo),
116 cl::init(false)); 128 cl::init(EMIT_DEBUG));
129 #undef EMIT_DEBUG
117 static cl::opt<bool, true> 130 static cl::opt<bool, true>
118 EnableUnwindTables("unwind-tables", 131 EnableUnwindTables("unwind-tables",
119 cl::desc("Generate unwinding tables for all functions"), 132 cl::desc("Generate unwinding tables for all functions"),
120 cl::location(UnwindTablesMandatory), 133 cl::location(UnwindTablesMandatory),
121 cl::init(false)); 134 cl::init(false));
122 135
123 static cl::opt<llvm::Reloc::Model, true> 136 static cl::opt<llvm::Reloc::Model, true>
124 DefRelocationModel("relocation-model", 137 DefRelocationModel("relocation-model",
125 cl::desc("Choose relocation model"), 138 cl::desc("Choose relocation model"),
126 cl::location(RelocationModel), 139 cl::location(RelocationModel),
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 static cl::opt<bool, true> 188 static cl::opt<bool, true>
176 EnableStrongPHIElim(cl::Hidden, "strong-phi-elim", 189 EnableStrongPHIElim(cl::Hidden, "strong-phi-elim",
177 cl::desc("Use strong PHI elimination."), 190 cl::desc("Use strong PHI elimination."),
178 cl::location(StrongPHIElim), 191 cl::location(StrongPHIElim),
179 cl::init(false)); 192 cl::init(false));
180 193
181 //--------------------------------------------------------------------------- 194 //---------------------------------------------------------------------------
182 // TargetMachine Class 195 // TargetMachine Class
183 // 196 //
184 197
185 TargetMachine::TargetMachine() 198 TargetMachine::TargetMachine(const Target &T)
186 : AsmInfo(0) { 199 : TheTarget(T), AsmInfo(0) {
187 // Typically it will be subtargets that will adjust FloatABIType from Default 200 // Typically it will be subtargets that will adjust FloatABIType from Default
188 // to Soft or Hard. 201 // to Soft or Hard.
189 if (UseSoftFloat) 202 if (UseSoftFloat)
190 FloatABIType = FloatABI::Soft; 203 FloatABIType = FloatABI::Soft;
191 } 204 }
192 205
193 TargetMachine::~TargetMachine() { 206 TargetMachine::~TargetMachine() {
194 delete AsmInfo; 207 delete AsmInfo;
195 } 208 }
196 209
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 /// the code generator is not allowed to assume that FP arithmetic arguments 249 /// the code generator is not allowed to assume that FP arithmetic arguments
237 /// and results are never NaNs or +-Infs. 250 /// and results are never NaNs or +-Infs.
238 bool FiniteOnlyFPMath() { return UnsafeFPMath || FiniteOnlyFPMathOption; } 251 bool FiniteOnlyFPMath() { return UnsafeFPMath || FiniteOnlyFPMathOption; }
239 252
240 /// HonorSignDependentRoundingFPMath - Return true if the codegen must assume 253 /// HonorSignDependentRoundingFPMath - Return true if the codegen must assume
241 /// that the rounding mode of the FPU can change from its default. 254 /// that the rounding mode of the FPU can change from its default.
242 bool HonorSignDependentRoundingFPMath() { 255 bool HonorSignDependentRoundingFPMath() {
243 return !UnsafeFPMath && HonorSignDependentRoundingFPMathOption; 256 return !UnsafeFPMath && HonorSignDependentRoundingFPMathOption;
244 } 257 }
245 } 258 }
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld r497