aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-walk.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-04-19 12:13:04 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-04-19 12:13:04 +0000
commitd247f8e23afb71d88a38105d3bdc342b5ecd9edc (patch)
tree221ac9b3dfe9da860699b5550f4d105eeac0c368 /gcc/gimple-walk.c
parent987b67f17c8759c47f83732b9336fbe0795d2baf (diff)
downloadgcc-d247f8e23afb71d88a38105d3bdc342b5ecd9edc.zip
gcc-d247f8e23afb71d88a38105d3bdc342b5ecd9edc.tar.gz
gcc-d247f8e23afb71d88a38105d3bdc342b5ecd9edc.tar.bz2
gimple-walk.h (struct walk_stmt_info): Add stmt member.
2016-04-19 Richard Biener <rguenther@suse.de> * gimple-walk.h (struct walk_stmt_info): Add stmt member. * gimple-walk.c (walk_gimple_op): Initialize it. (walk_gimple_asm): Set wi->is_lhs before each callback invocation. * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when remapping SSA names of defs. (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT adjustment. From-SVN: r235190
Diffstat (limited to 'gcc/gimple-walk.c')
-rw-r--r--gcc/gimple-walk.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/gimple-walk.c b/gcc/gimple-walk.c
index 15cd842..be501c5 100644
--- a/gcc/gimple-walk.c
+++ b/gcc/gimple-walk.c
@@ -100,9 +100,6 @@ walk_gimple_asm (gasm *stmt, walk_tree_fn callback_op,
noutputs = gimple_asm_noutputs (stmt);
oconstraints = (const char **) alloca ((noutputs) * sizeof (const char *));
- if (wi)
- wi->is_lhs = true;
-
for (i = 0; i < noutputs; i++)
{
op = gimple_asm_output_op (stmt, i);
@@ -114,6 +111,8 @@ walk_gimple_asm (gasm *stmt, walk_tree_fn callback_op,
&allows_reg, &is_inout))
wi->val_only = (allows_reg || !allows_mem);
}
+ if (wi)
+ wi->is_lhs = true;
ret = walk_tree (&TREE_VALUE (op), callback_op, wi, NULL);
if (ret)
return ret;
@@ -182,6 +181,9 @@ walk_gimple_op (gimple *stmt, walk_tree_fn callback_op,
unsigned i;
tree ret = NULL_TREE;
+ if (wi)
+ wi->stmt = stmt;
+
switch (gimple_code (stmt))
{
case GIMPLE_ASSIGN: