From: "Kewen.Lin" <linkw@linux.ibm.com>
To: Segher Boessenkool <segher@kernel.crashing.org>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>,
David Edelsohn <dje.gcc@gmail.com>,
Peter Bergner <bergner@linux.ibm.com>
Subject: Re: [PATCH] rs6000: Don't use optimize_function_for_speed_p too early [PR108184]
Date: Wed, 4 Jan 2023 20:15:03 +0800 [thread overview]
Message-ID: <d8498cbc-547e-eb04-6975-b400410d84d6@linux.ibm.com> (raw)
In-Reply-To: <20230104104648.GI25951@gate.crashing.org>
Hi Segher,
Thanks for the comments.
on 2023/1/4 18:46, Segher Boessenkool wrote:
> 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.
>
Yes, it just moves the condition from:
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -3978,8 +3978,7 @@ rs6000_option_override_internal (bool global_init_p)
/* If we can shrink-wrap the TOC register save separately, then use
-msave-toc-indirect unless explicitly disabled. */
if ((rs6000_isa_flags_explicit & OPTION_MASK_SAVE_TOC_INDIRECT) == 0
- && flag_shrink_wrap_separate
- && optimize_function_for_speed_p (cfun))
+ && flag_shrink_wrap_separate)
rs6000_isa_flags |= OPTION_MASK_SAVE_TOC_INDIRECT;
here.
I tried to find one test case before, but failed to find one which is not fragile
to test. And I thought the associated test case has demonstrated why the use of
optimize_function_for_{speed,size}_p is too early in function
rs6000_option_override_internal, so I gave up then. Do you worry about that we
could revert it unexpectedly in future and no sensitive test case is on it?
BR,
Kewen
next prev parent reply other threads:[~2023-01-04 12:15 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-04 9:20 Kewen.Lin
2023-01-04 10:46 ` Segher Boessenkool
2023-01-04 12:15 ` Kewen.Lin [this message]
2023-01-04 14:02 ` Segher Boessenkool
2023-01-05 4:04 ` Kewen.Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8498cbc-547e-eb04-6975-b400410d84d6@linux.ibm.com \
--to=linkw@linux.ibm.com \
--cc=bergner@linux.ibm.com \
--cc=dje.gcc@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=segher@kernel.crashing.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).