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

Reply via email to