This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
S/390: Fix literal pool overflow regression
- From: Ulrich Weigand <weigand at i1 dot informatik dot uni-erlangen dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 18 Feb 2004 23:44:24 +0100 (CET)
- Subject: S/390: Fix literal pool overflow regression
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