diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2015-06-25 16:51:35 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2015-06-25 16:51:35 +0000 |
commit | 16a16ec7db0a5c626567b57ba49e09c4a5cccb76 (patch) | |
tree | 08270b7c9b79613ad264a52e14a5567e8d6dc4fb /gcc/function.c | |
parent | 9cad7a76c373e3e18c6d821a8848aae7dcb73675 (diff) | |
download | gcc-16a16ec7db0a5c626567b57ba49e09c4a5cccb76.zip gcc-16a16ec7db0a5c626567b57ba49e09c4a5cccb76.tar.gz gcc-16a16ec7db0a5c626567b57ba49e09c4a5cccb76.tar.bz2 |
function.h (struct incoming_args): Move struct.
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
* function.h (struct incoming_args): Move struct.
(pass_by_reference, reference_callee_copied): Remove prototypes.
* emit-rtl.h (struct incoming_args): Relocate struct here.
* calls.h (pass_by_reference, reference_callee_copied): Relocate
prototypes here.
* function.c (pass_by_reference, reference_callee_copied): Move.
* calls.c (pass_by_reference, reference_callee_copied): Relocate here.
* cfgloop.h: Don't include tm.h or hard-reg-set.h.
* ipa-chkp.c: Include calls.h.
* ada/gcc-interface/misc.c: Include calls.h not function.h.
* c-family/cilk.c: Move calls.h after tm.h in the include chain.
From-SVN: r224951
Diffstat (limited to 'gcc/function.c')
-rw-r--r-- | gcc/function.c | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/gcc/function.c b/gcc/function.c index ea0eba8..e746b3f 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -2169,49 +2169,6 @@ use_register_for_decl (const_tree decl) return true; } -/* Return true if TYPE should be passed by invisible reference. */ - -bool -pass_by_reference (CUMULATIVE_ARGS *ca, machine_mode mode, - tree type, bool named_arg) -{ - if (type) - { - /* If this type contains non-trivial constructors, then it is - forbidden for the middle-end to create any new copies. */ - if (TREE_ADDRESSABLE (type)) - return true; - - /* GCC post 3.4 passes *all* variable sized types by reference. */ - if (!TYPE_SIZE (type) || TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) - return true; - - /* If a record type should be passed the same as its first (and only) - member, use the type and mode of that member. */ - if (TREE_CODE (type) == RECORD_TYPE && TYPE_TRANSPARENT_AGGR (type)) - { - type = TREE_TYPE (first_field (type)); - mode = TYPE_MODE (type); - } - } - - return targetm.calls.pass_by_reference (pack_cumulative_args (ca), mode, - type, named_arg); -} - -/* Return true if TYPE, which is passed by reference, should be callee - copied instead of caller copied. */ - -bool -reference_callee_copied (CUMULATIVE_ARGS *ca, machine_mode mode, - tree type, bool named_arg) -{ - if (type && TREE_ADDRESSABLE (type)) - return false; - return targetm.calls.callee_copies (pack_cumulative_args (ca), mode, type, - named_arg); -} - /* Structures to communicate between the subroutines of assign_parms. The first holds data persistent across all parameters, the second is cleared out for each parameter. */ |