This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Calls to built-in functions are not Binary Compatible


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 <aph@redhat.com>


	* 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);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]