changeset 21496:0ea5607addb1

Enable inlining during parsing by default.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 26 May 2015 18:57:51 +0200
parents 0b76c55e1cef
children e11240603607
files graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java
diffstat 2 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Tue May 26 18:34:22 2015 +0200
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Tue May 26 18:57:51 2015 +0200
@@ -79,7 +79,7 @@
         public static final OptionValue<Integer> TraceBytecodeParserLevel = new OptionValue<>(0);
 
         @Option(help = "Inlines trivial methods during bytecode parsing.", type = OptionType.Expert)
-        public static final StableOptionValue<Boolean> InlineDuringParsing = new StableOptionValue<>(false);
+        public static final StableOptionValue<Boolean> InlineDuringParsing = new StableOptionValue<>(true);
 
         @Option(help = "Inlines intrinsic methods during bytecode parsing.", type = OptionType.Expert)
         public static final StableOptionValue<Boolean> InlineIntrinsicsDuringParsing = new StableOptionValue<>(true);
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java	Tue May 26 18:34:22 2015 +0200
+++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java	Tue May 26 18:57:51 2015 +0200
@@ -39,7 +39,8 @@
     public InlineInfo getInlineInfo(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args, JavaType returnType) {
         InlineInfo inlineInfo = replacements.getInlineInfo(b, method, args, returnType);
         if (inlineInfo == null) {
-            if (InlineDuringParsing.getValue() && method.hasBytecodes() && method.getCode().length <= TrivialInliningSize.getValue() && b.getDepth() < InlineDuringParsingMaxDepth.getValue()) {
+            if (InlineDuringParsing.getValue() && method.hasBytecodes() && !method.isSynchronized() && method.getCode().length <= TrivialInliningSize.getValue() &&
+                            b.getDepth() < InlineDuringParsingMaxDepth.getValue()) {
                 return new InlineInfo(method, false);
             }
         }