diff options
| author | Tim Northover <tnorthover@apple.com> | 2014-11-07 22:30:50 +0000 |
|---|---|---|
| committer | Tim Northover <tnorthover@apple.com> | 2014-11-07 22:30:50 +0000 |
| commit | 5a1558ec31903371b0843382ce313749be0d13a4 (patch) | |
| tree | c7e6a6f852d5da0aba5360dd2216bd7fa9a1e007 /clang/test/CodeGen/arm-arguments.c | |
| parent | edf99a92c00193fb72f3e94f4440b9f86789cca4 (diff) | |
| download | bcm5719-llvm-5a1558ec31903371b0843382ce313749be0d13a4.tar.gz bcm5719-llvm-5a1558ec31903371b0843382ce313749be0d13a4.zip | |
ARM ABI: simplify decisions on whether args can be expanded.
Homogeneous aggregates on AAPCS_VFP ARM need to be passed *without* being
flattened (e.g. [2 x float] rather than "float, float") for various weird ABI
reasons. However, this isn't the case for anything else; further, we know at
the ABIArgInfo::getDirect callsites whether this flattening is allowed.
So, we can get more unified ARM code, with a simpler Clang, by just using that
knowledge directly.
llvm-svn: 221559
Diffstat (limited to 'clang/test/CodeGen/arm-arguments.c')
| -rw-r--r-- | clang/test/CodeGen/arm-arguments.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/clang/test/CodeGen/arm-arguments.c b/clang/test/CodeGen/arm-arguments.c index 2c5df91c58a..e4a10fd9e27 100644 --- a/clang/test/CodeGen/arm-arguments.c +++ b/clang/test/CodeGen/arm-arguments.c @@ -183,14 +183,9 @@ void f33(struct s33 s) { } struct s34 { char c; }; void f34(struct s34 s); void g34(struct s34 *s) { f34(*s); } -// APCS-GNU: @g34(%struct.s34* %s) -// APCS-GNU: %[[a:.*]] = alloca { [1 x i32] } -// APCS-GNU: %[[gep:.*]] = getelementptr { [1 x i32] }* %[[a]], i32 0, i32 0 -// APCS-GNU: load [1 x i32]* %[[gep]] // AAPCS: @g34(%struct.s34* %s) -// AAPCS: %[[a:.*]] = alloca { [1 x i32] } -// AAPCS: %[[gep:.*]] = getelementptr { [1 x i32] }* %[[a]], i32 0, i32 0 -// AAPCS: load [1 x i32]* %[[gep]] +// AAPCS: %[[a:.*]] = alloca [1 x i32] +// AAPCS: load [1 x i32]* %[[a]] // rdar://12596507 struct s35 |

