diff options
author | Bin Cheng <bin.cheng@arm.com> | 2016-07-20 08:31:35 +0000 |
---|---|---|
committer | Bin Cheng <amker@gcc.gnu.org> | 2016-07-20 08:31:35 +0000 |
commit | 04ac4afa844abb88a4a3bddd9dbfe5572d38aea4 (patch) | |
tree | b72f80f3e28f1539a209eb9e94c9ae7de19f7c60 /gcc/tree-if-conv.c | |
parent | 21f8810377c9b62127df989e0d06b72eb0ae42d8 (diff) | |
download | gcc-04ac4afa844abb88a4a3bddd9dbfe5572d38aea4.zip gcc-04ac4afa844abb88a4a3bddd9dbfe5572d38aea4.tar.gz gcc-04ac4afa844abb88a4a3bddd9dbfe5572d38aea4.tar.bz2 |
re PR tree-optimization/71503 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "gen_phi_arg_condition")
PR tree-optimization/71503
PR tree-optimization/71683
* tree-if-conv.c (gen_phi_arg_condition): Record true predicate
and break.
gcc/testsuite
PR tree-optimization/71503
PR tree-optimization/71683
* gcc.dg/tree-ssa/ifc-pr71503.c: New test.
* gcc.dg/tree-ssa/ifc-pr71683.c: New test.
From-SVN: r238512
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index e5a3372..4253d19 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -1687,7 +1687,10 @@ gen_phi_arg_condition (gphi *phi, vec<int> *occur, e = gimple_phi_arg_edge (phi, (*occur)[i]); c = bb_predicate (e->src); if (is_true_predicate (c)) - continue; + { + cond = c; + break; + } c = force_gimple_operand_gsi_1 (gsi, unshare_expr (c), is_gimple_condexpr, NULL_TREE, true, GSI_SAME_STMT); |