Hello,
On Mon, Jan 12 2026, Kugan Vivekanandarajah wrote:
> Hi Martin,
> This patch seems to have broken one of the AutoFDO applications we
> have. I will see if I can create a standalone test. But, ….
This is most likely PR 123543 which I have just fixed.
[...]
>> @@ -1326,17 +1359,28 @@ intersect_argaggs_with (vec<ipa_argagg_value> &elts,
>> }
>>
>> /* Mark bot aggregate and scalar lattices as containing an unknown variable,
>> - return true is any of them has not been marked as such so far. */
>> + return true is any of them has not been marked as such so far. If if
>> + MAKE_SIMPLE_RECIPIENTS is true, set the lattices that can only hold one
>> + value to being recipients only, otherwise also set them to bottom. */
>>
>> static inline bool
>> -set_all_contains_variable (class ipcp_param_lattices *plats)
>> +set_all_contains_variable (class ipcp_param_lattices *plats,
>> + bool make_simple_recipients = false)
>> {
>> bool ret;
>> ret = plats->itself.set_contains_variable ();
>> ret |= plats->ctxlat.set_contains_variable ();
>> ret |= set_agg_lats_contain_variable (plats);
>> - ret |= plats->bits_lattice.set_to_bottom ();
>> - ret |= plats->m_value_range.set_to_bottom ();
>> + if (make_simple_recipients)
>> + {
>> + ret |= plats->bits_lattice.set_recipient_only ();
>> + ret |= plats->m_value_range.set_recipient_only ();
>> + }
>> + else
>> + {
>> + ret |= plats->bits_lattice.set_to_bottom ();
>> + ret |= plats->m_value_range.set_to_bottom ();
>> + }
>> return ret;
>> }
>
>
> Here, we seem to be treating m_recipient_only and bits_lattice
> separately. In this case, shouldn’t we set bits_lattice and
> m_value_range too for the case make_simple_recipients is true?
No, bottom is stronger than the new flag. The problem was a pasto when
testing the flag.
Sorry for the breakage,
Martin