This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 06/18/14 04:42, Richard Biener wrote:
Sounds good. I've always believed that each pass should be bubbling back up some kind of status about what it did/found as well.The following aims at reducing the number of pointless passes we run on functions containing no loops. Those are at least two copyprop and one dce pass (two dce passes when vectorization is enabled, three dce passes and an additional copyprop pass when any graphite optimization is enabled). Simply gating pass_tree_loop on number_of_loops () > 1 would disable basic-block vectorization on loopless functions. Moving basic-block vectorization out of pass_tree_loop works to the extent that you'd need to move IVOPTs as well as data-ref analysis cannot cope with TARGET_MEM_REFs. So the following introduces a pass_tree_no_loop pass group which is enabled whenever the pass_tree_loop group is disabled. As followup this would allow to skip cleanup work we do after the loop pipeline just to cleanup after it. Any comments? Does such followup sound realistic or would it be better to take the opportunity to move IVOPTs a bit closer to RTL expansion and avoid that "pass_tree_no_loop hack"?
It was more of an RTL issue, but we had a certain commercial testsuite which created large loopless tests (*) that consumed vast quantities of wall clock time. I always wanted the RTL loop passes to signal back to toplev.c that no loops were found, which would in turn be used to say "we really don't need cse-after-loop and friends". It's certainly more complex these days, but I'd still like to be able to do such things.
Regardless, that's well outside the scope of what you're trying to accomplish.
* Those tests consistently found port bugs, so we really didn't want to disable them.
jeff
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |