This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RFC: Disable RTL inlininer for Java?
- From: Bryce McKinlay <bryce at waitaki dot otago dot ac dot nz>
- To: java at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Date: Thu, 30 May 2002 18:36:45 +1200
- Subject: RFC: Disable RTL inlininer for Java?
The RTL inliner seems to be the cause of several crashes and
miscompilations of Java code. In the past I've noticed a few EH-related
gcj crashes that went away with -fno-inline, but more disturbing is PR6820:
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6820
The evaluation order for the arguments is apparantly disregarded when
the call is inlined.
In addition, the inliner has never really worked very well anyway - only
private/final/static methods that preceded the call in a class got
inlined, and methods from other classes never get inlined, afaik.
Turning the inlining off does not significantly affect GCJ's score on
scimark or jBYTEmark and it makes libgcj.so about 200k smaller. Note
that this doesn't turn off the inlining of "java builtins" such as
Math.cos() which is done in java/builtins.
It is unlikely that any bugs in the old inliner will be fixed since it
is no longer used by C and C++. So, I propose to disable inlining in GCJ
until we make it use the tree inliner.
Bryce.
2002-05-30 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* lang.c (java_init_options): Turn off inlining.
Index: lang.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/java/lang.c,v
retrieving revision 1.101
diff -u -r1.101 lang.c
--- lang.c 25 Apr 2002 06:24:40 -0000 1.101
+++ lang.c 30 May 2002 06:38:16 -0000
@@ -769,4 +769,8 @@
/* In Java floating point operations never trap. */
flag_trapping_math = 0;
+
+ /* Turn off RTL inliner. */
+ flag_no_inline = 1;
+ flag_inline_functions = 0;
}