the "isDirectCall" operand of GVRequiresRegister is always false, eliminate it.

llvm-svn: 75229
This commit is contained in:
Chris Lattner 2009-07-10 05:37:11 +00:00
parent 8212d37e7d
commit 1cc7ae7c3b
3 changed files with 9 additions and 11 deletions

View 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)

View 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;
}

View 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 TargetMachine& TM,
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.