I don't think there are enough changes here to warrant a bigger refactoring, 
but this mechanism has proven to be fragile, given the number of "this commit 
broke byval" post-commits.

I'm not against this particular patch, but I'd like to see a bit more work on 
making the code robust, not just adding special cases...

cheers,
--renato

================
Comment at: lib/CodeGen/TargetInfo.cpp:4004
@@ -4001,1 +4003,3 @@
+    if (!IsCPRC && PreAllocationGPRs < NumGPRs && AllocatedGPRs > NumGPRs &&
+        StackUsed && !IsByVal) {
       llvm::Type *PaddingTy = llvm::ArrayType::get(
----------------
This is getting slightly out of hand...

================
Comment at: test/CodeGen/arm-aapcs-vfp.c:150
@@ +149,3 @@
+// Here, parameter k would need padding to prevent it from being split, but it
+// is passed ByVal (due to being > 64 bytes), so the backend handles this 
instead.
+void test_vfp_stack_gpr_split_6(double a, double b, double c, double d, double 
e, double f, double g, double h, double i, int j, struct_seventeen_ints k) {}
----------------
and this relationship between the front-end and the back-end is getting 
thinner...

http://reviews.llvm.org/D4541



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to