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 [email protected] 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.