On 12/15/2017 09:45 AM, Jakub Jelinek wrote: > On Fri, Dec 15, 2017 at 09:19:14AM -0700, Jeff Law wrote: >> + /* Loop parallelization can be confused by the result of >> + threading through the loop exit test back into the loop. >> + However, theading those jumps seems to help other codes. >> + >> + I have been unable to find anything related to the shape of >> + the CFG, the contents of the affected blocks, etc which would >> + allow a more sensible test than what we're using below which >> + merely avoids the optimization when parallelizing loops. */ >> + if (flag_tree_parallelize_loops > 1) > > Is there no jump threading (dom or vrp) after the parloops pass? > If there is, it would be nice to only do this if the parloops pass > has not been invoked yet. That's precisely how it works -- there's an pre-existing guard.
So prior to the loop optimizers, we're conservative about potentially mucking up the loop structure. After the loop optimizers we allow more aggressive threading. JEff