On Oct 30, 2024, Richard Biener <richard.guent...@gmail.com> wrote:

> As you are only doing bitmap_set_bit/bitmap_bit_p consider doing

>    bitmap_tree_view (used);

Ah, nice, I didn't know about this alternate representation.  Thanks.

> But we don't have any artificial limit on the number of stmts in the
> middle block, right?

Yeah, and I really expect that the count of SSA defs referenced by the
combined condition to be very low.  Only one file in an all-languages
bootstrap needs a third bit in USED for the cond, and no file uses more
than 4 bits in USED for all defs that might need moving.

OTOH, this one file in gm2 combines (_1 & _2) [!= 0] and (_1 & _3) into
((_2 | _3) & _1), and I suspect the _3 def that needs moving could be
arbitrarily complex.

I suppose there should be add some limit on how many stmts to move to
enable a combined cond, either a static limit, or some dynamic limit
based on costs and probabilities of moving vs remaining stmts.

-- 
Alexandre Oliva, happy hacker            https://FSFLA.org/blogs/lxo/
   Free Software Activist                   GNU Toolchain Engineer
More tolerance and less prejudice are key for inclusion and diversity
Excluding neuro-others for not behaving ""normal"" is *not* inclusive

Reply via email to