> Hi.
> 
> Explanation of the patch is introduced.

thanks
> 
> >>
> >>        mask &= ~OPTION_MASK_ISA_64BIT;
> >>        if (mask == 0
> >>@@ -30670,6 +30673,14 @@ def_builtin_const (HOST_WIDE_INT mask, const char 
> >>*name,
> >>  static void
> >>  ix86_add_new_builtins (HOST_WIDE_INT isa)
> >>  {
> >>+  /* Last cached isa value.  */
> >>+  static HOST_WIDE_INT last_tested_isa_value = 0;
> >>+
> >>+  if ((isa & defined_isa_values) == 0 || isa == last_tested_isa_value)
> >
> >Heer you need to compare (isa & defined_isa_values) == (isa &
> >last_tested_isa_value) right, because we have isa flags that enable no
> >builtins.
> 
> I do not understand why, the guard simply ignores last value, which is 
> already processed and
> 'isa' with any intersection with defined_isa_values. Maybe I miss something?

I think you can also skip processing in cases ISA changed but the change has 
empty intersection with
defined_isa_values.

Honza

Reply via email to