https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109535
Li Pan <pan2.li at intel dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pan2.li at intel dot com --- Comment #6 from Li Pan <pan2.li at intel dot com> --- (In reply to rsand...@gcc.gnu.org from comment #2) > The assert in question fires if the pass creates an instruction > whose pattern uses a register or memory and if the pass doesn't > provide associated use information. Let me know if it looks like > a bug in rtl-ssa rather than a bug in the vsetvl pass. Just sync with juzhe for the assertion failure. It tries to find the regno=8 in the shared_uses=[0, 66, 67] in function_info::finalize_new_accesses. And then it will hit the NOT_NULL assert. While in the pass_vsetvl::cleanup_insns, it will clean up the AVL use similar as below. AVL regno 8 Before Uses Reg Nums => [0,8,66,67,] After Uses Reg Nums => [0,66,67,] After vsetvl, the avl-related use, aka use Regno=8 will be removed, because the instruction pattern in RVV will eliminate the dependencies of the operand. Juzhe can help to correct me if any misleading or misunderstanding. Thanks.