Skip to content

Commit c9f532d

Browse files
author
Jim Grosbach
committed
back out 104862/104869. Can reuse stacksave after all. Very cool.
llvm-svn: 104897
1 parent 288999b commit c9f532d

File tree

5 files changed

+2
-19
lines changed

5 files changed

+2
-19
lines changed

llvm/include/llvm/CodeGen/ISDOpcodes.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ namespace ISD {
7272
// parent's frame or return address, and so on.
7373
FRAMEADDR, RETURNADDR,
7474

75-
// STACKADDR - The current stack pointer address.
76-
STACKADDR,
77-
7875
// FRAME_TO_ARGS_OFFSET - This node represents offset from frame pointer to
7976
// first (possible) on-stack argument. This is needed for correct stack
8077
// adjustment during unwind.

llvm/include/llvm/Intrinsics.td

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,13 +197,12 @@ def int_gcwrite : Intrinsic<[],
197197
def int_returnaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>;
198198
def int_frameaddress : Intrinsic<[llvm_ptr_ty], [llvm_i32_ty], [IntrNoMem]>;
199199

200-
// Note: we treat stacksave/stackrestore and stackaddr as writemem because we
201-
// don't otherwise model their dependencies on allocas.
200+
// Note: we treat stacksave/stackrestore as writemem because we don't otherwise
201+
// model their dependencies on allocas.
202202
def int_stacksave : Intrinsic<[llvm_ptr_ty]>,
203203
GCCBuiltin<"__builtin_stack_save">;
204204
def int_stackrestore : Intrinsic<[], [llvm_ptr_ty]>,
205205
GCCBuiltin<"__builtin_stack_restore">;
206-
def int_stackaddress : Intrinsic<[llvm_ptr_ty], []>;
207206

208207
// IntrWriteArgMem is more pessimistic than strictly necessary for prefetch,
209208
// however it does conveniently prevent the prefetch from being reordered

llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3756,10 +3756,6 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
37563756
setValue(&I, DAG.getNode(ISD::FRAMEADDR, dl, TLI.getPointerTy(),
37573757
getValue(I.getOperand(1))));
37583758
return 0;
3759-
case Intrinsic::stackaddress:
3760-
setValue(&I, DAG.getNode(ISD::STACKADDR, dl, TLI.getPointerTy(), getRoot(),
3761-
getValue(I.getOperand(1))));
3762-
return 0;
37633759
case Intrinsic::setjmp:
37643760
return "_setjmp"+!TLI.usesUnderscoreSetJmp();
37653761
case Intrinsic::longjmp:

llvm/lib/Target/ARM/ARMISelLowering.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2183,13 +2183,6 @@ SDValue ARMTargetLowering::LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const {
21832183
return FrameAddr;
21842184
}
21852185

2186-
SDValue ARMTargetLowering::LowerSTACKADDR(SDValue Op, SelectionDAG &DAG) const {
2187-
EVT VT = Op.getValueType();
2188-
DebugLoc dl = Op.getDebugLoc(); // FIXME probably not meaningful
2189-
SDValue StackAddr = DAG.getCopyFromReg(DAG.getEntryNode(), dl, ARM::SP, VT);
2190-
return StackAddr;
2191-
}
2192-
21932186
/// ExpandBIT_CONVERT - If the target supports VFP, this function is called to
21942187
/// expand a bit convert where either the source or destination type is i64 to
21952188
/// use a VMOVDRR or VMOVRRD node. This should not be done when the non-i64
@@ -3194,7 +3187,6 @@ SDValue ARMTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const {
31943187
case ISD::FCOPYSIGN: return LowerFCOPYSIGN(Op, DAG);
31953188
case ISD::RETURNADDR: return LowerRETURNADDR(Op, DAG);
31963189
case ISD::FRAMEADDR: return LowerFRAMEADDR(Op, DAG);
3197-
case ISD::STACKADDR: return LowerSTACKADDR(Op, DAG);
31983190
case ISD::GLOBAL_OFFSET_TABLE: return LowerGLOBAL_OFFSET_TABLE(Op, DAG);
31993191
case ISD::EH_SJLJ_SETJMP: return LowerEH_SJLJ_SETJMP(Op, DAG);
32003192
case ISD::EH_SJLJ_LONGJMP: return LowerEH_SJLJ_LONGJMP(Op, DAG);

llvm/lib/Target/ARM/ARMISelLowering.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,6 @@ namespace llvm {
305305
SDValue LowerBR_CC(SDValue Op, SelectionDAG &DAG) const;
306306
SDValue LowerRETURNADDR(SDValue Op, SelectionDAG &DAG) const;
307307
SDValue LowerFRAMEADDR(SDValue Op, SelectionDAG &DAG) const;
308-
SDValue LowerSTACKADDR(SDValue Op, SelectionDAG &DAG) const;
309308
SDValue LowerDYNAMIC_STACKALLOC(SDValue Op, SelectionDAG &DAG) const;
310309
SDValue LowerShiftRightParts(SDValue Op, SelectionDAG &DAG) const;
311310
SDValue LowerShiftLeftParts(SDValue Op, SelectionDAG &DAG) const;

0 commit comments

Comments
 (0)