[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