https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67712
--- Comment #5 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Author: aldyh Date: Wed Sep 13 16:59:51 2017 New Revision: 252436 URL: https://gcc.gnu.org/viewcvs?rev=252436&root=gcc&view=rev Log: Limit SH strncmp inline expansion (PR target/78460). GCC mainline built for sh4-linux-gnu runs out of memory building a glibc test, which calls strncmp with very large constant size argument, resulting in the SH inline strncmp expansion trying to inline a fully unrolled expansion of strncmp for that size. This patch limits that fully unrolled expansion to the case of less than 32 bytes. This is explicitly *not* trying to be optimal in any way (very likely a lower threshold makes sense), just to limit enough to avoid the out-of-memory issue in the glibc testsuite. I have *not* run the GCC testsuite for SH. I have verified that this allows the glibc testsuite to build OK, with both GCC mainline and GCC 7 branch (and that the included test builds quickly with patched GCC, runs out of memory with unpatched GCC). PR target/78460 PR target/67712 gcc: * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for constant count if that count is less than 32. gcc/testsuite: * gcc.c-torture/compile/string-large-1.c: New test. Added: branches/range-gen2/gcc/testsuite/gcc.c-torture/compile/string-large-1.c Modified: branches/range-gen2/gcc/ChangeLog branches/range-gen2/gcc/config/sh/sh-mem.cc branches/range-gen2/gcc/testsuite/ChangeLog