diff mbox series

[3/3] gimple: Simplify gimple_seq_nondebug_singleton_p

Message ID 20240923034750.718980-3-quic_apinski@quicinc.com
State New
Headers show
Series [1/3] Remove commented out PHI_ARG_DEF macro defition | expand

Commit Message

Andrew Pinski Sept. 23, 2024, 3:47 a.m. UTC
The implementation of gimple_seq_nondebug_singleton_p
was convoluted on how to determine if the sequence
was a singleton (which could contain debug statements).

This simplifies the function into two calls. One to get the start
after all of the debug statements and then check to see if it
is at the one before the end (or there is only debug statements
afterwards).

Bootstrapped and tested on x86_64-linux-gnu (including ada).

gcc/ChangeLog:

	* gimple-iterator.h (gimple_seq_nondebug_singleton_p):
	Rewrite to be simplely, gsi_start_nondebug/gsi_one_nondebug_before_end_p.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
 gcc/gimple-iterator.h | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)

Comments

Richard Biener Sept. 23, 2024, 7:14 a.m. UTC | #1
On Mon, Sep 23, 2024 at 5:48 AM Andrew Pinski <quic_apinski@quicinc.com> wrote:
>
> The implementation of gimple_seq_nondebug_singleton_p
> was convoluted on how to determine if the sequence
> was a singleton (which could contain debug statements).
>
> This simplifies the function into two calls. One to get the start
> after all of the debug statements and then check to see if it
> is at the one before the end (or there is only debug statements
> afterwards).
>
> Bootstrapped and tested on x86_64-linux-gnu (including ada).

OK

> gcc/ChangeLog:
>
>         * gimple-iterator.h (gimple_seq_nondebug_singleton_p):
>         Rewrite to be simplely, gsi_start_nondebug/gsi_one_nondebug_before_end_p.
>
> Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
> ---
>  gcc/gimple-iterator.h | 23 ++---------------------
>  1 file changed, 2 insertions(+), 21 deletions(-)
>
> diff --git a/gcc/gimple-iterator.h b/gcc/gimple-iterator.h
> index 501f0549d92..97176d639d9 100644
> --- a/gcc/gimple-iterator.h
> +++ b/gcc/gimple-iterator.h
> @@ -430,28 +430,9 @@ gsi_seq (gimple_stmt_iterator i)
>  inline bool
>  gimple_seq_nondebug_singleton_p (gimple_seq seq)
>  {
> -  gimple_stmt_iterator gsi;
> -
> -  /* Find a nondebug gimple.  */
> -  gsi.ptr = gimple_seq_first (seq);
> -  gsi.seq = &seq;
> -  gsi.bb = NULL;
> -  while (!gsi_end_p (gsi)
> -        && is_gimple_debug (gsi_stmt (gsi)))
> -    gsi_next (&gsi);
> -
> -  /* No nondebug gimple found, not a singleton.  */
> -  if (gsi_end_p (gsi))
> -    return false;
> -
> -  /* Find a next nondebug gimple.  */
> -  gsi_next (&gsi);
> -  while (!gsi_end_p (gsi)
> -        && is_gimple_debug (gsi_stmt (gsi)))
> -    gsi_next (&gsi);
> +  gimple_stmt_iterator gsi = gsi_start_nondebug (seq);
>
> -  /* Only a singleton if there's no next nondebug gimple.  */
> -  return gsi_end_p (gsi);
> +  return gsi_one_nondebug_before_end_p (gsi);
>  }
>
>  #endif /* GCC_GIMPLE_ITERATOR_H */
> --
> 2.34.1
>
diff mbox series

Patch

diff --git a/gcc/gimple-iterator.h b/gcc/gimple-iterator.h
index 501f0549d92..97176d639d9 100644
--- a/gcc/gimple-iterator.h
+++ b/gcc/gimple-iterator.h
@@ -430,28 +430,9 @@  gsi_seq (gimple_stmt_iterator i)
 inline bool
 gimple_seq_nondebug_singleton_p (gimple_seq seq)
 {
-  gimple_stmt_iterator gsi;
-
-  /* Find a nondebug gimple.  */
-  gsi.ptr = gimple_seq_first (seq);
-  gsi.seq = &seq;
-  gsi.bb = NULL;
-  while (!gsi_end_p (gsi)
-	 && is_gimple_debug (gsi_stmt (gsi)))
-    gsi_next (&gsi);
-
-  /* No nondebug gimple found, not a singleton.  */
-  if (gsi_end_p (gsi))
-    return false;
-
-  /* Find a next nondebug gimple.  */
-  gsi_next (&gsi);
-  while (!gsi_end_p (gsi)
-	 && is_gimple_debug (gsi_stmt (gsi)))
-    gsi_next (&gsi);
+  gimple_stmt_iterator gsi = gsi_start_nondebug (seq);
 
-  /* Only a singleton if there's no next nondebug gimple.  */
-  return gsi_end_p (gsi);
+  return gsi_one_nondebug_before_end_p (gsi);
 }
 
 #endif /* GCC_GIMPLE_ITERATOR_H */