public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Andrew Pinski <pinskia@gcc.gnu.org>
To: gcc-cvs@gcc.gnu.org
Subject: [gcc r14-169] PHIOPT: Improve minmax diamond detection for phiopt1
Date: Sat, 22 Apr 2023 22:02:40 +0000 (GMT)	[thread overview]
Message-ID: <20230422220240.8F11E3857717@sourceware.org> (raw)

https://gcc.gnu.org/g:84325f1c6aa3c52600ff558c4cfd028ec07b076a

commit r14-169-g84325f1c6aa3c52600ff558c4cfd028ec07b076a
Author: Andrew Pinski <apinski@marvell.com>
Date:   Wed Apr 19 10:31:20 2023 -0700

    PHIOPT: Improve minmax diamond detection for phiopt1
    
    For diamond bb phi node detection, there is a check
    to make sure bb1 is not empty. But in the case where
    bb1 is empty except for a predicate, empty_block_p
    will still return true but the minmax code handles
    that case already so there is no reason to check
    if the basic block is empty.
    
    This patch removes that check and removes some
    xfails.
    
    OK? Bootstrapped and tested on x86_64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
            Remove check on empty_block_p.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.dg/tree-ssa/phi-opt-5.c: Remvoe some xfail.

Diff:
---
 gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c | 10 +++++-----
 gcc/tree-ssa-phiopt.cc                    |  3 +--
 2 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
index 5a00f3ddf8c..5f78a1ba6dc 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
@@ -16,9 +16,9 @@ float repl1 (float varx)
    varx_4 = MIN_EXPR <1.0e+0, varx_2>;
    varx_5 = MAX_EXPR <varx_4, 0.0>;  */  
 
-/* phiopt1 confused by predictors.  */
-/* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt1" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt1" { xfail *-*-* } } } */
+/* phiopt1 was confused by predictors.  */
+/* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt1" } } */
+/* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt1" } } */
 /* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt2"} } */
 /* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt2"} } */
 
@@ -38,7 +38,7 @@ float repl2 (float vary)
    vary_5 = MIN_EXPR <vary_4, 1.0e+0>;  */
 
 /* phiopt1 confused by predictors.  */
-/* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt1" } } */
 /* { dg-final { scan-tree-dump "vary.*MIN_EXPR.*1\\.0" "phiopt1" { xfail *-*-* } } } */
 /* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt2"} } */
 /* { dg-final { scan-tree-dump "vary.*MIN_EXPR.*1\\.0" "phiopt2"} } */
@@ -61,6 +61,6 @@ float repl3 (float varz, float vara, float varb)
   vara_6 = MAX_EXPR <varb_5, varz_2>;  */
 
 /* phiopt1 confused by predictors.  */
-/* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt1" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt1" } } */
 /* { dg-final { scan-tree-dump "if .*varz" "phiopt2"} } */
 /* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt2"} } */
diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc
index 945507be11e..8c5c8d8c250 100644
--- a/gcc/tree-ssa-phiopt.cc
+++ b/gcc/tree-ssa-phiopt.cc
@@ -209,8 +209,7 @@ tree_ssa_phiopt_worker (bool do_store_elim, bool do_hoist_loads, bool early_p)
 	    hoist_adjacent_loads (bb, bb1, bb2, bb3);
 	  continue;
 	}
-      else if (EDGE_SUCC (bb1, 0)->dest == EDGE_SUCC (bb2, 0)->dest
-	       && !empty_block_p (bb1))
+      else if (EDGE_SUCC (bb1, 0)->dest == EDGE_SUCC (bb2, 0)->dest)
 	{
 	  diamond_p = true;
 	  e2 = EDGE_SUCC (bb2, 0);

                 reply	other threads:[~2023-04-22 22:02 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230422220240.8F11E3857717@sourceware.org \
    --to=pinskia@gcc.gnu.org \
    --cc=gcc-cvs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).