Remove global call sets: postreload.c
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 30 Sep 2019 16:21:03 +0000 (16:21 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Mon, 30 Sep 2019 16:21:03 +0000 (16:21 +0000)
commit3df28f006a7ceaf958a9ce9d100dd1e266e18f26
treeebe1e2ff7e6b3f96657d2c4f32da863ed2ea8fa9
parenta1e6ee38e708ef2bdef4dfbb99473344bd56fa2f
Remove global call sets: postreload.c

The "|= fixed_regs" in reload_combine isn't necessary, since the
set is only used to determine which values have changed (rather than,
for example, which registers are available for use).

In reload_cse_move2add we can be accurate about which registers
are still available.  BLKmode indicates a continuation of the
previous register, and since clobbers_reg_p handles multi-register
values, it's enough to skip over BLKmode entries and just test the
start register.

2019-09-30  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* postreload.c (reload_combine_recognize_pattern): Use crtl->abi
when deciding whether a register is free for use after RA.
(reload_combine): Remove unnecessary use of fixed_reg_set.
(reload_cse_move2add): Use insn_callee_abi to get the ABI of the
call insn target.  Use reg_mode when testing whether a register
is no longer available.

From-SVN: r276328
gcc/ChangeLog
gcc/postreload.c