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.

Reply via email to