mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-25 21:18:19 +00:00
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
This commit is contained in:
@@ -20,8 +20,8 @@
|
||||
// type i8 which must be promoted.
|
||||
//
|
||||
// This does not legalize vector manipulations like ISD::BUILD_VECTOR,
|
||||
// or operations that happen to take a vector which are custom-lowered like
|
||||
// ISD::CALL; the legalization for such operations never produces nodes
|
||||
// or operations that happen to take a vector which are custom-lowered;
|
||||
// the legalization for such operations never produces nodes
|
||||
// with illegal types, so it's okay to put off legalizing them until
|
||||
// SelectionDAG::Legalize runs.
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user