OSDN Git Service

the "isDirectCall" operand of GVRequiresRegister is always false, eliminate it.
authorChris Lattner <sabre@nondot.org>
Fri, 10 Jul 2009 05:37:11 +0000 (05:37 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 10 Jul 2009 05:37:11 +0000 (05:37 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75229 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86Subtarget.cpp
lib/Target/X86/X86Subtarget.h

index 35c9056..8084cd5 100644 (file)
@@ -7078,7 +7078,7 @@ bool X86TargetLowering::isLegalAddressingMode(const AddrMode &AM,
     if (Subtarget->GVRequiresExtraLoad(AM.BaseGV, getTargetMachine(), false))
       return false;
     // If BaseGV requires a register, we cannot also have a BaseReg.
-    if (Subtarget->GVRequiresRegister(AM.BaseGV, getTargetMachine(), false) &&
+    if (Subtarget->GVRequiresRegister(AM.BaseGV, getTargetMachine()) &&
         AM.HasBaseReg)
       return false;
 
@@ -8841,8 +8841,8 @@ void X86TargetLowering::LowerAsmOperandForConstraint(SDValue Op,
     }
     // If we require an extra load to get this address, as in PIC mode, we
     // can't accept it.
-    if (Subtarget->GVRequiresExtraLoad(GA->getGlobal(),
-                                       getTargetMachine(), false))
+    if (Subtarget->GVRequiresExtraLoad(GA->getGlobal(), getTargetMachine(),
+                                       false))
       return;
 
     if (hasMemory)
index f181b38..7d1f972 100644 (file)
@@ -76,15 +76,14 @@ bool X86Subtarget::GVRequiresExtraLoad(const GlobalValue* GV,
 /// cases where GVRequiresExtraLoad is true.  Some variations of PIC require
 /// a register, but not an extra load.
 bool X86Subtarget::GVRequiresRegister(const GlobalValue *GV,
-                                      const TargetMachine& TM,
-                                      bool isDirectCall) const {
-  if (GVRequiresExtraLoad(GV, TM, isDirectCall))
+                                      const TargetMachine &TM) const {
+  if (GVRequiresExtraLoad(GV, TM, false))
     return true;
+  
   // Code below here need only consider cases where GVRequiresExtraLoad
   // returns false.
   if (TM.getRelocationModel() == Reloc::PIC_)
-    return !isDirectCall && 
-      (GV->hasLocalLinkage() || GV->hasExternalLinkage());
+    return GV->hasLocalLinkage() || GV->hasExternalLinkage();
   return false;
 }
 
index 5a4f8c5..db3b5d5 100644 (file)
@@ -201,14 +201,13 @@ public:
   /// symbols are indirect, loading the value at address GV rather then the
   /// value of GV itself. This means that the GlobalAddress must be in the base
   /// or index register of the address, not the GV offset field.
-  bool GVRequiresExtraLoad(const GlobalValue* GV, const TargetMachineTM,
+  bool GVRequiresExtraLoad(const GlobalValue* GV, const TargetMachine &TM,
                            bool isDirectCall) const;
 
   /// True if accessing the GV requires a register.  This is a superset of the
   /// cases where GVRequiresExtraLoad is true.  Some variations of PIC require
   /// a register, but not an extra load.
-  bool GVRequiresRegister(const GlobalValue* GV, const TargetMachine& TM,
-                           bool isDirectCall) const;
+  bool GVRequiresRegister(const GlobalValue* GV, const TargetMachine &TM) const;
 
   /// IsLegalToCallImmediateAddr - Return true if the subtarget allows calls
   /// to immediate address.