Deleted Added
sdiff udiff text old ( 195098 ) new ( 195340 )
full compact
1//===-- ARMTargetMachine.cpp - Define TargetMachine for ARM ---------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//

--- 81 unchanged lines hidden (view full) ---

90 : ARMBaseTargetMachine(M, FS, false), InstrInfo(Subtarget),
91 DataLayout(Subtarget.isAPCS_ABI() ?
92 std::string("e-p:32:32-f64:32:32-i64:32:32") :
93 std::string("e-p:32:32-f64:64:64-i64:64:64")),
94 TLInfo(*this) {
95}
96
97ThumbTargetMachine::ThumbTargetMachine(const Module &M, const std::string &FS)
98 : ARMBaseTargetMachine(M, FS, true), InstrInfo(Subtarget),
99 DataLayout(Subtarget.isAPCS_ABI() ?
100 std::string("e-p:32:32-f64:32:32-i64:32:32-"
101 "i16:16:32-i8:8:32-i1:8:32-a:0:32") :
102 std::string("e-p:32:32-f64:64:64-i64:64:64-"
103 "i16:16:32-i8:8:32-i1:8:32-a:0:32")),
104 TLInfo(*this) {
105}
106
107unsigned ARMTargetMachine::getJITMatchQuality() {
108#if defined(__arm__)
109 return 10;
110#endif
111 return 0;
112}

--- 61 unchanged lines hidden (view full) ---

174
175bool ARMBaseTargetMachine::addAssemblyEmitter(PassManagerBase &PM,
176 CodeGenOpt::Level OptLevel,
177 bool Verbose,
178 raw_ostream &Out) {
179 // Output assembly language.
180 assert(AsmPrinterCtor && "AsmPrinter was not linked in");
181 if (AsmPrinterCtor)
182 PM.add(AsmPrinterCtor(Out, *this, OptLevel, Verbose));
183
184 return false;
185}
186
187
188bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM,
189 CodeGenOpt::Level OptLevel,
190 bool DumpAsm,
191 MachineCodeEmitter &MCE) {
192 // FIXME: Move this to TargetJITInfo!
193 if (DefRelocModel == Reloc::Default)
194 setRelocationModel(Reloc::Static);
195
196 // Machine code emitter pass for ARM.
197 PM.add(createARMCodeEmitterPass(*this, MCE));
198 if (DumpAsm) {
199 assert(AsmPrinterCtor && "AsmPrinter was not linked in");
200 if (AsmPrinterCtor)
201 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true));
202 }
203
204 return false;
205}
206
207bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM,
208 CodeGenOpt::Level OptLevel,
209 bool DumpAsm,
210 JITCodeEmitter &JCE) {
211 // FIXME: Move this to TargetJITInfo!
212 if (DefRelocModel == Reloc::Default)
213 setRelocationModel(Reloc::Static);
214
215 // Machine code emitter pass for ARM.
216 PM.add(createARMJITCodeEmitterPass(*this, JCE));
217 if (DumpAsm) {
218 assert(AsmPrinterCtor && "AsmPrinter was not linked in");
219 if (AsmPrinterCtor)
220 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true));
221 }
222
223 return false;
224}
225
226bool ARMBaseTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM,
227 CodeGenOpt::Level OptLevel,
228 bool DumpAsm,
229 MachineCodeEmitter &MCE) {
230 // Machine code emitter pass for ARM.
231 PM.add(createARMCodeEmitterPass(*this, MCE));
232 if (DumpAsm) {
233 assert(AsmPrinterCtor && "AsmPrinter was not linked in");
234 if (AsmPrinterCtor)
235 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true));
236 }
237
238 return false;
239}
240
241bool ARMBaseTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM,
242 CodeGenOpt::Level OptLevel,
243 bool DumpAsm,
244 JITCodeEmitter &JCE) {
245 // Machine code emitter pass for ARM.
246 PM.add(createARMJITCodeEmitterPass(*this, JCE));
247 if (DumpAsm) {
248 assert(AsmPrinterCtor && "AsmPrinter was not linked in");
249 if (AsmPrinterCtor)
250 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true));
251 }
252
253 return false;
254}
255
256