On Wed, Jan 04, 2023 at 05:20:14PM +0800, Kewen.Lin wrote:
> As Honza pointed out in [1], the current uses of function
> optimize_function_for_speed_p in rs6000_option_override_internal
> are too early, since the query results from the functions
> optimize_function_for_{speed,size}_p could be changed later due
> to profile feedback and some function attributes handlings etc.
>
> This patch is to move optimize_function_for_speed_p to all the
> use places of the corresponding flags, which follows the existing
> practices. Maybe we can cache it somewhere at an appropriate
> timing, but that's another thing.
> @@ -25604,7 +25602,9 @@ rs6000_call_aix (rtx value, rtx func_desc, rtx
> tlsarg, rtx cookie)
>
> /* Can we optimize saving the TOC in the prologue or
> do we need to do it at every call? */
> - if (TARGET_SAVE_TOC_INDIRECT && !cfun->calls_alloca)
> + if (TARGET_SAVE_TOC_INDIRECT
> + && !cfun->calls_alloca
> + && optimize_function_for_speed_p (cfun))
> cfun->machine->save_toc_in_prologue = true;
Is this correct? If so, it really needs a separate testcase.
The rest looks good. Thanks!
Segher