On 4/8/25 13:47, Vineet Gupta wrote:
> On 4/8/25 12:27, Robin Dapp wrote:
>>>>> Yay ! It does work. Awesome.
>>>>> I've uploaded the further reduced test to PR/119533
>>>> Hmm, I'm seeing the same ICE as before with my patch.  Did you happen to 
>>>> change 
>>>> something else on your local tree still?
> Yeah I had some debug stuff lying around. In particular it is missing the
> initializer for kill bitmap.
>
> @@ -2698,6 +2713,7 @@ pre_vsetvl::compute_lcm_local_properties ()
>    m_avout = sbitmap_vector_alloc (last_basic_block_for_fn (cfun), num_exprs);
>  
>    bitmap_vector_clear (m_avloc, last_basic_block_for_fn (cfun));
> +  bitmap_vector_clear (m_kill, last_basic_block_for_fn (cfun));
>    bitmap_vector_clear (m_antloc, last_basic_block_for_fn (cfun));
>    bitmap_vector_ones (m_transp, last_basic_block_for_fn (cfun));
>
>
>>> On top, I'm now seeing a ton of vsetvl test failures vs just the one I 
>>> reported...  No idea what I have been testing before.  Grml.
> From your inline diff (with "!= 1" as cue) , I'd placed the check as follows
>
>       if (!curr_info.valid_p ()
>           || eg->probability == profile_probability::never ()
>           || src_block_info.probability
>            == profile_probability::uninitialized ()
>           /* When multiple set bits in earliest edge, such edge may
>          have infinite loop in preds or succs or multiple conflict
>          vsetvl expression which make such edge is unrelated.  We
>          don't perform fusion for such situation.  */
>           || bitmap_count_bits (e) != 1)
>         continue;
>
> +      if (!bitmap_bit_p (m_transp[eg->src->index], expr_index))
> +        continue;
>
> With both of above changes both go tests passed in the morning.
>
>> Ah, of course the check was intended to be inside src_block_info.empty_p () 
>> and 
>> not outside.  That gets rid of the test failures.  But the go tests still 
>> ICE 
>> for me, one way or another.
> Now I moved the bitmap check further down inside src_block_info.empty_p () and
> both tests still pass.
> So looks like the kill bitmap init is essential as well.

Doh ! Something is weird, I did a clean everything and now I see the issues
still and it seems for baseline build, prinstine trunk is hitting ICE on glibc
build as of

     2025-04-08 0980a6ff7ae3 Daily bump.

Let me untangle my testing first.

-Vineet

Reply via email to