mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-21 23:17:16 +00:00
Allow memory intrinsics to be tail calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234764 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1423,7 +1423,7 @@ XCoreTargetLowering::LowerCCCArguments(SDValue Chain,
|
||||
InVals.push_back(FIN);
|
||||
MemOps.push_back(DAG.getMemcpy(Chain, dl, FIN, ArgDI->SDV,
|
||||
DAG.getConstant(Size, MVT::i32),
|
||||
Align, false, false,
|
||||
Align, false, false, false,
|
||||
MachinePointerInfo(),
|
||||
MachinePointerInfo()));
|
||||
} else {
|
||||
@@ -1834,10 +1834,11 @@ SDValue XCoreTargetLowering::PerformDAGCombine(SDNode *N,
|
||||
LD->getAlignment() == Alignment &&
|
||||
!LD->isVolatile() && !LD->isIndexed() &&
|
||||
Chain.reachesChainWithoutSideEffects(SDValue(LD, 1))) {
|
||||
bool isTail = isInTailCallPosition(DAG, ST, Chain);
|
||||
return DAG.getMemmove(Chain, dl, ST->getBasePtr(),
|
||||
LD->getBasePtr(),
|
||||
DAG.getConstant(StoreBits/8, MVT::i32),
|
||||
Alignment, false, ST->getPointerInfo(),
|
||||
Alignment, false, isTail, ST->getPointerInfo(),
|
||||
LD->getPointerInfo());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user