aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-09-30 16:21:19 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-09-30 16:21:19 +0000
commit0ce77f463d1d150e70a91807502d628492ca7ae5 (patch)
treefff69a7a5884e5343e2f31969d911df27599af70 /gcc/reload1.c
parent30503f4ea491b9d6b9da00889155ecaa5d15cfb9 (diff)
downloadgcc-0ce77f463d1d150e70a91807502d628492ca7ae5.zip
gcc-0ce77f463d1d150e70a91807502d628492ca7ae5.tar.gz
gcc-0ce77f463d1d150e70a91807502d628492ca7ae5.tar.bz2
Remove global call sets: regrename.c
This patch makes regrename use a similar mask-and-clobber-set pair to IRA when tracking whether registers are clobbered by calls in a region. Testing for a nonzero ABI mask is equivalent to testing for a register that crosses a call. Since AArch64 and c6x use regrename.h, they need to be updated to include function-abi.h first. AIUI this is preferred over including function-abi.h in regrename.h. 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> gcc/ * regrename.h (du_head::call_clobber_mask): New field. (du_head::need_caller_save_reg): Replace with... (du_head::call_abis): ...this new field. * regrename.c: Include function-abi.h. (call_clobbered_in_chain_p): New function. (check_new_reg_p): Use crtl->abi when deciding whether a register is free for use after RA. Use call_clobbered_in_chain_p to test whether a candidate register would be clobbered by a call. (find_rename_reg): Don't add call-clobber conflicts here. (rename_chains): Check call_abis instead of need_caller_save_reg. (merge_chains): Update for changes to du_head. (build_def_use): Use insn_callee_abi to get the ABI of the call insn target. Record the ABI identifier in call_abis and the set of fully or partially clobbered registers in call_clobber_mask. Add fully-clobbered registers to hard_conflicts here rather than in find_rename_reg. * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h. (rename_single_chain): Check call_abis instead of need_caller_save_reg. * config/aarch64/falkor-tag-collision-avoidance.c: Include function-abi.h. * config/c6x/c6x.c: Likewise. From-SVN: r276332
Diffstat (limited to 'gcc/reload1.c')
0 files changed, 0 insertions, 0 deletions