S/390: Fix literal pool overflow regression

Ulrich Weigand weigand@i1.informatik.uni-erlangen.de
Wed Feb 18 23:02:00 GMT 2004


Hello,

this fixes a regression introduced by the new main pool placement
code: when literal pool overflow happens while compiling with -O0,
we now ICE because the main pool placeholder insn was not removed.
(With optimization, this doesn't matter as dead code elimination
will remove the placeholder anyway.)

Bootstrapped/regtested on s390-ibm-linux and s390x-ibm-linux
on 3.4 and head; applied to both.

ChangeLog:

	* config/s390/s390.c (s390_mainpool_start): Delete the main pool
	placeholder insn when chunkifying the pool.

Index: gcc/config/s390/s390.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.136
diff -c -p -r1.136 s390.c
*** gcc/config/s390/s390.c	13 Feb 2004 14:57:25 -0000	1.136
--- gcc/config/s390/s390.c	18 Feb 2004 12:10:53 -0000
*************** s390_mainpool_start (void)
*** 4373,4378 ****
--- 4373,4382 ----
  
    if (pool->size >= 4096)
      {
+       /* We're going to chunkify the pool, so remove the main
+ 	 pool placeholder insn.  */
+       remove_insn (pool->pool_insn);
+ 
        s390_free_pool (pool);
        pool = NULL;
      }
-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de



More information about the Gcc-patches mailing list