diff options
author | Ju-Zhe Zhong <juzhe.zhong@rivai.ai> | 2023-01-10 07:29:11 +0800 |
---|---|---|
committer | Kito Cheng <kito.cheng@sifive.com> | 2023-01-27 03:10:16 +0800 |
commit | 4f673c5ee287d73262ad9c1d59ca4d6db3809eef (patch) | |
tree | addc9f7a143c3e2ad178de7a962613899bd4ee18 /gcc/fortran | |
parent | acc10c793127d5683b19158fd89fd0d4f4fc9db0 (diff) | |
download | gcc-4f673c5ee287d73262ad9c1d59ca4d6db3809eef.zip gcc-4f673c5ee287d73262ad9c1d59ca4d6db3809eef.tar.gz gcc-4f673c5ee287d73262ad9c1d59ca4d6db3809eef.tar.bz2 |
RISC-V: Fix bugs of supporting AVL=REG (single-real-def) in VSETVL PASS
gcc/ChangeLog:
* config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
(real_insn_and_same_bb_p): New function.
(same_bb_and_after_or_equal_p): Remove it.
(before_p): New function.
(reg_killed_by_bb_p): Ditto.
(has_vsetvl_killed_avl_p): Ditto.
(get_vl): Move location so that we can call it.
(anticipatable_occurrence_p): Fix issue of AVL=REG support.
(available_occurrence_p): Ditto.
(dominate_probability_p): Remove it.
(can_backward_propagate_p): Remove it.
(get_all_nonphi_defs): New function.
(get_all_predecessors): Ditto.
(any_insn_in_bb_p): Ditto.
(insert_vsetvl): Adjust AVL REG.
(source_equal_p): New function.
(extract_single_source): Ditto.
(avl_info::single_source_equal_p): Ditto.
(avl_info::operator==): Adjust for AVL=REG.
(vl_vtype_info::same_avl_p): Ditto.
(vector_insn_info::set_demand_info): Remove it.
(vector_insn_info::compatible_p): Adjust for AVL=REG.
(vector_insn_info::compatible_avl_p): New function.
(vector_insn_info::merge): Adjust AVL=REG.
(vector_insn_info::dump): Ditto.
(pass_vsetvl::merge_successors): Remove it.
(enum fusion_type): New enum.
(pass_vsetvl::get_backward_fusion_type): New function.
(pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
(pass_vsetvl::forward_demand_fusion): Ditto.
(pass_vsetvl::demand_fusion): Ditto.
(pass_vsetvl::prune_expressions): Ditto.
(pass_vsetvl::compute_local_properties): Ditto.
(pass_vsetvl::cleanup_vsetvls): Ditto.
(pass_vsetvl::commit_vsetvls): Ditto.
(pass_vsetvl::init): Ditto.
* config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
(enum merge_type): New enum.
Diffstat (limited to 'gcc/fortran')
0 files changed, 0 insertions, 0 deletions