[Bug bootstrap/66801] [6 Regression] gcc miscompiled during PGO/LTO bootstrap
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jul 8 11:13:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66801
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Hmpf. Can't see why it should - I suppose the only "questionable" hunk _may_
be
+ /* Visit the statement only if its block is marked executable.
+ If it is not executable then it will be visited when we simulate
+ all statements in the block as soon as an incoming edge gets
+ marked executable. */
+ if (!bitmap_bit_p (executable_blocks, bb->index))
+ {
+ if (dump_file && (dump_flags & TDF_DETAILS))
+ {
+ fprintf (dump_file, "\nDropping statement from SSA worklist: ");
+ print_gimple_stmt (dump_file, stmt, 0, dump_flags);
+ }
+ continue;
...
+ simulate_stmt (stmt);
- /* PHI nodes are always visited, regardless of whether or not
- the destination block is executable. Otherwise, visit the
- statement only if its block is marked executable. */
- if (gimple_code (stmt) == GIMPLE_PHI
- || bitmap_bit_p (executable_blocks, bb->index))
- simulate_stmt (stmt);
+ return true;
Thus, does the following fix it? (I'd have to try reproducing it first)
Index: gcc/tree-ssa-propagate.c
===================================================================
--- gcc/tree-ssa-propagate.c (revision 225534)
+++ gcc/tree-ssa-propagate.c (working copy)
@@ -444,7 +444,8 @@ process_ssa_edge_worklist (vec<gimple> *
If it is not executable then it will be visited when we simulate
all statements in the block as soon as an incoming edge gets
marked executable. */
- if (!bitmap_bit_p (executable_blocks, bb->index))
+ if (gimple_code (stmt) != GIMPLE_PHI
+ && !bitmap_bit_p (executable_blocks, bb->index))
{
if (dump_file && (dump_flags & TDF_DETAILS))
{
not that I have an idea _why_ it should fix something.
More information about the Gcc-bugs
mailing list