[PATCH] ARM: Homogeneous aggregates must be allocated to contiguous registers

Oliver Stannard 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.

http://reviews.llvm.org/D3082






More information about the llvm-commits mailing list