llvm-6502/lib
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
..
Analysis fix warning 2012-10-12 02:04:32 +00:00
Archive Mark checkSignature const, and in turn stop casting away const from 2012-09-05 22:09:23 +00:00
AsmParser Don't crash if a .ll file contains a forward-reference that looks like a global 2012-10-11 00:38:25 +00:00
Bitcode Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
CodeGen Use a transposed algorithm for handleMove(). 2012-10-12 21:31:57 +00:00
DebugInfo Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-18 02:01:41 +00:00
ExecutionEngine Indenting. 2012-10-12 02:04:47 +00:00
Linker Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
MC Whitespace. 2012-10-09 20:15:02 +00:00
Object Cosmetic changes 2012-10-10 01:45:52 +00:00
Support Add powerpc-ibm-aix to Triple. Patch by Kai. 2012-10-12 11:08:57 +00:00
TableGen tblgen: Compile TableGen without RTTI. 2012-10-10 20:27:18 +00:00
Target ARM: tail-call inside a function where part of a byval argument is on caller's 2012-10-12 23:39:43 +00:00
Transforms PGO: create metadata for switch only if it has more than one targets. 2012-10-11 22:28:34 +00:00
VMCore Add the LLVM context to this c'tor. It will be needed in the future. 2012-10-11 01:10:00 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile