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/emit-rtl.h | |
parent | 9cad7a76c373e3e18c6d821a8848aae7dcb73675 (diff) |
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/emit-rtl.h')
-rw-r--r-- | gcc/emit-rtl.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h index cccb1acbdcb..f52c3357b9c 100644 --- a/gcc/emit-rtl.h +++ b/gcc/emit-rtl.h @@ -23,6 +23,36 @@ along with GCC; see the file COPYING3. If not see struct temp_slot; typedef struct temp_slot *temp_slot_p; +/* Information mainlined about RTL representation of incoming arguments. */ +struct GTY(()) incoming_args { + /* Number of bytes of args popped by function being compiled on its return. + Zero if no bytes are to be popped. + May affect compilation of return insn or of function epilogue. */ + int pops_args; + + /* If function's args have a fixed size, this is that size, in bytes. + Otherwise, it is -1. + May affect compilation of return insn or of function epilogue. */ + int size; + + /* # bytes the prologue should push and pretend that the caller pushed them. + The prologue must do this, but only if parms can be passed in + registers. */ + int pretend_args_size; + + /* This is the offset from the arg pointer to the place where the first + anonymous arg can be found, if there is one. */ + rtx arg_offset_rtx; + + /* Quantities of various kinds of registers + used for the current function's args. */ + CUMULATIVE_ARGS info; + + /* The arg pointer hard register, or the pseudo into which it was copied. */ + rtx internal_arg_pointer; +}; + + /* Datastructures maintained for currently processed function in RTL form. */ struct GTY(()) rtl_data { struct expr_status expr; |