[PATCH] ARM: Homogeneous aggregates must be allocated to contiguous registers
oliver.stannard at arm.com
Fri May 9 06:33:18 PDT 2014
The "attribute" that I added is in ISD::ArgFlagsTy (see include/llvm/Target/TargetCallingConv.h), not an IR attribute, so I can't add IR or bitcode tests for it.
Comment at: lib/Target/ARM/ARMISelLowering.cpp:1244
@@ +1243,3 @@
+ return CallingConv::ARM_APCS;
+ } else if (Subtarget->hasVFP2() && !isVarArg)
+ return CallingConv::ARM_AAPCS_VFP;
James Molloy wrote:
> Why are you converting fastcc functions to AAPCS_VFP here?
This is the same behaviour as the old code. It has to be done here, instead of in CCAssignFnForNode, as getFuncArgNeedsRegBlock needs to know if a function will be treated as AAPCS_VFP, even if the function itself is marked as CallingConv::Fast or CallingConv::C.
More information about the llvm-commits