Bootstrapped and regtested on IBM Z.  Ok for mainline?

gcc/ChangeLog:

        * config/s390/s390.c (s390_loop_unroll_adjust): In case of early
        exit free bbs.
---
 gcc/config/s390/s390.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index b2f2f6417b3..510e7f58a3b 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -15400,7 +15400,10 @@ s390_loop_unroll_adjust (unsigned nunroll, struct loop 
*loop)
                  || (GET_CODE (SET_SRC (set)) == COMPARE
                      && GET_MODE (XEXP (SET_SRC (set), 0)) == BLKmode
                      && GET_MODE (XEXP (SET_SRC (set), 1)) == BLKmode)))
-           return 1;
+           {
+             free (bbs);
+             return 1;
+           }
 
          FOR_EACH_SUBRTX (iter, array, PATTERN (insn), NONCONST)
            if (MEM_P (*iter))
-- 
2.31.1

Reply via email to