diff options
author | Lehua Ding <lehua.ding@rivai.ai> | 2024-02-02 10:35:37 +0800 |
---|---|---|
committer | Lehua Ding <lehua.ding@rivai.ai> | 2024-04-24 17:36:34 +0800 |
commit | cde1363042b2857111e461968a6367381d46c936 (patch) | |
tree | 87aebd412db5502c8f66f37869bd724a160ce960 /gcc/input.h | |
parent | cf327312a72fe55d7e06a84bbae3d5de649a1ed3 (diff) | |
download | gcc-devel/subreg-coalesce.zip gcc-devel/subreg-coalesce.tar.gz gcc-devel/subreg-coalesce.tar.bz2 |
lra: Apply DF_LIVE_SUBREG datadevel/subreg-coalesce
This patch apply the DF_LIVE_SUBREG to LRA pass. More changes were made
to the LRA than the IRA since the LRA will modify the DF data directly.
The main big changes are centered on the lra-lives.cc file.
gcc/ChangeLog:
* lra-coalesce.cc (update_live_info): Extend to DF_LIVE_SUBREG.
(lra_coalesce): Ditto.
* lra-constraints.cc (update_ebb_live_info): Ditto.
(get_live_on_other_edges): Ditto.
(inherit_in_ebb): Ditto.
(lra_inheritance): Ditto.
(fix_bb_live_info): Ditto.
(remove_inheritance_pseudos): Ditto.
* lra-int.h (GCC_LRA_INT_H): include subreg-live-range.h
(struct lra_insn_reg): Add op filed to record the corresponding rtx.
* lra-lives.cc (class bb_data_pseudos): Extend the bb_data_pseudos to
include new partial_def/use and range_def/use fileds for DF_LIVE_SUBREG
problem.
(need_track_subreg_p): checking is the regno need to be tracked.
(make_hard_regno_live): switch to live_subreg filed.
(make_hard_regno_dead): Ditto.
(mark_regno_live): Support record subreg liveness.
(mark_regno_dead): Ditto.
(live_trans_fun): Adjust transfer function to support subreg liveness.
(live_con_fun_0): Adjust Confluence function to support subreg liveness.
(live_con_fun_n): Ditto.
(initiate_live_solver): Ditto.
(finish_live_solver): Ditto.
(process_bb_lives): Ditto.
(lra_create_live_ranges_1): Dump subreg liveness.
* lra-remat.cc (dump_candidates_and_remat_bb_data): Switch to
DF_LIVE_SUBREG df data.
(calculate_livein_cands): Ditto.
(do_remat): Ditto.
* lra-spills.cc (spill_pseudos): Ditto.
* lra.cc (new_insn_reg): New argument op.
(add_regs_to_insn_regno_info): Add new argument op.
Diffstat (limited to 'gcc/input.h')
0 files changed, 0 insertions, 0 deletions