From: Ju-Zhe Zhong Date: Mon, 9 Jan 2023 23:17:20 +0000 (+0800) Subject: RISC-V: Add probability model of each block to prevent endless loop of Phase 3 X-Git-Tag: basepoints/gcc-14~1792 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=acc10c793127d5683b19158fd89fd0d4f4fc9db0;p=thirdparty%2Fgcc.git RISC-V: Add probability model of each block to prevent endless loop of Phase 3 Notice that the PASS is just simpily pick the probability >= 50% to do the backward fusion which will create endless loop on Phase 3. Adding this probability to fix this bug. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (vector_infos_manager::vector_infos_manager): Add probability. (vector_infos_manager::dump): Ditto. (pass_vsetvl::compute_probabilities): Ditto. * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto. --- diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 2f9de9d20262..02bdfebbb584 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -1466,6 +1466,7 @@ vector_infos_manager::vector_infos_manager () vector_block_infos[bb->index ()].reaching_out = vector_insn_info (); for (insn_info *insn : bb->real_insns ()) vector_insn_infos[insn->uid ()].parse_insn (insn); + vector_block_infos[bb->index ()].probability = profile_probability (); } } } @@ -1643,6 +1644,8 @@ vector_infos_manager::dump (FILE *file) const } fprintf (file, "