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