mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 13:46:13 +00:00
Remove unused parameter. Also use the AttributeSet query methods instead of the Attribute query methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172852 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8a53a8329f
commit
1a17bd21ff
@ -86,8 +86,7 @@ ISD::CondCode getICmpCondCode(ICmpInst::Predicate Pred);
|
||||
/// between it and the return.
|
||||
///
|
||||
/// This function only tests target-independent requirements.
|
||||
bool isInTailCallPosition(ImmutableCallSite CS, Attribute CalleeRetAttr,
|
||||
const TargetLowering &TLI);
|
||||
bool isInTailCallPosition(ImmutableCallSite CS, const TargetLowering &TLI);
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
|
@ -265,8 +265,7 @@ static const Value *getNoopInput(const Value *V, const TargetLowering &TLI) {
|
||||
/// between it and the return.
|
||||
///
|
||||
/// This function only tests target-independent requirements.
|
||||
bool llvm::isInTailCallPosition(ImmutableCallSite CS, Attribute CalleeRetAttr,
|
||||
const TargetLowering &TLI) {
|
||||
bool llvm::isInTailCallPosition(ImmutableCallSite CS,const TargetLowering &TLI){
|
||||
const Instruction *I = CS.getInstruction();
|
||||
const BasicBlock *ExitBB = I->getParent();
|
||||
const TerminatorInst *Term = ExitBB->getTerminator();
|
||||
@ -312,14 +311,16 @@ bool llvm::isInTailCallPosition(ImmutableCallSite CS, Attribute CalleeRetAttr,
|
||||
// Conservatively require the attributes of the call to match those of
|
||||
// the return. Ignore noalias because it doesn't affect the call sequence.
|
||||
const Function *F = ExitBB->getParent();
|
||||
Attribute CallerRetAttr = F->getAttributes().getRetAttributes();
|
||||
if (AttrBuilder(CalleeRetAttr).removeAttribute(Attribute::NoAlias) !=
|
||||
AttrBuilder(CallerRetAttr).removeAttribute(Attribute::NoAlias))
|
||||
AttributeSet CallerAttrs = F->getAttributes();
|
||||
if (AttrBuilder(CallerAttrs, AttributeSet::ReturnIndex).
|
||||
removeAttribute(Attribute::NoAlias) !=
|
||||
AttrBuilder(CallerAttrs, AttributeSet::ReturnIndex).
|
||||
removeAttribute(Attribute::NoAlias))
|
||||
return false;
|
||||
|
||||
// It's not safe to eliminate the sign / zero extension of the return value.
|
||||
if (CallerRetAttr.hasAttribute(Attribute::ZExt) ||
|
||||
CallerRetAttr.hasAttribute(Attribute::SExt))
|
||||
if (CallerAttrs.hasAttribute(AttributeSet::ReturnIndex, Attribute::ZExt) ||
|
||||
CallerAttrs.hasAttribute(AttributeSet::ReturnIndex, Attribute::SExt))
|
||||
return false;
|
||||
|
||||
// Otherwise, make sure the unmodified return value of I is the return value.
|
||||
|
@ -5277,8 +5277,7 @@ void SelectionDAGBuilder::LowerCallTo(ImmutableCallSite CS, SDValue Callee,
|
||||
|
||||
// Check if target-independent constraints permit a tail call here.
|
||||
// Target-dependent constraints are checked within TLI.LowerCallTo.
|
||||
if (isTailCall &&
|
||||
!isInTailCallPosition(CS, CS.getAttributes().getRetAttributes(), TLI))
|
||||
if (isTailCall && !isInTailCallPosition(CS, TLI))
|
||||
isTailCall = false;
|
||||
|
||||
TargetLowering::
|
||||
|
Loading…
Reference in New Issue
Block a user