Stephen Lin
4362261b00
CHECK-LABEL-ify some code gen tests to improve diagnostic experience when tests fail.
...
llvm-svn: 188447
2013-08-15 06:47:53 +00:00
Eli Friedman
eb7fab61bd
The LLVM IR representation of byval arguments has a rather strange property: if the alignment of an argument to a call is less than the specified byval alignment for that argument, there is no way to specify the alignment of the implied copy. Therefore, we must ensure that the alignment of the argument is at least the byval alignment. To do this, we have to mess with the alignment of relevant alloca's in some cases, and insert a copy that conceptually shouldn't be necessary in some cases.
...
This patch tries relatively hard to avoid creating an extra copy if it can be avoided (see test3 in the included testcase), but it is not possible to avoid in some cases (like test2 in the included testcase).
rdar://9483886
llvm-svn: 132957
2011-06-14 01:37:52 +00:00
Eli Friedman
df96819daf
Skip extra copy from aggregate where it isn't necessary; rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0.
...
Originally r130717, but was backed out due to an ObjC regression.
llvm-svn: 132102
2011-05-26 00:10:27 +00:00
Douglas Gregor
9ca5465500
Revert r130717, which caused a regression (<rdar://problem/9402621>).
...
llvm-svn: 131057
2011-05-07 20:12:26 +00:00
Eli Friedman
30458b51e3
Skip extra copy from aggregate where it isn't necessary; rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0.
...
llvm-svn: 130717
2011-05-02 20:24:29 +00:00