aboutsummaryrefslogtreecommitdiff
path: root/gcc/input.h
diff options
context:
space:
mode:
authorLehua Ding <lehua.ding@rivai.ai>2024-02-02 10:35:37 +0800
committerLehua Ding <lehua.ding@rivai.ai>2024-04-24 17:36:34 +0800
commitcde1363042b2857111e461968a6367381d46c936 (patch)
tree87aebd412db5502c8f66f37869bd724a160ce960 /gcc/input.h
parentcf327312a72fe55d7e06a84bbae3d5de649a1ed3 (diff)
downloadgcc-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