ARMTargetMachine.cpp (195098) | ARMTargetMachine.cpp (195340) |
---|---|
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) | 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), | 98 : ARMBaseTargetMachine(M, FS, true), |
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) { | 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 // Create the approriate type of Thumb InstrInfo 106 if (Subtarget.hasThumb2()) 107 InstrInfo = new Thumb2InstrInfo(Subtarget); 108 else 109 InstrInfo = new Thumb1InstrInfo(Subtarget); |
|
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) | 110} 111 112unsigned ARMTargetMachine::getJITMatchQuality() { 113#if defined(__arm__) 114 return 10; 115#endif 116 return 0; 117} --- 61 unchanged lines hidden (view full) --- 179 180bool ARMBaseTargetMachine::addAssemblyEmitter(PassManagerBase &PM, 181 CodeGenOpt::Level OptLevel, 182 bool Verbose, 183 raw_ostream &Out) { 184 // Output assembly language. 185 assert(AsmPrinterCtor && "AsmPrinter was not linked in"); 186 if (AsmPrinterCtor) |
182 PM.add(AsmPrinterCtor(Out, *this, OptLevel, Verbose)); | 187 PM.add(AsmPrinterCtor(Out, *this, 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) | 188 189 return false; 190} 191 192 193bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM, 194 CodeGenOpt::Level OptLevel, 195 bool DumpAsm, 196 MachineCodeEmitter &MCE) { 197 // FIXME: Move this to TargetJITInfo! 198 if (DefRelocModel == Reloc::Default) 199 setRelocationModel(Reloc::Static); 200 201 // Machine code emitter pass for ARM. 202 PM.add(createARMCodeEmitterPass(*this, MCE)); 203 if (DumpAsm) { 204 assert(AsmPrinterCtor && "AsmPrinter was not linked in"); 205 if (AsmPrinterCtor) |
201 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true)); | 206 PM.add(AsmPrinterCtor(errs(), *this, 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) | 207 } 208 209 return false; 210} 211 212bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM, 213 CodeGenOpt::Level OptLevel, 214 bool DumpAsm, 215 JITCodeEmitter &JCE) { 216 // FIXME: Move this to TargetJITInfo! 217 if (DefRelocModel == Reloc::Default) 218 setRelocationModel(Reloc::Static); 219 220 // Machine code emitter pass for ARM. 221 PM.add(createARMJITCodeEmitterPass(*this, JCE)); 222 if (DumpAsm) { 223 assert(AsmPrinterCtor && "AsmPrinter was not linked in"); 224 if (AsmPrinterCtor) |
220 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true)); | 225 PM.add(AsmPrinterCtor(errs(), *this, 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) | 226 } 227 228 return false; 229} 230 231bool ARMBaseTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, 232 CodeGenOpt::Level OptLevel, 233 bool DumpAsm, 234 MachineCodeEmitter &MCE) { 235 // Machine code emitter pass for ARM. 236 PM.add(createARMCodeEmitterPass(*this, MCE)); 237 if (DumpAsm) { 238 assert(AsmPrinterCtor && "AsmPrinter was not linked in"); 239 if (AsmPrinterCtor) |
235 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true)); | 240 PM.add(AsmPrinterCtor(errs(), *this, 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) | 241 } 242 243 return false; 244} 245 246bool ARMBaseTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, 247 CodeGenOpt::Level OptLevel, 248 bool DumpAsm, 249 JITCodeEmitter &JCE) { 250 // Machine code emitter pass for ARM. 251 PM.add(createARMJITCodeEmitterPass(*this, JCE)); 252 if (DumpAsm) { 253 assert(AsmPrinterCtor && "AsmPrinter was not linked in"); 254 if (AsmPrinterCtor) |
250 PM.add(AsmPrinterCtor(errs(), *this, OptLevel, true)); | 255 PM.add(AsmPrinterCtor(errs(), *this, true)); |
251 } 252 253 return false; 254} 255 256 | 256 } 257 258 return false; 259} 260 261 |