llvm-6502/test
Hal Finkel fe47bf8fa0 PPC: Implement base pointer and stack realignment
This builds on some frame-lowering code that has existed since 2005 (r24224)
but was disabled in 2008 (r48188) because it needed base pointer support to
function correctly. This implementation follows the strategy suggested by Dale
Johannesen in r48188 where the following comment was added:

  This does not currently work, because the delta between old and new stack
  pointers is added to offsets that reference incoming parameters after the
  prolog is generated, and the code that does that doesn't handle a variable
  delta.  You don't want to do that anyway; a better approach is to reserve
  another register that retains to the incoming stack pointer, and reference
  parameters relative to that.

And now we do exactly that. If we don't need a frame pointer, then we use r31
as a base pointer. If we do need a frame pointer, then we use r30 as a base
pointer. The base pointer retains the value of the stack pointer before it was
decremented in the prologue. We then use the base pointer to resolve all
negative frame indicies. The basic scheme follows that for base pointers in the
X86 backend.

We use a base pointer when we need to dynamically realign the incoming stack
pointer. This currently applies only to static objects (dynamic allocas with
large alignments, and base-pointer support in SjLj lowering will come in future
commits).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186478 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-17 00:45:52 +00:00
..
Analysis Add newlines at end of test files, no functionality change 2013-07-13 22:00:58 +00:00
Assembler Fix test: It was missing run lines and llvm-dis has no -disable-verify option. 2013-07-03 16:27:55 +00:00
Bindings/Ocaml Fix %t typo in Ocaml bindings test. 2013-07-10 18:55:06 +00:00
Bitcode
BugPoint
CodeGen PPC: Implement base pointer and stack realignment 2013-07-17 00:45:52 +00:00
DebugInfo Further simplify test case from r186119/r186035. 2013-07-15 22:28:45 +00:00
ExecutionEngine Add newlines at end of test files, no functionality change 2013-07-13 22:00:58 +00:00
Feature Add a new function attribute 'cold' to functions. 2013-05-24 12:26:52 +00:00
FileCheck Add new directive called CHECK-LABEL to FileCheck. 2013-07-12 14:51:05 +00:00
Instrumentation [msan] Unpoison stack allocations and undef values in blacklisted functions. 2013-07-03 14:39:14 +00:00
Integer
JitListener
Linker Extend RemapInstruction and friends to take an optional new parameter, a ValueMaterializer. 2013-05-28 15:17:05 +00:00
MC ARM: Add support for the Thumb2 PLI alternate literal form. 2013-07-16 21:52:34 +00:00
Object llvm/test/Object/ar-create.test: Relax a CHECK line to satisfy localized message catalogue. 2013-07-16 23:17:22 +00:00
Other XFAIL this test on mingw. 2013-07-16 19:20:29 +00:00
TableGen
tools Revert: Fix wrong code offset for unwind code SET_FPREG. 2013-07-08 04:48:34 +00:00
Transforms When the inliner merges allocas, it must keep the larger alignment 2013-07-16 17:10:55 +00:00
Unit
Verifier Also verify llvm.compiler_used. 2013-04-22 15:16:51 +00:00
YAMLParser
CMakeLists.txt llvm/test/CMakeLists.txt: Add llvm-cov in "check-clang". 2013-07-08 08:44:36 +00:00
lit.cfg Add the ability to use guarded malloc when running llvm lit tests. 2013-07-11 23:36:57 +00:00
lit.site.cfg.in Allow host triple to be correctly overridden in CMake builds 2013-05-04 07:36:23 +00:00
Makefile add polly to check-all 2013-05-20 18:49:15 +00:00
Makefile.tests
TestRunner.sh