On 2015.07.06 at 14:40 +0200, Richard Biener wrote:
> 
> The intent (as I read it) of the iteration order in ssa_propagate is
> to process stmts in the following order:
> 
>  1) complete simulation of BBs from making one of their entries executable
>  2) simulation of stmts fed by stmts that changed to VARYING
>  3) simulation of the rest of stmts fed by stmts that changed their 
> lattice value
> 
> but the current implementation fails to enforce this order because it
> drains the full worklists before considering entries added to the
> others by simulating a statement.  This leads to quite some extra
> simulation with too optimistic values from not yet executable edges
> (just run into this while debugging PR66733).
> 
> The current state is that of the original propagator implementation
> in this area.
> 
> The patch cuts the number of visited stmts for the testcase in PR66773
> from 23 to 20 (it visits PHI nodes 3 times less).

This patch breaks LTO/PGO bootstrap, see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66801

-- 
Markus

Reply via email to