llvm-6502/test
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 dependence analysis 2012-10-11 07:32:34 +00:00
Archive
Assembler Don't crash if a .ll file contains a forward-reference that looks like a global 2012-10-11 00:38:25 +00:00
Bindings/Ocaml Move TargetData to DataLayout. 2012-10-08 16:39:34 +00:00
Bitcode Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
BugPoint
CodeGen ARM: tail-call inside a function where part of a byval argument is on caller's 2012-10-12 23:39:43 +00:00
DebugInfo Make sure to generate the right kind of MDNode for enum forward declarations. 2012-10-05 01:49:14 +00:00
ExecutionEngine Some regression tests which are testing the old jit and are exercising functionality which is both known to be broken and not expected to be fixed in the old jit. To remove these from the regression test output, I've marked them XFAIL (for lit tests) and ifdef'd them out (unit tests). These modifications remove the last long-standing regression test failures from the buildbots (though updating the triple to reflect new ubuntu configuration has temporarily caused some new failures). Tested on x86-64 and ARM Linux. 2012-10-08 13:06:30 +00:00
Feature
Instrumentation
Integer
Linker
MC Add test cases for correct parsing of register names in 32- and 64-bit modes. 2012-10-11 12:42:49 +00:00
Object
Other Enable response files in all tools. Patch by Liu, Yaxun (Sam). I have simplified 2012-10-09 19:52:10 +00:00
Scripts
TableGen
Transforms Don't crash when !tbaa.struct contents is invalid. 2012-10-11 02:05:23 +00:00
Unit
Verifier
YAMLParser
CMakeLists.txt [CMake] check-all: Don't include check-llvm into check-all without LLVM_BUILD_TOOLS. 2012-10-10 13:33:00 +00:00
lit.cfg Enable llvm/test/ExecutionEngine/MCJIT also for cygwin. 2012-10-05 14:10:29 +00:00
lit.site.cfg.in
Makefile Revert r117093, "test/Makefile: Force lit -j1 on Cygwin." 2012-10-09 05:07:18 +00:00
Makefile.tests
TestRunner.sh