llvm-6502/lib/CodeGen/SelectionDAG
Dan Gohman 98ca4f2a32 Major calling convention code refactoring.
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.

This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.

This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78142 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-05 01:29:28 +00:00
..
CallingConvLower.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
CMakeLists.txt Lexically order files in CMakeLists.txt files. 2009-07-15 21:08:16 +00:00
DAGCombiner.cpp Avoid forming a SELECT_CC in a type that the target doesn't 2009-08-02 16:19:38 +00:00
FastISel.cpp Move a few more APIs back to 2.5 forms. The only remaining ones left to change back are 2009-07-31 20:28:14 +00:00
LegalizeDAG.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
LegalizeFloatTypes.cpp Revert 77974. It breaks 3 of the ARM tests. 2009-08-03 19:06:29 +00:00
LegalizeIntegerTypes.cpp Convert a few more things to use raw_ostream. 2009-07-25 01:43:01 +00:00
LegalizeTypes.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
LegalizeTypes.h Nowadays vectors are only split if they have an even 2009-07-08 21:34:03 +00:00
LegalizeTypesGeneric.cpp Move types back to the 2.5 API. 2009-07-29 22:17:13 +00:00
LegalizeVectorOps.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
LegalizeVectorTypes.cpp Move types back to the 2.5 API. 2009-07-29 22:17:13 +00:00
Makefile remove dead makefile flags. 2009-06-24 05:29:56 +00:00
ScheduleDAGFast.cpp llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. 2009-07-14 16:55:14 +00:00
ScheduleDAGList.cpp llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. 2009-07-14 16:55:14 +00:00
ScheduleDAGRRList.cpp llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. 2009-07-14 16:55:14 +00:00
ScheduleDAGSDNodes.cpp Move more to raw_ostream, provide support for writing MachineBasicBlock, 2009-07-24 10:36:58 +00:00
ScheduleDAGSDNodes.h Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize 2009-04-13 21:06:25 +00:00
ScheduleDAGSDNodesEmit.cpp Optimize some common usage patterns of atomic built-ins __sync_add_and_fetch() and __sync_sub_and_fetch. 2009-07-30 08:33:02 +00:00
SelectionDAG.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
SelectionDAGBuild.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
SelectionDAGBuild.h Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
SelectionDAGISel.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00
SelectionDAGPrinter.cpp Switch to getNameStr(). 2009-07-24 08:24:36 +00:00
TargetLowering.cpp Major calling convention code refactoring. 2009-08-05 01:29:28 +00:00