diff mbox series

gimple ISEL: fix BB stmt iteration

Message ID 45518bd4-7bb1-10bf-f69f-ba1bb722123a@suse.cz
State New
Headers show
Series gimple ISEL: fix BB stmt iteration | expand

Commit Message

Martin Liška Nov. 30, 2020, 10:27 a.m. UTC
When gimple_expand_vec_set_expr succeeds, it can remove last
statements of a BB and so gsi_next(gsi->ptr) leads to ICE.

Fixed with the patch.
Ready for master?

Thanks,
Martin

gcc/ChangeLog:

	PR tree-optimization/98066
	* gimple-isel.cc (gimple_expand_vec_exprs): Return when
	gimple_expand_vec_exprs replaces last stmt.
---
  gcc/gimple-isel.cc | 2 ++
  1 file changed, 2 insertions(+)

Comments

Richard Biener Nov. 30, 2020, 11:34 a.m. UTC | #1
On Mon, Nov 30, 2020 at 11:27 AM Martin Liška <mliska@suse.cz> wrote:
>
> When gimple_expand_vec_set_expr succeeds, it can remove last
> statements of a BB and so gsi_next(gsi->ptr) leads to ICE.
>
> Fixed with the patch.
> Ready for master?

OK.

Richard.

> Thanks,
> Martin
>
> gcc/ChangeLog:
>
>         PR tree-optimization/98066
>         * gimple-isel.cc (gimple_expand_vec_exprs): Return when
>         gimple_expand_vec_exprs replaces last stmt.
> ---
>   gcc/gimple-isel.cc | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/gcc/gimple-isel.cc b/gcc/gimple-isel.cc
> index 048b407bd11..d79c212748f 100644
> --- a/gcc/gimple-isel.cc
> +++ b/gcc/gimple-isel.cc
> @@ -273,6 +273,8 @@ gimple_expand_vec_exprs (void)
>             }
>
>           gimple_expand_vec_set_expr (&gsi);
> +         if (gsi_end_p (gsi))
> +           break;
>         }
>       }
>
> --
> 2.29.2
>
diff mbox series

Patch

diff --git a/gcc/gimple-isel.cc b/gcc/gimple-isel.cc
index 048b407bd11..d79c212748f 100644
--- a/gcc/gimple-isel.cc
+++ b/gcc/gimple-isel.cc
@@ -273,6 +273,8 @@  gimple_expand_vec_exprs (void)
  	    }
  
  	  gimple_expand_vec_set_expr (&gsi);
+	  if (gsi_end_p (gsi))
+	    break;
  	}
      }