This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Using MEM_EXPR inside a call expression
- From: Richard Henderson <rth at redhat dot com>
- To: Adam Nemet <anemet at caviumnetworks dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Tue, 01 Sep 2009 13:46:13 -0700
- Subject: Re: Using MEM_EXPR inside a call expression
- References: <CAEXCH01FGT7NNVlW2000003d00@caexch01.caveonetworks.com> <4A9D4A30.1040706@redhat.com> <19101.31379.70330.593500@ropi.home>
On 09/01/2009 12:48 PM, Adam Nemet wrote:
I see. So I guess you're saying that there is little chance to optimize the
loop I had in my previous email ;(.
Not at the rtl level. Gimple-level loop splitting should do it though.
Now suppose we split late, shouldn't we still assume that data-flow can change
later. IOW, wouldn't we be required to use the literal/lituse counting that
alpha does?
If you split post-reload, data flow isn't going to change
in any significant way.
If yes then I guess it's still better to use MEM_EXPR. MEM_EXPR also has the
benefit that it does not deem indirect calls as different when cross-jumping
compares the insns. I don't know how important this is though.
It depends on how much benefit you get from the direct
branch. On alpha it's quite a bit, so we work hard to
make sure that we can get one, if at all possible.
r~