[llvm] r350710 - [MSP430] Fix crash while lowering llvm.stacksave/stackrestore
Anton Korobeynikov via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 9 04:52:15 PST 2019
Author: asl
Date: Wed Jan 9 04:52:15 2019
New Revision: 350710
URL: http://llvm.org/viewvc/llvm-project?rev=350710&view=rev
Log:
[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
Added:
llvm/trunk/test/CodeGen/MSP430/stacksave_restore.ll
Modified:
llvm/trunk/lib/Target/MSP430/MSP430ISelLowering.cpp
Modified: llvm/trunk/lib/Target/MSP430/MSP430ISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSP430/MSP430ISelLowering.cpp?rev=350710&r1=350709&r2=350710&view=diff
==============================================================================
--- llvm/trunk/lib/Target/MSP430/MSP430ISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/MSP430/MSP430ISelLowering.cpp Wed Jan 9 04:52:15 2019
@@ -95,6 +95,8 @@ MSP430TargetLowering::MSP430TargetLoweri
setOperationAction(ISD::SIGN_EXTEND, MVT::i16, Custom);
setOperationAction(ISD::DYNAMIC_STACKALLOC, MVT::i8, 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::i16, Expand);
Added: llvm/trunk/test/CodeGen/MSP430/stacksave_restore.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/MSP430/stacksave_restore.ll?rev=350710&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/MSP430/stacksave_restore.ll (added)
+++ llvm/trunk/test/CodeGen/MSP430/stacksave_restore.ll Wed Jan 9 04:52:15 2019
@@ -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*)
More information about the llvm-commits
mailing list