Using MEM_EXPR inside a call expression
Adam Nemet
anemet@caviumnetworks.com
Tue Sep 1 19:48:00 GMT 2009
Richard Henderson writes:
> On 08/28/2009 12:38 AM, Adam Nemet wrote:
> > ... To assist the linker we need to annotate the indirect call
> > with the function symbol.
> >
> > Since the call is expanded early...
>
> Having experimented with this on Alpha a few years back,
> the only thing I can suggest is to not expand them early.
>
> I use a combination of peep2's and normal splitters to
> determine if the post-call GP reload is needed, and to
> expand the call itself.
I see. So I guess you're saying that there is little chance to optimize the
loop I had in my previous email ;(.
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 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.
Adam
More information about the Gcc
mailing list