GCC Wikia




111 struct expr_status GTY(())
112 {
 113   /* Number of units that we should eventually pop off the stack.
 114      These are the arguments to function calls that have already returned.  */
115   int x_pending_stack_adjust;
 117   /* Under some ABIs, it is the caller's responsibility to pop arguments
 118      pushed for function calls.  A naive implementation would simply pop
 119      the arguments immediately after each call.  However, if several
 120      function calls are made in a row, it is typically cheaper to pop
 121      all the arguments after all of the calls are complete since a
 122      single pop instruction can be used.  Therefore, GCC attempts to
 123      defer popping the arguments until absolutely necessary.  (For
 124      example, at the end of a conditional, the arguments must be popped,
 125      since code outside the conditional won't know whether or not the
 126      arguments need to be popped.)
 128      When INHIBIT_DEFER_POP is nonzero, however, the compiler does not
 129      attempt to defer pops.  Instead, the stack is popped immediately
 130      after each call.  Rather then setting this variable directly, use
 131      NO_DEFER_POP and OK_DEFER_POP.  */
132   int x_inhibit_defer_pop;
 134   /* If PREFERRED_STACK_BOUNDARY and PUSH_ROUNDING are defined, the stack
 135      boundary can be momentarily unaligned while pushing the arguments.
 136      Record the delta since last aligned boundary here in order to get
 137      stack alignment in the nested function calls working right.  */
138   int x_stack_pointer_delta;
 140   /* Nonzero means __builtin_saveregs has already been done in this function.
 141      The value is the pseudoreg containing the value __builtin_saveregs
 142      returned.  */
143   rtx x_saveregs_value;
 145   /* Similarly for __builtin_apply_args.  */
146   rtx x_apply_args_value;
 148   /* List of labels that must never be deleted.  */
149   rtx x_forced_labels;
150 };