diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2021-04-28 09:58:21 +0200 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2021-04-28 09:58:21 +0200 |
commit | b81e2d5e76a6bcc71f45b122e8b5538ddb7ebf4c (patch) | |
tree | 9b04e5b2651d3616fb939816ba80474e456e94de /gcc/ada/seh_init.c | |
parent | 852dd866e2faba95cb407c98d31a48b6aae66677 (diff) | |
download | gcc-b81e2d5e76a6bcc71f45b122e8b5538ddb7ebf4c.zip gcc-b81e2d5e76a6bcc71f45b122e8b5538ddb7ebf4c.tar.gz gcc-b81e2d5e76a6bcc71f45b122e8b5538ddb7ebf4c.tar.bz2 |
Get rid of useless temporary for call to pure function
This avoids creating a useless temporary for a call to a pure function with
good properties by using the RSO.
gcc/ada/
* gcc-interface/trans.c (is_array_of_scalar_type): New predicate.
(find_decls_r): New function.
(return_slot_opt_for_pure_call_p): New predicate.
(Call_to_gnu): Do not create a temporary for the return value if the
parent node is an aggregate. If there is a target, try to apply the
return slot optimization to regular calls to pure functions returning
an array of scalar type.
Diffstat (limited to 'gcc/ada/seh_init.c')
0 files changed, 0 insertions, 0 deletions