public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Remove dead predicate analysis GENERIC expr building code
@ 2022-08-22 13:37 Richard Biener
  0 siblings, 0 replies; only message in thread
From: Richard Biener @ 2022-08-22 13:37 UTC (permalink / raw)
  To: gcc-patches

The following removes the unused def_expr, use_expr and expr APIs
from the predicate class including the unconditional build of the
GENERIC use_expr on each uninit analysis run.

Bootstrap & regtest running on x86_64-unknown-linux-gnu.

	* gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
	(predicate::def_expr): Likewise.
	(predicate::use_expr): Likewise.
	(predicate::expr): Likewise.
	* gimple-predicate-analysis.cc (predicate::def_expr): Remove.
	(predicate::use_expr): Likewise.
	(predicate::expr): Likewise.
	(predicate::is_use_guarded): Do not build m_use_expr.
---
 gcc/gimple-predicate-analysis.cc | 39 --------------------------------
 gcc/gimple-predicate-analysis.h  | 16 ++-----------
 2 files changed, 2 insertions(+), 53 deletions(-)

diff --git a/gcc/gimple-predicate-analysis.cc b/gcc/gimple-predicate-analysis.cc
index 820a9bde28a..d1b0d1283dc 100644
--- a/gcc/gimple-predicate-analysis.cc
+++ b/gcc/gimple-predicate-analysis.cc
@@ -1892,7 +1892,6 @@ predicate::is_use_guarded (gimple *use_stmt, basic_block use_bb,
 	  /* Lazily initialize *THIS from the PHI and build its use
 	     expression.  */
 	  init_from_phi_def (phi);
-	  m_use_expr = build_pred_expr (use_preds.m_preds);
 	}
 
       /* The use is not guarded.  */
@@ -1921,7 +1920,6 @@ predicate::is_use_guarded (gimple *use_stmt, basic_block use_bb,
       /* Lazily initialize *THIS from PHI.  */
       if (!init_from_phi_def (phi))
 	{
-	  m_use_expr = build_pred_expr (use_preds.m_preds);
 	  return false;
 	}
 
@@ -1938,8 +1936,6 @@ predicate::is_use_guarded (gimple *use_stmt, basic_block use_bb,
   if (superset_of (use_preds))
     return true;
 
-  m_use_expr = build_pred_expr (use_preds.m_preds);
-
   return false;
 }
 
@@ -2326,38 +2322,3 @@ predicate::init_from_control_deps (const vec<edge> *dep_chains,
     /* Clear M_PREDS to indicate failure.  */
     m_preds.release ();
 }
-
-/* Return the predicate expression guarding the definition of
-   the interesting variable.  When INVERT is set, return the logical
-   NOT of the predicate.  */
-
-tree
-predicate::def_expr (bool invert /* = false */) const
-{
-  /* The predicate is stored in an inverted form.  */
-  return build_pred_expr (m_preds, !invert);
-}
-
-/* Return the predicate expression guarding the use of the interesting
-   variable or null if the use predicate hasn't been determined yet.  */
-
-tree
-predicate::use_expr () const
-{
-  return m_use_expr;
-}
-
-/* Return a logical AND expression with the (optionally inverted) predicate
-   expression guarding the definition of the interesting variable and one
-   guarding its use.  Return null if the use predicate hasn't yet been
-   determined.  */
-
-tree
-predicate::expr (bool invert /* = false */) const
-{
-  if (!m_use_expr)
-    return NULL_TREE;
-
-  tree expr = build_pred_expr (m_preds, !invert);
-  return build2 (TRUTH_AND_EXPR, boolean_type_node, expr, m_use_expr);
-}
diff --git a/gcc/gimple-predicate-analysis.h b/gcc/gimple-predicate-analysis.h
index c1843e89bbb..204cdbccfc7 100644
--- a/gcc/gimple-predicate-analysis.h
+++ b/gcc/gimple-predicate-analysis.h
@@ -69,11 +69,11 @@ class predicate
 
   /* Construct with the specified EVAL object.  */
   predicate (func_t &eval)
-    : m_preds (vNULL), m_eval (eval), m_use_expr () { }
+    : m_preds (vNULL), m_eval (eval) { }
 
   /* Copy.  */
   predicate (const predicate &rhs)
-    : m_preds (vNULL), m_eval (rhs.m_eval), m_use_expr ()
+    : m_preds (vNULL), m_eval (rhs.m_eval)
     {
       *this = rhs;
     }
@@ -109,15 +109,6 @@ class predicate
   bool is_use_guarded (gimple *, basic_block, gphi *, unsigned,
 		       hash_set<gphi *> *);
 
-  /* Return the predicate expression guarding the definition of
-     the interesting variable, optionally inverted.  */
-  tree def_expr (bool = false) const;
-  /* Return the predicate expression guarding the use of the interesting
-     variable.  */
-  tree use_expr () const;
-
-  tree expr (bool = false) const;
-
 private:
   bool includes (const pred_chain &) const;
   bool superset_of (const predicate &) const;
@@ -145,9 +136,6 @@ private:
   pred_chain_union m_preds;
   /* Callback to evaluate an operand.  Return true if it's interesting.  */
   func_t &m_eval;
-  /* The predicate expression guarding the use of the interesting
-     variable.  */
-  tree m_use_expr;
 };
 
 /* Bit mask handling macros.  */
-- 
2.35.3

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-08-22 13:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-22 13:37 [PATCH] Remove dead predicate analysis GENERIC expr building code Richard Biener

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).