tree-inline.c (remap_gimple_stmt): Cache gimple_block.
2019-03-26 Richard Biener <rguenther@suse.de> * tree-inline.c (remap_gimple_stmt): Cache gimple_block. (copy_debug_stmt): Likewise. (expand_call_inline): Likewise. (copy_bb): Avoid redundant lookup & set of gimple_block. * gimple-low.c (lower_gimple_return): Likewise. (lower_builtin_setjmp): Likewise. From-SVN: r269946
This commit is contained in:
parent
ecbb1530e3
commit
cf66c831c1
3 changed files with 18 additions and 12 deletions
|
@ -1,3 +1,12 @@
|
|||
2019-03-26 Richard Biener <rguenther@suse.de>
|
||||
|
||||
* tree-inline.c (remap_gimple_stmt): Cache gimple_block.
|
||||
(copy_debug_stmt): Likewise.
|
||||
(expand_call_inline): Likewise.
|
||||
(copy_bb): Avoid redundant lookup & set of gimple_block.
|
||||
* gimple-low.c (lower_gimple_return): Likewise.
|
||||
(lower_builtin_setjmp): Likewise.
|
||||
|
||||
2019-03-26 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
|
||||
|
|
|
@ -723,8 +723,8 @@ lower_gimple_return (gimple_stmt_iterator *gsi, struct lower_data *data)
|
|||
if (!optimize && gimple_has_location (stmt))
|
||||
DECL_ARTIFICIAL (tmp_rs.label) = 0;
|
||||
t = gimple_build_goto (tmp_rs.label);
|
||||
/* location includes block. */
|
||||
gimple_set_location (t, gimple_location (stmt));
|
||||
gimple_set_block (t, gimple_block (stmt));
|
||||
gsi_insert_before (gsi, t, GSI_SAME_STMT);
|
||||
gsi_remove (gsi, false);
|
||||
}
|
||||
|
@ -806,8 +806,8 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi)
|
|||
arg = build_addr (next_label);
|
||||
t = builtin_decl_implicit (BUILT_IN_SETJMP_SETUP);
|
||||
g = gimple_build_call (t, 2, gimple_call_arg (stmt, 0), arg);
|
||||
/* location includes block. */
|
||||
gimple_set_location (g, loc);
|
||||
gimple_set_block (g, gimple_block (stmt));
|
||||
gsi_insert_before (gsi, g, GSI_SAME_STMT);
|
||||
|
||||
/* Build 'DEST = 0' and insert. */
|
||||
|
@ -815,7 +815,6 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi)
|
|||
{
|
||||
g = gimple_build_assign (dest, build_zero_cst (TREE_TYPE (dest)));
|
||||
gimple_set_location (g, loc);
|
||||
gimple_set_block (g, gimple_block (stmt));
|
||||
gsi_insert_before (gsi, g, GSI_SAME_STMT);
|
||||
}
|
||||
|
||||
|
@ -832,7 +831,6 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi)
|
|||
t = builtin_decl_implicit (BUILT_IN_SETJMP_RECEIVER);
|
||||
g = gimple_build_call (t, 1, arg);
|
||||
gimple_set_location (g, loc);
|
||||
gimple_set_block (g, gimple_block (stmt));
|
||||
gsi_insert_before (gsi, g, GSI_SAME_STMT);
|
||||
|
||||
/* Build 'DEST = 1' and insert. */
|
||||
|
@ -841,7 +839,6 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi)
|
|||
g = gimple_build_assign (dest, fold_convert_loc (loc, TREE_TYPE (dest),
|
||||
integer_one_node));
|
||||
gimple_set_location (g, loc);
|
||||
gimple_set_block (g, gimple_block (stmt));
|
||||
gsi_insert_before (gsi, g, GSI_SAME_STMT);
|
||||
}
|
||||
|
||||
|
|
|
@ -1776,10 +1776,10 @@ remap_gimple_stmt (gimple *stmt, copy_body_data *id)
|
|||
}
|
||||
|
||||
/* If STMT has a block defined, map it to the newly constructed block. */
|
||||
if (gimple_block (copy))
|
||||
if (tree block = gimple_block (copy))
|
||||
{
|
||||
tree *n;
|
||||
n = id->decl_map->get (gimple_block (copy));
|
||||
n = id->decl_map->get (block);
|
||||
gcc_assert (n);
|
||||
gimple_set_block (copy, *n);
|
||||
}
|
||||
|
@ -1951,8 +1951,8 @@ copy_bb (copy_body_data *id, basic_block bb,
|
|||
GF_CALL_VA_ARG_PACK. */
|
||||
gimple_call_copy_flags (new_call, call_stmt);
|
||||
gimple_call_set_va_arg_pack (new_call, false);
|
||||
/* location includes block. */
|
||||
gimple_set_location (new_call, gimple_location (stmt));
|
||||
gimple_set_block (new_call, gimple_block (stmt));
|
||||
gimple_call_set_lhs (new_call, gimple_call_lhs (call_stmt));
|
||||
|
||||
gsi_replace (©_gsi, new_call, false);
|
||||
|
@ -2891,9 +2891,9 @@ copy_debug_stmt (gdebug *stmt, copy_body_data *id)
|
|||
tree t, *n;
|
||||
struct walk_stmt_info wi;
|
||||
|
||||
if (gimple_block (stmt))
|
||||
if (tree block = gimple_block (stmt))
|
||||
{
|
||||
n = id->decl_map->get (gimple_block (stmt));
|
||||
n = id->decl_map->get (block);
|
||||
gimple_set_block (stmt, n ? *n : id->block);
|
||||
}
|
||||
|
||||
|
@ -4589,7 +4589,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id)
|
|||
artificial decls inserted by the compiler itself. We need to
|
||||
either link the inlined blocks into the caller block tree or
|
||||
not refer to them in any way to not break GC for locations. */
|
||||
if (gimple_block (stmt))
|
||||
if (tree block = gimple_block (stmt))
|
||||
{
|
||||
/* We do want to assign a not UNKNOWN_LOCATION BLOCK_SOURCE_LOCATION
|
||||
to make inlined_function_outer_scope_p return true on this BLOCK. */
|
||||
|
@ -4601,7 +4601,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id)
|
|||
id->block = make_node (BLOCK);
|
||||
BLOCK_ABSTRACT_ORIGIN (id->block) = DECL_ORIGIN (fn);
|
||||
BLOCK_SOURCE_LOCATION (id->block) = loc;
|
||||
prepend_lexical_block (gimple_block (stmt), id->block);
|
||||
prepend_lexical_block (block, id->block);
|
||||
}
|
||||
|
||||
/* Local declarations will be replaced by their equivalents in this map. */
|
||||
|
|
Loading…
Add table
Reference in a new issue