Hi!

On Mon, Jun 23, 2025 at 07:30:51PM +0530, Surya Kumari Jangala wrote:
> On 14/06/25 2:07 pm, Michael Meissner wrote:
> > @@ -119,6 +122,7 @@
> >                              | OPTION_MASK_FLOAT128_HW              \
> >                              | OPTION_MASK_FLOAT128_KEYWORD         \
> >                              | OPTION_MASK_FPRND                    \
> > +                            | OPTION_MASK_FUTURE                   \
> >                              | OPTION_MASK_POWER10                  \
> >                              | OPTION_MASK_POWER11                  \
> 
> Please add OPTION_MASK_FUTURE after OPTION_MASK_POWER11.

More in general, please do things so that when in the future we replace
"FUTURE" by some more permanent name, just a simple textual replavce is
all we need :-)  Not a lot more editing.

> > -/* Instruction costs on Power10/Power11 processors.  */
> > +/* Instruction costs on Power10/Power11/future processors.  */
> >  static const
> >  struct processor_costs power10_cost = {

"Power10 and later".

> > @@ -18812,6 +18821,7 @@ rs6000_issue_rate (void)
> >      return 6;
> >    case PROCESSOR_POWER10:
> >    case PROCESSOR_POWER11:
> > +  case PROCESSOR_FUTURE:
> >      return 8;

Is that okay at all?  For p10 already?

It's not what the hardware does, but if it produces better results,
well, that is all that matters in the end eh!

> > -  /* Do Power10/Power11 dependent reordering.  */
> > +  /* Do Power10/Power11/future dependent reordering.  */

Is that useful at all?

If for now we want to force p10/p11 scheduling for Future CPUs, we can
force that directly much easier, instead of claiming that Future has
all the same scheduling characteristics as p10/p11!

(We can just do something like
    /* For now, use p11 scheduling for Future CPUS.  */
    if (rs6000_tune == PROCESSOR_FUTURE)
      rs6000_tune = PROCESSOR_POWER11);
in som well-chosen place).

> > --- a/gcc/config/rs6000/rs6000.h
> > +++ b/gcc/config/rs6000/rs6000.h
> > @@ -101,6 +101,7 @@
> >     you make changes here, make them also there.  */
> >  #define ASM_CPU_SPEC \
> >  "%{mcpu=native: %(asm_cpu_native); \
> > +  mcpu=future: -mfuture; \

That latter flag should not exist at all.

> > +;; Users should not use -mfuture, but we need to use a bit to identify when
> > +;; the user changes the default cpu via  #pragma GCC target("cpu=future")
> > +;; and then resets it later.

There are better ways to see the differences.  By looking at actual
differences for example, or just seeing if rs6000_cpu changes.

> > +mfuture
> > +Target Undocumented Mask(FUTURE) Var(rs6000_isa_flags) WarnRemoved

It should obviously not be "WarnRemoved".  It did not exist in the past,
so how can it be removed now?


Segher

Reply via email to