ARM: correct WoA __builtin_alloca handling on O0
authorSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 19 Jul 2014 01:29:51 +0000 (01:29 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Sat, 19 Jul 2014 01:29:51 +0000 (01:29 +0000)
commitb0a5225e6fb1c84a3e2dbdee1d94fb47730c3e01
tree5dc282beb80cff4641885d95aae958afb6c9f511
parentec31a302b7ae0e3f999be3bac28d55f52c6e2393
ARM: correct WoA __builtin_alloca handling on O0

When performing a dynamic stack adjustment without optimisations, we would mark
SP as def and R4 as kill.  This occurred as part of the expansion of a
WIN__CHKSTK SDNode which indicated the proper handling of SP and R4.  The result
would be that we would double define SP as part of an operation, which is
obviously incorrect.

Furthermore, the VTList for the chain had an incorrect parameter type of i32
instead of Other.

Correct these to permit proper lowering of __builtin_alloca at -O0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213442 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
test/CodeGen/ARM/Windows/alloca.ll [new file with mode: 0644]