https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84746

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is PRE inserted a PHI with a SSA name argument that is not available
there.  The reason is that

            constant = fully_constant_expression (expr);
...
                if (constant->kind != CONSTANT)
                  {
...
                        unsigned value_id = get_expr_value_id (constant);
                        constant = find_leader_in_sets (value_id, set1, set2,
                                                        AVAIL_OUT (pred));

is wrong in using the ANTIC sets to find a leader.  See the original fix I
pasted into PR84670.  This fix regresses some testcase(s) though
(gcc.dg/tree-ssa/pr35287.c at least).  Trying to recover with sth more clever
regressed sth else.  As the other fix (for the assert) fixed all testcases
I had I didn't pursue this further.

Looking again.

Reply via email to