diff options
author | Evan Cheng <evan.cheng@apple.com> | 2008-01-03 02:56:28 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2008-01-03 02:56:28 +0000 |
commit | 02aabbf96b1f22144afe2bec8ad480a9b803f6b8 (patch) | |
tree | 19d8b626f18b9fcfcced2d0cc001a0c5a63ce035 /include/llvm/CodeGen/MachineRelocation.h | |
parent | 9848ced5d0eec8cbc44f9fbe5ce273189b0b9b2b (diff) |
Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be used
for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45527 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/MachineRelocation.h')
-rw-r--r-- | include/llvm/CodeGen/MachineRelocation.h | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/include/llvm/CodeGen/MachineRelocation.h b/include/llvm/CodeGen/MachineRelocation.h index fc853d1317..ab512703ff 100644 --- a/include/llvm/CodeGen/MachineRelocation.h +++ b/include/llvm/CodeGen/MachineRelocation.h @@ -64,7 +64,7 @@ class MachineRelocation { unsigned TargetReloType : 6; // The target relocation ID. AddressType AddrType : 4; // The field of Target to use. - bool DoesntNeedFnStub : 1; // True if we don't need a fn stub. + bool NeedStub : 1; // True if this relocation requires a stub. bool GOTRelative : 1; // Should this relocation be relative to the GOT? public: @@ -79,7 +79,7 @@ public: /// static MachineRelocation getGV(intptr_t offset, unsigned RelocationType, GlobalValue *GV, intptr_t cst = 0, - bool DoesntNeedFunctionStub = 0, + bool NeedStub = 0, bool GOTrelative = 0) { assert((RelocationType & ~63) == 0 && "Relocation type too large!"); MachineRelocation Result; @@ -87,7 +87,7 @@ public: Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isGV; - Result.DoesntNeedFnStub = DoesntNeedFunctionStub; + Result.NeedStub = NeedStub; Result.GOTRelative = GOTrelative; Result.Target.GV = GV; return Result; @@ -103,7 +103,7 @@ public: Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isBB; - Result.DoesntNeedFnStub = false; + Result.NeedStub = false; Result.GOTRelative = false; Result.Target.MBB = MBB; return Result; @@ -121,7 +121,7 @@ public: Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isExtSym; - Result.DoesntNeedFnStub = false; + Result.NeedStub = false; Result.GOTRelative = GOTrelative; Result.Target.ExtSym = ES; return Result; @@ -138,7 +138,7 @@ public: Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isConstPool; - Result.DoesntNeedFnStub = false; + Result.NeedStub = false; Result.GOTRelative = false; Result.Target.Index = CPI; return Result; @@ -155,7 +155,7 @@ public: Result.ConstantVal = cst; Result.TargetReloType = RelocationType; Result.AddrType = isJumpTable; - Result.DoesntNeedFnStub = false; + Result.NeedStub = false; Result.GOTRelative = false; Result.Target.Index = JTI; return Result; @@ -223,13 +223,12 @@ public: return GOTRelative; } - /// doesntNeedFunctionStub - This function returns true if the JIT for this - /// target is capable of directly handling the relocated instruction without - /// using a stub function. It is always conservatively correct for this flag - /// to be false, but targets can improve their compilation callback functions - /// to handle more general cases if they want improved performance. - bool doesntNeedFunctionStub() const { - return DoesntNeedFnStub; + /// doesntNeedStub - This function returns true if the JIT for this target + /// target is capable of directly handling the relocated GlobalValue reference + /// without using either a stub function or issuing an extra load to get the + /// GV address. + bool doesntNeedStub() const { + return !NeedStub; } /// getGlobalValue - If this is a global value reference, return the |