llvm-6502/include/llvm/Target
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
..
SubtargetFeature.h Unbreak build with gcc 4.3: provide missed includes and silence most annoying warnings. 2008-02-20 11:08:44 +00:00
TargetAsmInfo.h Fix a bug in Darwin EH: FDE->CIE pointer must 2008-03-26 23:31:39 +00:00
TargetData.h Use getPreferredAlignmentLog or getPreferredAlignment 2008-01-29 06:23:44 +00:00
TargetELFWriterInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetFrameInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetInstrDesc.h Fix some minor errors in comments. 2008-04-09 20:08:06 +00:00
TargetInstrInfo.h Infrastructure for getting the machine code size of a function and an instruction. X86, PowerPC and ARM are implemented 2008-04-16 20:10:13 +00:00
TargetInstrItineraries.h A quick nm audit turned up several fixed tables and objects that were 2008-03-25 21:45:14 +00:00
TargetJITInfo.h Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function 2008-04-16 20:46:05 +00:00
TargetLowering.h Tail call optimization improvements: 2008-04-30 09:16:33 +00:00
TargetMachine.h Add facility for pre-RA passes 2008-04-23 18:22:28 +00:00
TargetMachineRegistry.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetMachOWriterInfo.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
TargetOptions.h Make stack alignment options global for all targets 2008-04-23 18:18:10 +00:00
TargetRegisterInfo.h Sort sub-registers and super-registers lists according to super-sub register relations. e.g. X86::RAX sub-register list is EAX, AX, AL, AH (order of last two are not guaranteed). 2008-04-15 07:56:03 +00:00
TargetSubtarget.h Drop ISD::MEMSET, ISD::MEMMOVE, and ISD::MEMCPY, which are not Legal 2008-04-12 04:36:06 +00:00