From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1075) id D4F133858D1E; Wed, 28 Jun 2023 07:35:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D4F133858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687937741; bh=NwdulJbl1H/MY8L43cX0FGdiYn4t8LuOlEvjAOS+vzk=; h=From:To:Subject:Date:From; b=XDdUdIDvQXvo0/aRwLNhN1mFkdZpFaie6CDjLfO7JH42lqpDeiG8K5RN4xxkzrW0z hlkSNeyyUH/83tvHUaqGBk3iltNw+bZv0ZU098Z894vAG7APjlSJeugCcp26diuhep 5iYl6r8j5Yv/q0/rCnkvZASPyBQvP8wJ05Q9DcYQ= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jan Hubicka To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-2152] Enable ranger for ipa-prop X-Act-Checkin: gcc X-Git-Author: Jan Hubicka X-Git-Refname: refs/heads/master X-Git-Oldrev: 857e1f93ff8e3b93a7a3dcca9e50fe32a4c93950 X-Git-Newrev: 7198573f44fb579843bff8deda695107858d8cff Message-Id: <20230628073541.D4F133858D1E@sourceware.org> Date: Wed, 28 Jun 2023 07:35:41 +0000 (GMT) List-Id: https://gcc.gnu.org/g:7198573f44fb579843bff8deda695107858d8cff commit r14-2152-g7198573f44fb579843bff8deda695107858d8cff Author: Jan Hubicka Date: Wed Jun 28 09:34:53 2023 +0200 Enable ranger for ipa-prop gcc/ChangeLog: PR tree-optimization/110377 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Pass statement to the ranger query. (ipa_analyze_node): Enable ranger. gcc/testsuite/ChangeLog: PR tree-optimization/110377 * gcc.dg/ipa/pr110377.c: New test. Diff: --- gcc/ipa-prop.cc | 6 ++++-- gcc/testsuite/gcc.dg/ipa/pr110377.c | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc index 41c812194ca..33bda8288fc 100644 --- a/gcc/ipa-prop.cc +++ b/gcc/ipa-prop.cc @@ -2386,7 +2386,7 @@ ipa_compute_jump_functions_for_edge (struct ipa_func_body_info *fbi, if (TREE_CODE (arg) == SSA_NAME && param_type - && get_range_query (cfun)->range_of_expr (vr, arg) + && get_range_query (cfun)->range_of_expr (vr, arg, cs->call_stmt) && vr.nonzero_p ()) addr_nonzero = true; else if (tree_single_nonzero_warnv_p (arg, &strict_overflow)) @@ -2408,7 +2408,7 @@ ipa_compute_jump_functions_for_edge (struct ipa_func_body_info *fbi, && Value_Range::supports_type_p (param_type) && irange::supports_p (TREE_TYPE (arg)) && irange::supports_p (param_type) - && get_range_query (cfun)->range_of_expr (vr, arg) + && get_range_query (cfun)->range_of_expr (vr, arg, cs->call_stmt) && !vr.undefined_p ()) { Value_Range resvr (vr); @@ -3190,7 +3190,9 @@ ipa_analyze_node (struct cgraph_node *node) bi->cg_edges.safe_push (cs); } + enable_ranger (cfun, false); analysis_dom_walker (&fbi).walk (ENTRY_BLOCK_PTR_FOR_FN (cfun)); + disable_ranger (cfun); ipa_release_body_info (&fbi); free_dominance_info (CDI_DOMINATORS); diff --git a/gcc/testsuite/gcc.dg/ipa/pr110377.c b/gcc/testsuite/gcc.dg/ipa/pr110377.c new file mode 100644 index 00000000000..63120a97bd0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ipa/pr110377.c @@ -0,0 +1,16 @@ +/* { dg-do compile */ +/* { dg-options "-O2 -fdump-ipa-cp" } */ +int test3(int); +__attribute__ ((noinline)) +void test2(int a) +{ + test3(a); +} +void +test(int n) +{ + if (n > 5) + __builtin_unreachable (); + test2(n); +} +/* { dg-final { scan-ipa-dump "-INF, 5" "cp" } } */