Arnold Schwaighofer 30e62c098b Tail call optimization improvements:
Move platform independent code (lowering of possibly overwritten
arguments, check for tail call optimization eligibility) from
target X86ISelectionLowering.cpp to TargetLowering.h and
SelectionDAGISel.cpp.

Initial PowerPC tail call implementation:

Support ppc32 implemented and tested (passes my tests and
test-suite llvm-test).  
Support ppc64 implemented and half tested (passes my tests).
On ppc tail call optimization is performed if 
  caller and callee are fastcc
  call is a tail call (in tail call position, call followed by ret)
  no variable argument lists or byval arguments
  option -tailcallopt is enabled
Supported:
 * non pic tail calls on linux/darwin
 * module-local tail calls on linux(PIC/GOT)/darwin(PIC)
 * inter-module tail calls on darwin(PIC)
If constraints are not met a normal call will be emitted.

A test checking the argument lowering behaviour on x86-64 was added.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50477 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-30 09:16:33 +00:00
..
2008-03-23 13:44:17 +00:00
2008-04-28 17:58:20 +00:00
2008-02-05 20:46:33 +00:00
2008-04-30 04:56:14 +00:00
2008-03-04 03:19:19 +00:00
2008-02-27 06:33:05 +00:00
2008-04-01 04:00:45 +00:00
2008-04-16 20:45:31 +00:00
2008-03-25 22:06:05 +00:00
2008-04-16 21:57:29 +00:00