From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22390 invoked by alias); 3 Mar 2006 22:05:08 -0000 Received: (qmail 22373 invoked by uid 22791); 3 Mar 2006 22:05:07 -0000 X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 03 Mar 2006 22:05:06 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id k23M53We018047; Fri, 3 Mar 2006 17:05:03 -0500 Received: from pobox.toronto.redhat.com (pobox.toronto.redhat.com [172.16.14.4]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id k23M52123443; Fri, 3 Mar 2006 17:05:02 -0500 Received: from [172.16.14.67] (towel.toronto.redhat.com [172.16.14.67]) by pobox.toronto.redhat.com (8.12.8/8.12.8) with ESMTP id k23M52XN013827; Fri, 3 Mar 2006 17:05:02 -0500 Message-ID: <4408BD8E.2020405@redhat.com> Date: Fri, 03 Mar 2006 22:05:00 -0000 From: Bryce McKinlay User-Agent: Thunderbird 1.5 (X11/20051025) MIME-Version: 1.0 To: Andrew Haley CC: java-patches@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: Calls to built-in functions are not Binary Compatible References: <17413.59529.323500.55410@zapata.pink> In-Reply-To: <17413.59529.323500.55410@zapata.pink> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact java-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-patches-owner@gcc.gnu.org X-SW-Source: 2006-q1/txt/msg00245.txt.bz2 Doesn't this disable builtins mechanism entirely when -findirect-dispatch is used? These builtins improve GCJ's performance significantly on some numeric code (scimark, for example). Wouldn't it be better to fix whatever problem is causing direct calls to be generated rather than disabling them completely? Bryce Andrew Haley wrote: > This happens with methods like Math.pow() which are converted to > builtins. Unfortunately, this leads to direct calls to methods in > libgcj. This breaks binary compatibility when we change gcj's name > mangling. Which we just did. > > :-( > > Andrew. > > > 2006-03-01 Andrew Haley > > * builtins.c (check_for_builtin): Don't convert if > flag_indirect_dispatch is set. > > Index: builtins.c > =================================================================== > --- builtins.c (revision 111600) > +++ builtins.c (working copy) > @@ -267,7 +267,9 @@ > tree > check_for_builtin (tree method, tree call) > { > - if (! flag_emit_class_files && optimize && TREE_CODE (call) == CALL_EXPR) > + if (! flag_emit_class_files > + && ! flag_indirect_dispatch > + && optimize && TREE_CODE (call) == CALL_EXPR) > { > int i; > tree method_arguments = TREE_OPERAND (call, 1); >