[llvm-commits] [llvm] r58433 - in /llvm/trunk/lib/Target/ARM: ARMTargetMachine.cpp ARMTargetMachine.h

Evan Cheng evan.cheng at apple.com
Thu Oct 30 09:10:54 PDT 2008


Author: evancheng
Date: Thu Oct 30 11:10:54 2008
New Revision: 58433

URL: http://llvm.org/viewvc/llvm-project?rev=58433&view=rev
Log:
ARM JIT should observe -relocation-model command line option.

Modified:
    llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
    llvm/trunk/lib/Target/ARM/ARMTargetMachine.h

Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp?rev=58433&r1=58432&r2=58433&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp Thu Oct 30 11:10:54 2008
@@ -85,7 +85,9 @@
     InstrInfo(Subtarget),
     FrameInfo(Subtarget),
     JITInfo(*this),
-    TLInfo(*this) {}
+    TLInfo(*this) {
+  DefRelocModel = getRelocationModel();
+}
 
 unsigned ARMTargetMachine::getJITMatchQuality() {
 #if defined(__arm__)
@@ -157,7 +159,8 @@
 bool ARMTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast,
                                       bool DumpAsm, MachineCodeEmitter &MCE) {
   // FIXME: Move this to TargetJITInfo!
-  setRelocationModel(Reloc::Static);
+  if (DefRelocModel == Reloc::Default)
+    setRelocationModel(Reloc::Static);
 
   // Machine code emitter pass for ARM.
   PM.add(createARMCodeEmitterPass(*this, MCE));

Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.h?rev=58433&r1=58432&r2=58433&view=diff

==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMTargetMachine.h (original)
+++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.h Thu Oct 30 11:10:54 2008
@@ -34,6 +34,7 @@
   ARMFrameInfo      FrameInfo;
   ARMJITInfo        JITInfo;
   ARMTargetLowering TLInfo;
+  Reloc::Model      DefRelocModel;    // Reloc model before it's overridden.
 
 protected:
   // To avoid having target depend on the asmprinter stuff libraries, asmprinter





More information about the llvm-commits mailing list