diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2019-07-05 08:28:36 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2019-07-05 08:28:36 +0000 |
commit | ffdc40a90faec54d29af76b994c52790685a8e58 (patch) | |
tree | dfcc27a711785d7ec9afaeb709fc96338e4bb044 /gcc/tree-cfg.c | |
parent | 8d21ff6025652fa67085d94d5101cd699c57cf0b (diff) | |
download | gcc-ffdc40a90faec54d29af76b994c52790685a8e58.zip gcc-ffdc40a90faec54d29af76b994c52790685a8e58.tar.gz gcc-ffdc40a90faec54d29af76b994c52790685a8e58.tar.bz2 |
tree-cfg.c (gimple_make_forwarder_block): Propagate location info on phi nodes if possible.
* tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
phi nodes if possible.
* tree-scalar-evolution.c (final_value_replacement_loop): Propagate
location info on the newly created statement.
* tree-ssa-loop-manip.c (create_iv): Propagate location info on the
newly created increment if needed.
From-SVN: r273131
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index a585efe..0396aa9 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -5756,6 +5756,7 @@ gimple_make_forwarder_block (edge fallthru) basic_block dummy, bb; tree var; gphi_iterator gsi; + bool forward_location_p; dummy = fallthru->src; bb = fallthru->dest; @@ -5763,6 +5764,9 @@ gimple_make_forwarder_block (edge fallthru) if (single_pred_p (bb)) return; + /* We can forward location info if we have only one predecessor. */ + forward_location_p = single_pred_p (dummy); + /* If we redirected a branch we must create new PHI nodes at the start of BB. */ for (gsi = gsi_start_phis (dummy); !gsi_end_p (gsi); gsi_next (&gsi)) @@ -5774,7 +5778,8 @@ gimple_make_forwarder_block (edge fallthru) new_phi = create_phi_node (var, bb); gimple_phi_set_result (phi, copy_ssa_name (var, phi)); add_phi_arg (new_phi, gimple_phi_result (phi), fallthru, - UNKNOWN_LOCATION); + forward_location_p + ? gimple_phi_arg_location (phi, 0) : UNKNOWN_LOCATION); } /* Add the arguments we have stored on edges. */ |