Message ID | 20231102113023.2225297-1-juzhe.zhong@rivai.ai |
---|---|
State | New |
Headers | show |
Series | RISC-V: Fix bug of AVL propagation PASS | expand |
LGTM. Regards Robin
Committed, thanks Robin.
Pan
-----Original Message-----
From: Robin Dapp <rdapp.gcc@gmail.com>
Sent: Thursday, November 2, 2023 7:34 PM
To: Juzhe-Zhong <juzhe.zhong@rivai.ai>; gcc-patches@gcc.gnu.org
Cc: rdapp.gcc@gmail.com; kito.cheng@gmail.com; kito.cheng@sifive.com; jeffreyalaw@gmail.com
Subject: Re: [PATCH] RISC-V: Fix bug of AVL propagation PASS
LGTM.
Regards
Robin
diff --git a/gcc/config/riscv/riscv-avlprop.cc b/gcc/config/riscv/riscv-avlprop.cc index bec1e3c715a..1dfaa8742da 100644 --- a/gcc/config/riscv/riscv-avlprop.cc +++ b/gcc/config/riscv/riscv-avlprop.cc @@ -308,6 +308,13 @@ pass_avlprop::get_vlmax_ta_preferred_avl (insn_info *insn) const def_info *def2 = dl.prev_def (use_insn); if (!def1 || !def2 || def1 != def2) return NULL_RTX; + /* For vectorized codes, we always use SELECT_VL/MIN_EXPR to + calculate the loop len at the header of the loop. + We only allow AVL propagation for real instruction for now. + TODO: We may enhance it for intrinsic codes if it is necessary. + */ + if (!def1->insn ()->is_real ()) + return NULL_RTX; /* FIXME: We only all AVL propation within a block which should be totally enough for vectorized codes.