From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25733 invoked by alias); 9 Feb 2004 20:38:38 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 25725 invoked from network); 9 Feb 2004 20:38:37 -0000 Received: from unknown (HELO smtp.uk.superh.com) (193.128.105.170) by sources.redhat.com with SMTP; 9 Feb 2004 20:38:37 -0000 Received: from sh-uk-ex01.uk.w2k.superh.com (sh-uk-ex01 [192.168.16.17]) by smtp.uk.superh.com (8.12.10/8.12.10) with ESMTP id i19Kc0PD025430; Mon, 9 Feb 2004 20:38:04 GMT Received: from linsvr1.uk.superh.com ([192.168.16.50]) by sh-uk-ex01.uk.w2k.superh.com with Microsoft SMTPSVC(5.0.2195.6713); Mon, 9 Feb 2004 20:39:28 +0000 Received: (from renneckej@localhost) by linsvr1.uk.superh.com (8.11.6/8.11.6) id i19Kbxa10336; Mon, 9 Feb 2004 20:37:59 GMT From: Joern Rennecke Message-Id: <200402092037.i19Kbxa10336@linsvr1.uk.superh.com> Subject: Re: [RFA] sh-sim: free up some room in jump_table To: msnyder@redhat.com (Michael Snyder) Date: Mon, 09 Feb 2004 20:38:00 -0000 Cc: amylaar@fairadsl.co.uk (Joern Rennecke), joern.rennecke@superh.com, gdb-patches@sources.redhat.com In-Reply-To: <4027EED0.9050608@redhat.com> from "Michael Snyder" at Feb 09, 2004 12:34:24 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 09 Feb 2004 20:39:28.0686 (UTC) FILETIME=[D03F2CE0:01C3EF4C] X-Scanned-By: MIMEDefang 2.39 X-SW-Source: 2004-02/txt/msg00206.txt.bz2 > > Joern Rennecke wrote: > >>! printf (" if (target_dsp && \n"); > >>! printf (" (iword & 0xf000) == 0xf000)\n"); > >>! printf (" switch (sh_dsp_table[iword & 0xfff]) {\n"); > >> gensim_caselist (movsxy_tab); > >>! printf (" else switch (jump_table[iword]) {\n"); > > > > > > You have changed a straight dispatch into an if-then-else with > > two dispatches, and the integer and fpu arithmetic path goes the long way > > round the dsp dispatch; this seems to be a surefire way to make the > > simulator slower. > > > > We don't relly care much about the total size of the simulator, but > > we care about its working set size, so why don't you generate two > > separate simulator main loops, to be compiler into separate *.o > > files, one with the FPU instructions, and the other one with the > > dsp instructions? > > OK, I need to catch up with you here. So, your concern is not > with the time it takes to execute the if condition, but with the > size and/or distribution of the working set? I'm not very used > to programming around such considerations, so I'll look to you > for guidance. Actually, I am concerned about both. > I can see the sense of making two loops, but why would it > be necessary for them to be in two separate compilation units? > > Would you be willing to specify a performance test that I can > use, and a test criterion for me to meet? It might save time, > given that we seem to have a 24 hour email cycle. In the past I've used running arith-rand from the c-torture testsuite, with an iteration count to give a meaningful execution time - I think it was someting like a minute or a few.