summaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen/MachineRelocation.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2008-01-03 02:56:28 +0000
committerEvan Cheng <evan.cheng@apple.com>2008-01-03 02:56:28 +0000
commit02aabbf96b1f22144afe2bec8ad480a9b803f6b8 (patch)
tree19d8b626f18b9fcfcced2d0cc001a0c5a63ce035 /include/llvm/CodeGen/MachineRelocation.h
parent9848ced5d0eec8cbc44f9fbe5ce273189b0b9b2b (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.h27
1 files changed, 13 insertions, 14 deletions
diff --git a/include/llvm/CodeGen/MachineRelocation.h b/include/llvm/CodeGen/MachineRelocation.h
index fc853d131725..ab512703ff05 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