| OLD | NEW |
| 1 //===-- ARMTargetMachine.cpp - Define TargetMachine for ARM ---------------===// | 1 //===-- ARMTargetMachine.cpp - Define TargetMachine for ARM ---------------===// |
| 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 // | 10 // |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 | 134 |
| 135 const ARMSubtarget &getARMSubtarget() const { | 135 const ARMSubtarget &getARMSubtarget() const { |
| 136 return *getARMTargetMachine().getSubtargetImpl(); | 136 return *getARMTargetMachine().getSubtargetImpl(); |
| 137 } | 137 } |
| 138 | 138 |
| 139 virtual bool addPreISel(); | 139 virtual bool addPreISel(); |
| 140 virtual bool addInstSelector(); | 140 virtual bool addInstSelector(); |
| 141 virtual bool addPreRegAlloc(); | 141 virtual bool addPreRegAlloc(); |
| 142 virtual bool addPreSched2(); | 142 virtual bool addPreSched2(); |
| 143 virtual bool addPreEmitPass(); | 143 virtual bool addPreEmitPass(); |
| 144 // @LOCALMOD-START |
| 145 virtual void addIRPasses(); |
| 146 // @LOCALMOD-END |
| 144 }; | 147 }; |
| 145 } // namespace | 148 } // namespace |
| 146 | 149 |
| 147 TargetPassConfig *ARMBaseTargetMachine::createPassConfig(PassManagerBase &PM) { | 150 TargetPassConfig *ARMBaseTargetMachine::createPassConfig(PassManagerBase &PM) { |
| 148 return new ARMPassConfig(this, PM); | 151 return new ARMPassConfig(this, PM); |
| 149 } | 152 } |
| 150 | 153 |
| 151 bool ARMPassConfig::addPreISel() { | 154 bool ARMPassConfig::addPreISel() { |
| 152 if (TM->getOptLevel() != CodeGenOpt::None && EnableGlobalMerge) | 155 if (TM->getOptLevel() != CodeGenOpt::None && EnableGlobalMerge) |
| 153 addPass(createGlobalMergePass(TM->getTargetLowering())); | 156 addPass(createGlobalMergePass(TM->getTargetLowering())); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 // @LOCALMOD-START | 225 // @LOCALMOD-START |
| 223 // This pass does all the heavy sfi lifting. | 226 // This pass does all the heavy sfi lifting. |
| 224 if (getARMSubtarget().isTargetNaCl()) { | 227 if (getARMSubtarget().isTargetNaCl()) { |
| 225 addPass(createARMNaClRewritePass()); | 228 addPass(createARMNaClRewritePass()); |
| 226 } | 229 } |
| 227 // @LOCALMOD-END | 230 // @LOCALMOD-END |
| 228 | 231 |
| 229 return true; | 232 return true; |
| 230 } | 233 } |
| 231 | 234 |
| 235 // @LOCALMOD-START |
| 236 void ARMPassConfig::addIRPasses() { |
| 237 if (getARMSubtarget().isTargetNaCl()) { |
| 238 addPass(createARMNaClDivideCheckPass()); |
| 239 } |
| 240 TargetPassConfig::addIRPasses(); |
| 241 } |
| 242 // @LOCALMOD-END |
| 243 |
| 232 bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM, | 244 bool ARMBaseTargetMachine::addCodeEmitter(PassManagerBase &PM, |
| 233 JITCodeEmitter &JCE) { | 245 JITCodeEmitter &JCE) { |
| 234 // Machine code emitter pass for ARM. | 246 // Machine code emitter pass for ARM. |
| 235 PM.add(createARMJITCodeEmitterPass(*this, JCE)); | 247 PM.add(createARMJITCodeEmitterPass(*this, JCE)); |
| 236 return false; | 248 return false; |
| 237 } | 249 } |
| OLD | NEW |