[MSP430] Fix crash while lowering llvm.stacksave/stackrestore

Perform the usual expansion of stacksave / restore intrinsics.
Patch by Kristina Bessonova!

Differential Revision: https://reviews.llvm.org/D54890

llvm-svn: 350710
This commit is contained in:
Anton Korobeynikov 2019-01-09 12:52:15 +00:00
parent 7d497ea2d9
commit 9222ed4485
2 changed files with 15 additions and 0 deletions

View File

@ -95,6 +95,8 @@ MSP430TargetLowering::MSP430TargetLowering(const TargetMachine &TM,
setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Custom); setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Custom);
setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand); setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, Expand);
setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand); setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i16, Expand);
setOperationAction(ISD::STACKSAVE, MVT::Other, Expand);
setOperationAction(ISD::STACKRESTORE, MVT::Other, Expand);
setOperationAction(ISD::CTTZ, MVT::i8, Expand); setOperationAction(ISD::CTTZ, MVT::i8, Expand);
setOperationAction(ISD::CTTZ, MVT::i16, Expand); setOperationAction(ISD::CTTZ, MVT::i16, Expand);

View File

@ -0,0 +1,13 @@
; RUN: llc < %s -march=msp430
target triple = "msp430"
define void @foo() {
entry:
%0 = tail call i8* @llvm.stacksave()
tail call void @llvm.stackrestore(i8* %0)
ret void
}
declare i8* @llvm.stacksave()
declare void @llvm.stackrestore(i8*)