https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89494

--- Comment #16 from Piotr Kubaj <pkubaj at anongoth dot pl> ---
634afa05a8cbff010480088811fe1f39eca70c1d is the first bad commit
commit 634afa05a8cbff010480088811fe1f39eca70c1d
Author: Richard Sandiford <richard.sandif...@arm.com>
Date:   Tue Aug 20 08:53:52 2019 +0000

    Make function.c use function_arg_info internally

    This patch adds a function_arg_info field to assign_parm_data_one,
    so that:

      - passed_type -> arg.type
      - promoted_mode -> arg.mode
      - named_arg -> arg.named

    We can then pass this function_arg_info directly to the converted
    hooks.

    Between the initialisation of the assign_parm_data_one and the
    application of promotion rules (which is a state internal to
    assign_parm_find_data_types), arg.mode is equivalent to passed_mode
    (i.e. to TYPE_MODE).

    2019-08-20  Richard Sandiford  <richard.sandif...@arm.com>

    gcc/
            * function.c (assign_parm_data_one): Replace passed_type,
            promoted_mode and named_arg with a function_arg_info field.
            (assign_parm_find_data_types): Remove local variables and
            assign directly to "data".  Make data->passed_mode shadow
            data->arg.mode until promotion, then assign the promoted
            mode to data->arg.mode.
            (assign_parms_setup_varargs, assign_parm_find_entry_rtl)
            (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl)
            (assign_parm_remove_parallels, assign_parm_setup_block_p)
            (assign_parm_setup_block, assign_parm_setup_reg)
            (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use
            arg.mode instead of promoted_mode, arg.type instead of passed_type
            and arg.named instead of named_arg.  Use data->arg for
            function_arg_info structures that had the field values passed_type,
            promoted_mode and named_arg.  Base other function_arg_infos on
            data->arg, changing the necessary properties.

    From-SVN: r274705

 gcc/ChangeLog  |  19 +++++++
 gcc/function.c | 168 +++++++++++++++++++++++++--------------------------------
 2 files changed, 92 insertions(+), 95 deletions(-)

Reply via email to