aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-07-24 03:27:21 +0000
committerChris Lattner <sabre@nondot.org>2009-07-24 03:27:21 +0000
commit83ca6d92cfe4e4b6c8133e1d8a691411e9f12cf5 (patch)
treec16c2854816b9543e014ff4a4e4ab052c6b072d7 /lib
parent2b8e99a7638847eb951173715412811a61af4b35 (diff)
downloadexternal_llvm-83ca6d92cfe4e4b6c8133e1d8a691411e9f12cf5.zip
external_llvm-83ca6d92cfe4e4b6c8133e1d8a691411e9f12cf5.tar.gz
external_llvm-83ca6d92cfe4e4b6c8133e1d8a691411e9f12cf5.tar.bz2
make Constant::getRelocationInfo return an enum, as suggested by Duncan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76938 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ELFTargetAsmInfo.cpp4
-rw-r--r--lib/VMCore/Constants.cpp23
2 files changed, 14 insertions, 13 deletions
diff --git a/lib/Target/ELFTargetAsmInfo.cpp b/lib/Target/ELFTargetAsmInfo.cpp
index 9e7bb4a..284f4cb 100644
--- a/lib/Target/ELFTargetAsmInfo.cpp
+++ b/lib/Target/ELFTargetAsmInfo.cpp
@@ -62,10 +62,10 @@ ELFTargetAsmInfo::SectionKindForGlobal(const GlobalValue *GV) const {
// placed in r/w section.
switch (C->getRelocationInfo()) {
default: break;
- case 1:
+ case Constant::LocalRelocation:
return isConstant ? SectionKind::DataRelROLocal :
SectionKind::DataRelLocal;
- case 2:
+ case Constant::GlobalRelocations:
return isConstant ? SectionKind::DataRelRO : SectionKind::DataRel;
}
}
diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp
index 74c3115..f94cd9e 100644
--- a/lib/VMCore/Constants.cpp
+++ b/lib/VMCore/Constants.cpp
@@ -107,22 +107,23 @@ bool Constant::canTrap() const {
/// conservative, so if it might codegen to a relocatable entry, it should say
/// so. The return values are:
///
-/// 0: This constant pool entry is guaranteed to never have a relocation
-/// applied to it (because it holds a simple constant like '4').
-/// 1: This entry has relocations, but the entries are guaranteed to be
-/// resolvable by the static linker, so the dynamic linker will never see
-/// them.
-/// 2: This entry may have arbitrary relocations.
+/// NoRelocation: This constant pool entry is guaranteed to never have a
+/// relocation applied to it (because it holds a simple constant like
+/// '4').
+/// LocalRelocation: This entry has relocations, but the entries are
+/// guaranteed to be resolvable by the static linker, so the dynamic
+/// linker will never see them.
+/// GlobalRelocations: This entry may have arbitrary relocations.
///
/// FIXME: This really should not be in VMCore.
-unsigned Constant::getRelocationInfo() const {
- if (const GlobalValue* GV = dyn_cast<GlobalValue>(this)) {
+Constant::PossibleRelocationsTy Constant::getRelocationInfo() const {
+ if (const GlobalValue *GV = dyn_cast<GlobalValue>(this)) {
if (GV->hasLocalLinkage() || GV->hasHiddenVisibility())
- return 1; // Local to this file/library.
- return 2; // Global reference.
+ return LocalRelocation; // Local to this file/library.
+ return GlobalRelocations; // Global reference.
}
- unsigned Result = 0;
+ PossibleRelocationsTy Result = NoRelocation;
for (unsigned i = 0, e = getNumOperands(); i != e; ++i)
Result = std::max(Result, getOperand(i)->getRelocationInfo());