mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Clean up redundant SP register maintained in X86 TLI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167104 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
57cfd71f88
commit
c5c970ee85
@ -158,7 +158,6 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||
Subtarget = &TM.getSubtarget<X86Subtarget>();
|
||||
X86ScalarSSEf64 = Subtarget->hasSSE2();
|
||||
X86ScalarSSEf32 = Subtarget->hasSSE1();
|
||||
X86StackPtr = Subtarget->is64Bit() ? X86::RSP : X86::ESP;
|
||||
|
||||
RegInfo = TM.getRegisterInfo();
|
||||
TD = getDataLayout();
|
||||
@ -180,7 +179,7 @@ X86TargetLowering::X86TargetLowering(X86TargetMachine &TM)
|
||||
setSchedulingPreference(Sched::ILP);
|
||||
else
|
||||
setSchedulingPreference(Sched::RegPressure);
|
||||
setStackPointerRegisterToSaveRestore(X86StackPtr);
|
||||
setStackPointerRegisterToSaveRestore(RegInfo->getStackRegister());
|
||||
|
||||
// Bypass i32 with i8 on Atom when compiling with O2
|
||||
if (Subtarget->hasSlowDivide() && TM.getOptLevel() >= CodeGenOpt::Default)
|
||||
@ -2351,7 +2350,8 @@ X86TargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
||||
} else if (!IsSibcall && (!isTailCall || isByVal)) {
|
||||
assert(VA.isMemLoc());
|
||||
if (StackPtr.getNode() == 0)
|
||||
StackPtr = DAG.getCopyFromReg(Chain, dl, X86StackPtr, getPointerTy());
|
||||
StackPtr = DAG.getCopyFromReg(Chain, dl, RegInfo->getStackRegister(),
|
||||
getPointerTy());
|
||||
MemOpChains.push_back(LowerMemOpCallTo(Chain, StackPtr, Arg,
|
||||
dl, DAG, VA, Flags));
|
||||
}
|
||||
@ -2439,7 +2439,8 @@ X86TargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
|
||||
// Copy relative to framepointer.
|
||||
SDValue Source = DAG.getIntPtrConstant(VA.getLocMemOffset());
|
||||
if (StackPtr.getNode() == 0)
|
||||
StackPtr = DAG.getCopyFromReg(Chain, dl, X86StackPtr,
|
||||
StackPtr = DAG.getCopyFromReg(Chain, dl,
|
||||
RegInfo->getStackRegister(),
|
||||
getPointerTy());
|
||||
Source = DAG.getNode(ISD::ADD, dl, getPointerTy(), StackPtr, Source);
|
||||
|
||||
@ -9771,7 +9772,8 @@ X86TargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op,
|
||||
Chain = DAG.getNode(X86ISD::WIN_ALLOCA, dl, NodeTys, Chain, Flag);
|
||||
Flag = Chain.getValue(1);
|
||||
|
||||
Chain = DAG.getCopyFromReg(Chain, dl, X86StackPtr, SPTy).getValue(1);
|
||||
Chain = DAG.getCopyFromReg(Chain, dl, RegInfo->getStackRegister(),
|
||||
SPTy).getValue(1);
|
||||
|
||||
SDValue Ops1[2] = { Chain.getValue(0), Chain };
|
||||
return DAG.getMergeValues(Ops1, 2, dl);
|
||||
|
@ -484,10 +484,6 @@ namespace llvm {
|
||||
getPICJumpTableRelocBaseExpr(const MachineFunction *MF,
|
||||
unsigned JTI, MCContext &Ctx) const;
|
||||
|
||||
/// getStackPtrReg - Return the stack pointer register we are using: either
|
||||
/// ESP or RSP.
|
||||
unsigned getStackPtrReg() const { return X86StackPtr; }
|
||||
|
||||
/// getByValTypeAlignment - Return the desired alignment for ByVal aggregate
|
||||
/// function arguments in the caller parameter area. For X86, aggregates
|
||||
/// that contains are placed at 16-byte boundaries while the rest are at
|
||||
@ -722,9 +718,6 @@ namespace llvm {
|
||||
const X86RegisterInfo *RegInfo;
|
||||
const DataLayout *TD;
|
||||
|
||||
/// X86StackPtr - X86 physical register used as stack ptr.
|
||||
unsigned X86StackPtr;
|
||||
|
||||
/// X86ScalarSSEf32, X86ScalarSSEf64 - Select between SSE or x87
|
||||
/// floating point ops.
|
||||
/// When SSE is available, use it for f32 operations.
|
||||
|
Loading…
Reference in New Issue
Block a user