From patchwork Sun May 22 05:30:16 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [google] : test case fixes (issue4553055) Date: Sat, 21 May 2011 19:30:16 -0000 From: Xinliang David Li X-Patchwork-Id: 96721 Message-Id: <20110522053017.1756B20EF2@syzygy.mtv.corp.google.com> To: reply@codereview.appspotmail.com, gcc-patches@gcc.gnu.org Due to the inliner change (in google/main), a couple of test cases under gcc.dg/matrix starts to fail (ICE in matrix reorg). The problem can be reproduced in gcc46 with increases inline limit (but not in trunk -- the problem is either fixed or inline behavior is still different). The following workaround will be checked in to google/main. Along with the patch is a change in LIPO. When forming the name for local labels in function, to avoid conflict, both module id and funcdef_no is used. The new change increase one bit to allow more functions (256k funcs per module), and a total of 16k modules -- we saw cases where funcdef_no is greater than 128k in a module leading to overflow and conflict. 2011-05-21 David Li * testsuite/gcc.dg/matrix/transpose-1.c: Do not inline mem_init. * testsuite/gcc.dg/matrix/transpose-2.c: Ditto. * testsuite/gcc.dg/matrix/transpose-3.c: Ditto. * testsuite/gcc.dg/matrix/transpose-4.c: Ditto. * testsuite/gcc.dg/matrix/transpose-5.c: Ditto. * testsuite/gcc.dg/matrix/transpose-6.c: Ditto. --- This patch is available for review at http://codereview.appspot.com/4553055 Index: function.h =================================================================== --- function.h (revision 174024) +++ function.h (working copy) @@ -673,7 +673,7 @@ struct GTY(()) function { GEN_FUNC_GLOBAL_ID (FUNC_DECL_MODULE_ID (func), FUNC_DECL_FUNC_ID (func)) /* 32 bit wide unique id used for asm label (limit: 30k modules, 128k funcs per module. */ -#define FUNC_LABEL_ID(func) ((FUNC_DECL_MODULE_ID (func) << 17) +\ +#define FUNC_LABEL_ID(func) ((FUNC_DECL_MODULE_ID (func) << 18) +\ (func)->funcdef_no) /* Add the decl D to the local_decls list of FUN. */ Index: testsuite/gcc.dg/matrix/transpose-1.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-1.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-1.c (working copy) @@ -52,7 +52,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) { @@ -95,4 +95,3 @@ mem_init (void) /* { dg-final-use { scan-ipa-dump-times "Flattened 3 dimensions" 1 "matrix-reorg" } } */ /* { dg-final-use { scan-ipa-dump-times "Transposed" 3 "matrix-reorg" } } */ /* { dg-final-use { cleanup-ipa-dump "matrix-reorg" } } */ - Index: testsuite/gcc.dg/matrix/transpose-2.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-2.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-2.c (working copy) @@ -50,7 +50,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) { Index: testsuite/gcc.dg/matrix/transpose-3.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-3.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-3.c (working copy) @@ -54,7 +54,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) { Index: testsuite/gcc.dg/matrix/transpose-4.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-4.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-4.c (working copy) @@ -52,7 +52,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) { Index: testsuite/gcc.dg/matrix/transpose-5.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-5.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-5.c (working copy) @@ -49,7 +49,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) { Index: testsuite/gcc.dg/matrix/transpose-6.c =================================================================== --- testsuite/gcc.dg/matrix/transpose-6.c (revision 174024) +++ testsuite/gcc.dg/matrix/transpose-6.c (working copy) @@ -49,7 +49,7 @@ main (int argc, char **argv) /*--------------------------------------------------------------------------*/ /* Dynamic memory allocations and initializations */ -void +__attribute__((noinline)) void mem_init (void) {