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