diff options
author | Ilya Enkovich <ilya.enkovich@intel.com> | 2016-05-11 09:33:13 +0000 |
---|---|---|
committer | Ilya Enkovich <ienkovich@gcc.gnu.org> | 2016-05-11 09:33:13 +0000 |
commit | 98ccd1d7ab1d9a0c99cce0d1c05ddcda3659dd26 (patch) | |
tree | 657c8e39976aa859a7d94e2cef8b61ccbd529176 /gcc/cfgrtl.c | |
parent | ed29e24b8bae184e7f3f3e92afb57aa8767659be (diff) | |
download | gcc-98ccd1d7ab1d9a0c99cce0d1c05ddcda3659dd26.zip gcc-98ccd1d7ab1d9a0c99cce0d1c05ddcda3659dd26.tar.gz gcc-98ccd1d7ab1d9a0c99cce0d1c05ddcda3659dd26.tar.bz2 |
re PR middle-end/70807 (fwprop pass ICE with incoming CDI_DOMINATORS)
gcc/
PR middle-end/70807
* cfgrtl.h (delete_insn_and_edges): Now return bool.
* cfgrtl.c (delete_insn_and_edges): Likewise.
* config/i386/i386.c (convert_scalars_to_vector): Remove
redundant code.
* cse.c (cse_insn): Compute cse_cfg_altered.
(delete_trivially_dead_insns): Likewise.
(cse_cc_succs): Likewise.
(rest_of_handle_cse): Free dominance info if required.
(rest_of_handle_cse2): Likewise.
(rest_of_handle_cse_after_global_opts): Likewise.
gcc/testsuite/
PR middle-end/70807
* gcc.dg/pr70807.c: New test.
From-SVN: r236114
Diffstat (limited to 'gcc/cfgrtl.c')
-rw-r--r-- | gcc/cfgrtl.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c index 62b0596..3d8ed60 100644 --- a/gcc/cfgrtl.c +++ b/gcc/cfgrtl.c @@ -215,9 +215,10 @@ delete_insn (rtx uncast_insn) } } -/* Like delete_insn but also purge dead edges from BB. */ +/* Like delete_insn but also purge dead edges from BB. + Return true if any edges are eliminated. */ -void +bool delete_insn_and_edges (rtx_insn *insn) { bool purge = false; @@ -228,7 +229,8 @@ delete_insn_and_edges (rtx_insn *insn) purge = true; delete_insn (insn); if (purge) - purge_dead_edges (BLOCK_FOR_INSN (insn)); + return purge_dead_edges (BLOCK_FOR_INSN (insn)); + return false; } /* Unlink a chain of insns between START and FINISH, leaving notes |