llvm-6502/test/CodeGen
Manman Ren e6c3cc8dc5 ARM: tail-call inside a function where part of a byval argument is on caller's
local frame causes problem.

For example:
void f(StructToPass s) {
  g(&s, sizeof(s));
}
will cause problem with tail-call since part of s is passed via registers and
saved in f's local frame. When g tries to access s, part of s may be corrupted
since f's local frame is popped out before the tail-call.

The current fix is to disable tail-call if getVarArgsRegSaveSize is not 0 for
the caller. This is a conservative approach, if we can prove the address of
s or part of s is not taken and passed to g, it should be okay to perform
tail-call.

rdar://12442472


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165853 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-12 23:39:43 +00:00
..
ARM ARM: tail-call inside a function where part of a byval argument is on caller's 2012-10-12 23:39:43 +00:00
CellSPU Fix broken tests. 2012-10-02 15:49:34 +00:00
CPP
Generic BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle 2012-08-24 18:14:27 +00:00
Hexagon LLVM Bug Fix 13709: Remove needless lsr(Rp, #32) instruction access the 2012-09-05 16:01:40 +00:00
MBlaze
Mips Div, Rem int/unsigned int 2012-10-12 02:01:09 +00:00
MSP430
NVPTX
PowerPC llvm/test/CodeGen/PowerPC/2012-10-12-bitcast.ll: Try to fix failure on non-ppc hosts, to add -mattr=+altivec. 2012-10-12 16:01:08 +00:00
SPARC Fix broken tests. 2012-10-02 15:49:34 +00:00
Thumb Fix Thumb2 fixup kind in the integrated-as. 2012-09-01 15:06:36 +00:00
Thumb2 Add LLVM support for Swift. 2012-09-29 21:43:49 +00:00
X86 Fix buildbots: -misched=shuffle is only available in +Asserts builds. 2012-10-12 23:01:33 +00:00
XCore