-
- Downloads
Remove global REG_SETs
We currently maintain global REG_SET versions of fixed_reg_set and regs_invalidated_by_call. With bitmap_view, we can instead operate directly on the underlying HARD_REG_SETs, avoiding the need to keep the two pieces of data in sync. I have a series of patches that removes the assumption that there's a single global ABI for all functions in the translation unit, which includes not relying on having a global regs_invalidated_by_call. Removing the REG_SET equivalent is one step to doing that. Note that the affected DF code is used for EH edges or dumping only, so shouldn't be performance critical. 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> gcc/ * regset.h (regs_invalidated_by_call_regset): Delete. (fixed_reg_set_regset): Likewise. * reginfo.c (regs_invalidated_by_call_regset): Likewise. (fixed_reg_set_regset, persistent_obstack): Likewise. (init_reg_sets_1, globalize_reg): Update accordingly. * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap instead of a bitmap. * df-core.c (df_print_regset, df_print_word_regset): Likewise. * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call instead of regs_invalidated_by_call_regset. (df_lr_confluence_n, df_md_confluence_n): Likewise. * df-scan.c (df_scan_start_dump): Likewise. * dse.c (copy_fixed_regs): Likewise. * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise. From-SVN: r275537
Showing
- gcc/ChangeLog 17 additions, 0 deletionsgcc/ChangeLog
- gcc/config/sh/sh.c 1 addition, 1 deletiongcc/config/sh/sh.c
- gcc/df-core.c 2 additions, 2 deletionsgcc/df-core.c
- gcc/df-problems.c 11 additions, 9 deletionsgcc/df-problems.c
- gcc/df-scan.c 1 addition, 1 deletiongcc/df-scan.c
- gcc/df.h 2 additions, 2 deletionsgcc/df.h
- gcc/dse.c 1 addition, 1 deletiongcc/dse.c
- gcc/reginfo.c 4 additions, 38 deletionsgcc/reginfo.c
- gcc/regset.h 0 additions, 8 deletionsgcc/regset.h
Loading
Please register or sign in to comment