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)
commitc4e00289a78116aefc8db41979d747ab27c4bd44
tree1556b04f6979470b97eebbc5b92d5319290a2854
parent6096d44f76e99e9476254ba0b699429b64044184
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.

llvm-svn: 213442
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/ARM/Windows/alloca.ll [new file with mode: 0644]