From c01512eb41ee8bc178b7915407d640b11e616915 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Wed, 23 Jul 2014 14:12:58 +0400 Subject: [PATCH] Do not optimize large methods. #KT-5513 Fixed --- .../jet/codegen/optimization/OptimizationMethodVisitor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/optimization/OptimizationMethodVisitor.java b/compiler/backend/src/org/jetbrains/jet/codegen/optimization/OptimizationMethodVisitor.java index 5868cf653e0..1b193a9844e 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/optimization/OptimizationMethodVisitor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/optimization/OptimizationMethodVisitor.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; public class OptimizationMethodVisitor extends MethodVisitor { + private static final int MAX_INSTRUCTIONS_SIZE_TO_OPTIMIZE = 5000; private static final MethodTransformer MAIN_METHOD_TRANSFORMER = new RedundantNullCheckMethodTransformer( new RedundantBoxingMethodTransformer(null) ); @@ -63,7 +64,8 @@ public class OptimizationMethodVisitor extends MethodVisitor { super.visitEnd(); - if (methodNode.instructions.size() > 0) { + if (methodNode.instructions.size() > 0 && + methodNode.instructions.size() <= MAX_INSTRUCTIONS_SIZE_TO_OPTIMIZE) { MAIN_METHOD_TRANSFORMER.transform("fake", methodNode); }