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