From patchwork Mon Nov 29 20:38:19 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicola Pero X-Patchwork-Id: 73494 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 73ECAB70E8 for ; Tue, 30 Nov 2010 07:38:34 +1100 (EST) Received: (qmail 3556 invoked by alias); 29 Nov 2010 20:38:32 -0000 Received: (qmail 3498 invoked by uid 22791); 29 Nov 2010 20:38:30 -0000 X-SWARE-Spam-Status: No, hits=-1.4 required=5.0 tests=AWL, BAYES_00, TW_BJ, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from fencepost.gnu.org (HELO fencepost.gnu.org) (140.186.70.10) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 29 Nov 2010 20:38:24 +0000 Received: from eggs.gnu.org ([140.186.70.92]:53703) by fencepost.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1PNAUO-0003CA-FB for gcc-patches@gnu.org; Mon, 29 Nov 2010 15:38:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PNAUO-00026Y-VT for gcc-patches@gnu.org; Mon, 29 Nov 2010 15:38:22 -0500 Received: from smtp161.iad.emailsrvr.com ([207.97.245.161]:41017) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PNAUO-00026S-Rj for gcc-patches@gnu.org; Mon, 29 Nov 2010 15:38:20 -0500 Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp46.relay.iad1a.emailsrvr.com (SMTP Server) with ESMTP id 2BF3CE8310; Mon, 29 Nov 2010 15:38:20 -0500 (EST) Received: from dynamic12.wm-web.iad.mlsrvr.com (dynamic12.wm-web.iad1a.rsapps.net [192.168.2.219]) by smtp46.relay.iad1a.emailsrvr.com (SMTP Server) with ESMTP id 05B16E842C; Mon, 29 Nov 2010 15:38:20 -0500 (EST) Received: from meta-innovation.com (localhost [127.0.0.1]) by dynamic12.wm-web.iad.mlsrvr.com (Postfix) with ESMTP id E4CAC2168088; Mon, 29 Nov 2010 15:38:19 -0500 (EST) Received: by www2.webmail.us (Authenticated sender: nicola.pero@meta-innovation.com, from: nicola.pero@meta-innovation.com) with HTTP; Mon, 29 Nov 2010 21:38:19 +0100 (CET) Date: Mon, 29 Nov 2010 21:38:19 +0100 (CET) Subject: Re: ObjC/ObjC++: bug fixes for @catch From: "Nicola Pero" To: "Mike Stump" Cc: "gcc-patches@gnu.org" MIME-Version: 1.0 X-Type: plain In-Reply-To: References: <1290903853.11678813@192.168.2.228> <1290992311.506221366@192.168.2.229> Message-ID: <1291063099.935919717@192.168.2.228> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org > I don't really care, with the exception of parallelization - the ObjC testsuite > currently takes about 100 seconds to run serially on my machine and I'd love to > parallelize it and cut that time down by 4x or so. > See check_gcc_parallelize and lang_checks_parallelized in Makefile.in. You'll need > to set lang_checks_parallelized in objc/Make-lang.in. Thanks I played with that, and got to parallelize the checks with '-j2'. On my 2-core machine the time to run the ObjC testsuite goes down from 1m45s to 57s when using '-j2' and executing the execute.exp tests in parallel with the other ones (execute.exp itself takes 55 seconds so it's about the best you can do with 2 cores). It's good, but it's tuned only for '-j2' and the output is not too great. I wish DejaGNU was parallelizing the tests for us; it would be able to adapt much better to changes in the argument of '-j', and could produce a nice report, identical to the standard one. Anyway, good enough for now. A patch is attached below. Ok to commit ? Thanks Index: Make-lang.in =================================================================== --- Make-lang.in (revision 167262) +++ Make-lang.in (working copy) @@ -104,6 +104,12 @@ lang_checks += check-objc +# The following allows you to do 'make check-objc -j2'. The +# execute.exp tests will be run in parallel with all the other ones. +# This is tuned for '-j2'. +lang_checks_parallelized += check-objc +check_objc_parallelize = execute.exp + # # Install hooks: # cc1obj is installed elsewhere as part of $(COMPILERS). Index: ChangeLog =================================================================== --- ChangeLog (revision 167262) +++ ChangeLog (working copy) @@ -1,5 +1,12 @@ 2010-11-29 Nicola Pero + Mike Stump + Allow 'make check-objc -j2' + * Make-lang.in (lang_checks_parallelized): New. + (check_objc_parallelize): New. + +2010-11-29 Nicola Pero + * objc-act.c (objc_eh_runtime_type): Avoid ICE if error_mark_node is passed as argument. (objc_begin_catch_clause): Added code to deal with an