Added "optimize" flag to settings everywhere
This commit is contained in:
committed by
Alexander Udalov
parent
433c9cd4a5
commit
0e683b0b99
@@ -20,4 +20,5 @@ import org.jetbrains.org.objectweb.asm.Opcodes;
|
||||
|
||||
public class OptimizationUtils {
|
||||
public final static int API = Opcodes.ASM5;
|
||||
public static final boolean DEFAULT_OPTIMIZATION_FLAG = true;
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
||||
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
||||
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
|
||||
import org.jetbrains.jet.codegen.optimization.OptimizationClassBuilderFactory;
|
||||
import org.jetbrains.jet.codegen.optimization.OptimizationUtils;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticHolder;
|
||||
@@ -117,7 +118,9 @@ public class GenerationState {
|
||||
@NotNull List<JetFile> files
|
||||
) {
|
||||
this(project, builderFactory, Progress.DEAF, module, bindingContext, files, true, false, GenerateClassFilter.GENERATE_ALL,
|
||||
InlineCodegenUtil.DEFAULT_INLINE_FLAG, null, null, DiagnosticHolder.DO_NOTHING, null);
|
||||
InlineCodegenUtil.DEFAULT_INLINE_FLAG, OptimizationUtils.DEFAULT_OPTIMIZATION_FLAG,
|
||||
null, null, DiagnosticHolder.DO_NOTHING, null
|
||||
);
|
||||
}
|
||||
|
||||
public GenerationState(
|
||||
@@ -131,6 +134,7 @@ public class GenerationState {
|
||||
boolean generateNotNullParamAssertions,
|
||||
GenerateClassFilter generateClassFilter,
|
||||
boolean inlineEnabled,
|
||||
boolean optimizationEnabled,
|
||||
@Nullable Collection<FqName> packagesWithRemovedFiles,
|
||||
@Nullable String moduleId,
|
||||
@NotNull DiagnosticHolder diagnostics,
|
||||
@@ -152,8 +156,13 @@ public class GenerationState {
|
||||
this.typeMapper = new JetTypeMapperWithOutDirectory(this.bindingContext, classBuilderMode, outDirectory);
|
||||
|
||||
this.intrinsics = new IntrinsicMethods();
|
||||
|
||||
if (optimizationEnabled) {
|
||||
builderFactory = new OptimizationClassBuilderFactory(builderFactory);
|
||||
}
|
||||
|
||||
this.classFileFactory = new ClassFileFactory(this, new BuilderFactoryForDuplicateSignatureDiagnostics(
|
||||
new OptimizationClassBuilderFactory(builderFactory), this.bindingContext, diagnostics));
|
||||
builderFactory, this.bindingContext, diagnostics));
|
||||
|
||||
this.generateNotNullAssertions = generateNotNullAssertions;
|
||||
this.generateNotNullParamAssertions = generateNotNullParamAssertions;
|
||||
|
||||
+2
-2
@@ -33,7 +33,7 @@ public class CompilerArgumentsUtil {
|
||||
"false".equalsIgnoreCase(option);
|
||||
}
|
||||
|
||||
public static String getWrongInlineOptionErrorMessage(@Nullable String inline) {
|
||||
return "Wrong value for inline option: '" + inline + "'. Should be 'on'/'off' or 'true'/'false'";
|
||||
public static String getWrongCheckOptionErrorMessage(@Nullable String option, @Nullable String value) {
|
||||
return "Wrong value for " + option + " option: '" + value + "'. Should be 'on'/'off' or 'true'/'false'";
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -79,6 +79,10 @@ public class K2JVMCompilerArguments extends CommonCompilerArguments {
|
||||
@ValueDescription("{on,off}")
|
||||
public String inline;
|
||||
|
||||
@Argument(value = "optimize", description = "Optimization mode (default is on)")
|
||||
@ValueDescription("{on,off}")
|
||||
public String optimize;
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public String executableScriptFileName() {
|
||||
|
||||
@@ -39,6 +39,9 @@ public class JVMConfigurationKeys {
|
||||
public static final CompilerConfigurationKey<Boolean> ENABLE_INLINE =
|
||||
CompilerConfigurationKey.create("enable inline");
|
||||
|
||||
public static final CompilerConfigurationKey<Boolean> ENABLE_OPTIMIZATION =
|
||||
CompilerConfigurationKey.create("enable optimization");
|
||||
|
||||
public static final CompilerConfigurationKey<File> INCREMENTAL_CACHE_BASE_DIR =
|
||||
CompilerConfigurationKey.create("incremental cache base dir");
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.jetbrains.jet.cli.jvm.compiler.KotlinToJVMBytecodeCompiler;
|
||||
import org.jetbrains.jet.cli.jvm.repl.ReplFromTerminal;
|
||||
import org.jetbrains.jet.codegen.CompilationException;
|
||||
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
||||
import org.jetbrains.jet.codegen.optimization.OptimizationUtils;
|
||||
import org.jetbrains.jet.config.CommonConfigurationKeys;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter;
|
||||
@@ -116,6 +117,8 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments> {
|
||||
configuration.put(JVMConfigurationKeys.GENERATE_NOT_NULL_PARAMETER_ASSERTIONS, arguments.notNullParamAssertions);
|
||||
configuration.put(JVMConfigurationKeys.ENABLE_INLINE,
|
||||
CompilerArgumentsUtil.optionToBooleanFlag(arguments.inline, InlineCodegenUtil.DEFAULT_INLINE_FLAG));
|
||||
configuration.put(JVMConfigurationKeys.ENABLE_OPTIMIZATION,
|
||||
CompilerArgumentsUtil.optionToBooleanFlag(arguments.optimize, OptimizationUtils.DEFAULT_OPTIMIZATION_FLAG));
|
||||
|
||||
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector);
|
||||
|
||||
@@ -209,7 +212,11 @@ public class K2JVMCompiler extends CLICompiler<K2JVMCompilerArguments> {
|
||||
super.checkArguments(argument);
|
||||
|
||||
if (!CompilerArgumentsUtil.checkOption(argument.inline)) {
|
||||
throw new IllegalArgumentException(CompilerArgumentsUtil.getWrongInlineOptionErrorMessage(argument.inline));
|
||||
throw new IllegalArgumentException(CompilerArgumentsUtil.getWrongCheckOptionErrorMessage("inline", argument.inline));
|
||||
}
|
||||
|
||||
if (!CompilerArgumentsUtil.checkOption(argument.optimize)) {
|
||||
throw new IllegalArgumentException(CompilerArgumentsUtil.getWrongCheckOptionErrorMessage("optimize", argument.optimize));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.jetbrains.jet.cli.common.messages.MessageCollector;
|
||||
import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
|
||||
import org.jetbrains.jet.codegen.*;
|
||||
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
||||
import org.jetbrains.jet.codegen.optimization.OptimizationUtils;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.state.Progress;
|
||||
import org.jetbrains.jet.config.CommonConfigurationKeys;
|
||||
@@ -344,6 +345,7 @@ public class KotlinToJVMBytecodeCompiler {
|
||||
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_PARAMETER_ASSERTIONS, false),
|
||||
GenerationState.GenerateClassFilter.GENERATE_ALL,
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineCodegenUtil.DEFAULT_INLINE_FLAG),
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_OPTIMIZATION, OptimizationUtils.DEFAULT_OPTIMIZATION_FLAG),
|
||||
packagesWithRemovedFiles,
|
||||
moduleId,
|
||||
diagnosticHolder,
|
||||
|
||||
@@ -7,7 +7,7 @@ ERR:
|
||||
|
||||
BUILD FAILED
|
||||
[TestData]/build.xml:5: org.jetbrains.jet.cli.jvm.compiler.CompileEnvironmentException: Wrong value for inline option: 'wrong'. Should be 'on'/'off' or 'true'/'false'
|
||||
at org.jetbrains.jet.buildtools.ant.BytecodeCompilerTask.execute(BytecodeCompilerTask.java:147)
|
||||
at org.jetbrains.jet.buildtools.ant.BytecodeCompilerTask.execute(BytecodeCompilerTask.java:153)
|
||||
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
|
||||
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
|
||||
|
||||
@@ -297,6 +297,7 @@ public class KotlinJavaFileStubProvider<T extends WithFileStubAndExtraDiagnostic
|
||||
/*not-null assertions*/false, false,
|
||||
/*generateClassFilter=*/stubGenerationStrategy.getGenerateClassFilter(),
|
||||
/*to generate inline flag on methods*/true,
|
||||
/*optimize*/true,
|
||||
null,
|
||||
null,
|
||||
forExtraDiagnostics,
|
||||
|
||||
@@ -15,6 +15,7 @@ where possible options include:
|
||||
-script Evaluate the script file
|
||||
-kotlinHome <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery
|
||||
-inline {on,off} Inlining mode (default is on)
|
||||
-optimize {on,off} Optimization mode (default is on)
|
||||
-tags Demarcate each compilation message (error, warning, etc) with an open and close tag
|
||||
-verbose Enable verbose logging output
|
||||
-version Display compiler version
|
||||
|
||||
@@ -15,6 +15,7 @@ where possible options include:
|
||||
-script Evaluate the script file
|
||||
-kotlinHome <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery
|
||||
-inline {on,off} Inlining mode (default is on)
|
||||
-optimize {on,off} Optimization mode (default is on)
|
||||
-tags Demarcate each compilation message (error, warning, etc) with an open and close tag
|
||||
-verbose Enable verbose logging output
|
||||
-version Display compiler version
|
||||
|
||||
@@ -15,6 +15,7 @@ where possible options include:
|
||||
-script Evaluate the script file
|
||||
-kotlinHome <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery
|
||||
-inline {on,off} Inlining mode (default is on)
|
||||
-optimize {on,off} Optimization mode (default is on)
|
||||
-tags Demarcate each compilation message (error, warning, etc) with an open and close tag
|
||||
-verbose Enable verbose logging output
|
||||
-version Display compiler version
|
||||
|
||||
@@ -16,6 +16,7 @@ where possible options include:
|
||||
-script Evaluate the script file
|
||||
-kotlinHome <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery
|
||||
-inline {on,off} Inlining mode (default is on)
|
||||
-optimize {on,off} Optimization mode (default is on)
|
||||
-tags Demarcate each compilation message (error, warning, etc) with an open and close tag
|
||||
-verbose Enable verbose logging output
|
||||
-version Display compiler version
|
||||
|
||||
@@ -16,6 +16,7 @@ where possible options include:
|
||||
-script Evaluate the script file
|
||||
-kotlinHome <path> Path to Kotlin compiler home directory, used for annotations and runtime libraries discovery
|
||||
-inline {on,off} Inlining mode (default is on)
|
||||
-optimize {on,off} Optimization mode (default is on)
|
||||
-tags Demarcate each compilation message (error, warning, etc) with an open and close tag
|
||||
-verbose Enable verbose logging output
|
||||
-version Display compiler version
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.jetbrains.jet.cli.jvm.JVMConfigurationKeys;
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.codegen.forTestCompile.ForTestCompileRuntime;
|
||||
import org.jetbrains.jet.codegen.inline.InlineCodegenUtil;
|
||||
import org.jetbrains.jet.codegen.optimization.OptimizationUtils;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.state.Progress;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
@@ -68,6 +69,7 @@ public class CodegenTestUtil {
|
||||
configuration.get(JVMConfigurationKeys.GENERATE_NOT_NULL_PARAMETER_ASSERTIONS, true),
|
||||
GenerationState.GenerateClassFilter.GENERATE_ALL,
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_INLINE, InlineCodegenUtil.DEFAULT_INLINE_FLAG),
|
||||
configuration.get(JVMConfigurationKeys.ENABLE_OPTIMIZATION, OptimizationUtils.DEFAULT_OPTIMIZATION_FLAG),
|
||||
null,
|
||||
null,
|
||||
forExtraDiagnostics,
|
||||
|
||||
Reference in New Issue
Block a user