[llvm-commits] [llvm] r76938 - in /llvm/trunk: include/llvm/CodeGen/MachineConstantPool.h include/llvm/Constant.h lib/Target/ELFTargetAsmInfo.cpp lib/VMCore/Constants.cpp
Chris Lattner
sabre at nondot.org
Thu Jul 23 20:27:36 PDT 2009
Author: lattner
Date: Thu Jul 23 22:27:21 2009
New Revision: 76938
URL: http://llvm.org/viewvc/llvm-project?rev=76938&view=rev
Log:
make Constant::getRelocationInfo return an enum, as suggested by Duncan.
Modified:
llvm/trunk/include/llvm/CodeGen/MachineConstantPool.h
llvm/trunk/include/llvm/Constant.h
llvm/trunk/lib/Target/ELFTargetAsmInfo.cpp
llvm/trunk/lib/VMCore/Constants.cpp
Modified: llvm/trunk/include/llvm/CodeGen/MachineConstantPool.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/MachineConstantPool.h?rev=76938&r1=76937&r2=76938&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/MachineConstantPool.h (original)
+++ llvm/trunk/include/llvm/CodeGen/MachineConstantPool.h Thu Jul 23 22:27:21 2009
@@ -47,14 +47,7 @@
/// getRelocationInfo - This method classifies the entry according to
/// whether or not it may generate a relocation entry. This must be
/// 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.
+ /// so. The return values are the same as Constant::getRelocationInfo().
virtual unsigned getRelocationInfo() const = 0;
virtual int getExistingMachineCPValue(MachineConstantPool *CP,
Modified: llvm/trunk/include/llvm/Constant.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Constant.h?rev=76938&r1=76937&r2=76938&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Constant.h (original)
+++ llvm/trunk/include/llvm/Constant.h Thu Jul 23 22:27:21 2009
@@ -59,20 +59,27 @@
/// true for things like constant expressions that could divide by zero.
bool canTrap() const;
+ enum PossibleRelocationsTy {
+ NoRelocation = 0,
+ LocalRelocation = 1,
+ GlobalRelocations = 2
+ };
+
/// getRelocationInfo - This method classifies the entry according to
/// whether or not it may generate a relocation entry. This must be
/// 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 getRelocationInfo() const;
+ PossibleRelocationsTy getRelocationInfo() const;
// Specialize get/setOperand for Constants as their operands are always
// constants as well.
Modified: llvm/trunk/lib/Target/ELFTargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ELFTargetAsmInfo.cpp?rev=76938&r1=76937&r2=76938&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ELFTargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/ELFTargetAsmInfo.cpp Thu Jul 23 22:27:21 2009
@@ -62,10 +62,10 @@
// 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;
}
}
Modified: llvm/trunk/lib/VMCore/Constants.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Constants.cpp?rev=76938&r1=76937&r2=76938&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Constants.cpp (original)
+++ llvm/trunk/lib/VMCore/Constants.cpp Thu Jul 23 22:27:21 2009
@@ -107,22 +107,23 @@
/// 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());
More information about the llvm-commits
mailing list