From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1851) id A2C1B3858428; Mon, 8 Nov 2021 15:30:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A2C1B3858428 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Martin Liska To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/users/marxin/heads/loop-unswitching-switch-v5)] Simplify usage of rangers. X-Act-Checkin: gcc X-Git-Author: Martin Liska X-Git-Refname: refs/users/marxin/heads/loop-unswitching-switch-v5 X-Git-Oldrev: 0e261ebb4bc81f30a37195b69e8b39572aba8c35 X-Git-Newrev: 0534ab9eebb1900fc172e014a515c94119c411ac Message-Id: <20211108153039.A2C1B3858428@sourceware.org> Date: Mon, 8 Nov 2021 15:30:39 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Nov 2021 15:30:39 -0000 https://gcc.gnu.org/g:0534ab9eebb1900fc172e014a515c94119c411ac commit 0534ab9eebb1900fc172e014a515c94119c411ac Author: Martin Liska Date: Mon Nov 8 15:52:26 2021 +0100 Simplify usage of rangers. Diff: --- gcc/tree-ssa-loop-unswitch.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c index a509938c7d0..4b4bd471acd 100644 --- a/gcc/tree-ssa-loop-unswitch.c +++ b/gcc/tree-ssa-loop-unswitch.c @@ -383,29 +383,15 @@ tree_unswitch_single_loop (class loop *loop, int num) if (condition != NULL) { + tree result; int_range_max r; - edge edge_true, edge_false; - extract_true_false_edges_from_block (bbs[i], &edge_true, &edge_false); - tree cond = gimple_cond_lhs (stmt); - if (r.supports_type_p (TREE_TYPE (cond))) + if (ranger.range_of_stmt (r, stmt) && r.singleton_p (&result)) { - if (ranger.range_on_edge (r, edge_true, cond) - && r.undefined_p ()) - { - gimple_cond_set_condition_from_tree (condition, - boolean_false_node); - update_stmt (condition); - changed = true; - } - else if(ranger.range_on_edge (r, edge_false, gimple_cond_lhs (stmt)) - && r.undefined_p ()) - { - gimple_cond_set_condition_from_tree (condition, - boolean_true_node); - update_stmt (condition); - changed = true; - } + gimple_cond_set_condition_from_tree (condition, + result); + update_stmt (condition); + changed = true; } } else if (swtch != NULL)