Commit 7254364e by Alexandre Oliva Committed by Alexandre Oliva

re PR lto/44248 (-fcompare-debug failure with -flto/-fwhopr -g)

PR debug/44248
* lto-streamer-in.c (input_bb): Leave debug stmts alone.
(input_function): Drop them here, if VTA is disabled.

From-SVN: r161056
parent dedd9d05
2010-06-20 Alexandre Oliva <aoliva@redhat.com>
PR debug/44248
* lto-streamer-in.c (input_bb): Leave debug stmts alone.
(input_function): Drop them here, if VTA is disabled.
2010-06-20 Uros Bizjak <ubizjak@gmail.com>
PR target/44546
......
......@@ -1204,13 +1204,6 @@ input_bb (struct lto_input_block *ib, enum LTO_tags tag,
{
gimple stmt = input_gimple_stmt (ib, data_in, fn, tag);
/* Change debug stmts to nops on-the-fly if we do not have VTA enabled.
This allows us to build for example static libs with debugging
enabled and do the final link without. */
if (!MAY_HAVE_DEBUG_STMTS
&& is_gimple_debug (stmt))
stmt = gimple_build_nop ();
find_referenced_vars_in (stmt);
gsi_insert_after (&bsi, stmt, GSI_NEW_STMT);
......@@ -1370,11 +1363,26 @@ input_function (tree fn_decl, struct data_in *data_in,
stmts = (gimple *) xcalloc (gimple_stmt_max_uid (fn), sizeof (gimple));
FOR_ALL_BB (bb)
{
gimple_stmt_iterator bsi;
for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
gimple_stmt_iterator bsi = gsi_start_bb (bb);
while (!gsi_end_p (bsi))
{
gimple stmt = gsi_stmt (bsi);
stmts[gimple_uid (stmt)] = stmt;
/* If we're recompiling LTO objects with debug stmts but
we're not supposed to have debug stmts, remove them now.
We can't remove them earlier because this would cause uid
mismatches in fixups, but we can do it at this point, as
long as debug stmts don't require fixups. */
if (!MAY_HAVE_DEBUG_STMTS && is_gimple_debug (stmt))
{
gimple_stmt_iterator gsi = bsi;
gsi_next (&bsi);
gsi_remove (&gsi, true);
}
else
{
gsi_next (&bsi);
stmts[gimple_uid (stmt)] = stmt;
}
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment