diff options
author | Richard Biener <rguenther@suse.de> | 2020-01-08 12:49:14 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2020-01-08 12:49:14 +0000 |
commit | f74c4b2c4427a4309d48bfc45bc140422a75aa6f (patch) | |
tree | 00c928724e41d530bce13fae0581a715f2131583 /gcc/tree-ssa-loop-im.c | |
parent | d597b9445f0fddae407914e1497e3422e46ed15d (diff) | |
download | gcc-f74c4b2c4427a4309d48bfc45bc140422a75aa6f.zip gcc-f74c4b2c4427a4309d48bfc45bc140422a75aa6f.tar.gz gcc-f74c4b2c4427a4309d48bfc45bc140422a75aa6f.tar.bz2 |
re PR tree-optimization/93199 (Compile time hog in sink_clobbers)
2019-01-08 Richard Biener <rguenther@suse.de>
PR middle-end/93199
c/
* gimple-parser.c (c_parser_parse_gimple_body): Remove __PHI IFN
permanently.
* gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified.
* tree-ssa-loop-im.c (move_computations_worker): Properly adjust
virtual operand, also updating SSA use.
* gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
Update stmt after resetting virtual operand.
(tree_loop_interchange::move_code_to_inner_loop): Likewise.
* gimple-iterator.c (gsi_remove): When not removing the stmt
permanently do not delink immediate uses or mark the stmt modified.
From-SVN: r280000
Diffstat (limited to 'gcc/tree-ssa-loop-im.c')
-rw-r--r-- | gcc/tree-ssa-loop-im.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c index dd9df25..3e64ae7 100644 --- a/gcc/tree-ssa-loop-im.c +++ b/gcc/tree-ssa-loop-im.c @@ -1231,7 +1231,8 @@ move_computations_worker (basic_block bb) gphi *phi = gsi2.phi (); if (virtual_operand_p (gimple_phi_result (phi))) { - gimple_set_vuse (stmt, PHI_ARG_DEF_FROM_EDGE (phi, e)); + SET_USE (gimple_vuse_op (stmt), + PHI_ARG_DEF_FROM_EDGE (phi, e)); break; } } |