Skip to content
Snippets Groups Projects
Commit 0b0310e9 authored by Richard Sandiford's avatar Richard Sandiford Committed by Richard Sandiford
Browse files

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
parent 148909bc
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment