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~