Bingfeng Mei wrote:
Steven,
I just created a bug report. You should receive a CCed mail now.
I can see these issues are solvable at RTL-level, but require lots of
efforts. The main optimization in loop unrolling pass, split iv, can
reduce dependence chain but not extra ADDs and alias issue. What is the
main reason that loop unrolling should belong to RTL level? Is it
fundamental?
No, it is just effectiveness of the code size expansion heuristics.
Ivopts is already complex enough on the tree level, that doing it on RTL
would be insane. But other low-level loop optimizations had already
been written on the RTL level and since there were no compelling
reasons, they were left there.
That said, this is a bug -- fwprop should have folded the ADDs, at the
very least. I'll look at the PR.
Paolo