From b40e3a285993f1ab6bb542f4cabd690fbaed40b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Ku=C4=8Dera?= Date: Tue, 20 Aug 2024 13:51:32 +0200 Subject: [PATCH] fix(js): reenable peephole --- .../kotlin/poke.base-conventions.gradle.kts | 2 +- .../java/run/slicer/poke/AnalyzerImpl.java | 24 +------------------ gradle/libs.versions.toml | 2 +- js/src/main/java/run/slicer/poke/js/Main.java | 3 --- 4 files changed, 3 insertions(+), 28 deletions(-) diff --git a/build-logic/src/main/kotlin/poke.base-conventions.gradle.kts b/build-logic/src/main/kotlin/poke.base-conventions.gradle.kts index 40e5211..d9c0715 100644 --- a/build-logic/src/main/kotlin/poke.base-conventions.gradle.kts +++ b/build-logic/src/main/kotlin/poke.base-conventions.gradle.kts @@ -3,7 +3,7 @@ plugins { } group = "run.slicer" -version = "1.0.3" +version = "1.0.4" description = "A Java library for performing bytecode normalization and generic deobfuscation." repositories { diff --git a/core/src/main/java/run/slicer/poke/AnalyzerImpl.java b/core/src/main/java/run/slicer/poke/AnalyzerImpl.java index c681bbb..26f7540 100644 --- a/core/src/main/java/run/slicer/poke/AnalyzerImpl.java +++ b/core/src/main/java/run/slicer/poke/AnalyzerImpl.java @@ -80,13 +80,6 @@ private void optimize(AppView view) { } static final class Builder implements Analyzer.Builder { - private static final boolean PEEPHOLE = Boolean.parseBoolean( - System.getProperty("run.slicer.poke.peephole", "true") - ); - private static final boolean EVALUATION = Boolean.parseBoolean( - System.getProperty("run.slicer.poke.evaluation", "true") - ); - private int passes = 1; private boolean verify = false; private boolean optimize = false; @@ -136,27 +129,12 @@ public Analyzer build() { "method/generalization/*", "method/specialization/*", "method/propagation/*", - "code/merging", - "code/removal/*", - "code/allocation/*" + "code/*" )); if (this.inline) { optimizations.add("method/inlining/*"); } - if (PEEPHOLE) { - optimizations.add("code/simplification/variable"); - optimizations.add("code/simplification/arithmetic"); - optimizations.add("code/simplification/cast"); - optimizations.add("code/simplification/field"); - optimizations.add("code/simplification/branch"); - optimizations.add("code/simplification/object"); - optimizations.add("code/simplification/string"); - optimizations.add("code/simplification/math"); - } - if (EVALUATION) { - optimizations.add("code/simplification/advanced"); - } config.optimizations = optimizations; return new AnalyzerImpl(config); diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3a93da4..34d681d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ teavm = "0.10.0" jspecify = { group = "org.jspecify", name = "jspecify", version = "0.3.0" } picocli = { group = "info.picocli", name = "picocli", version.ref = "picocli" } picocli-codegen = { group = "info.picocli", name = "picocli-codegen", version.ref = "picocli" } -proguard = { group = "com.github.run-slicer", name = "proguard", version = "1d630e03ef" } +proguard = { group = "com.github.run-slicer", name = "proguard", version = "332d4679b5" } teavm-core = { group = "org.teavm", name = "teavm-core", version.ref = "teavm" } [plugins] diff --git a/js/src/main/java/run/slicer/poke/js/Main.java b/js/src/main/java/run/slicer/poke/js/Main.java index f657c16..29bde9f 100644 --- a/js/src/main/java/run/slicer/poke/js/Main.java +++ b/js/src/main/java/run/slicer/poke/js/Main.java @@ -14,9 +14,6 @@ public class Main { // the proper fix would be to stop proguard-core from casting threads to its own objects, // but I really can't be bothered to stub that all out System.setProperty("parallel.threads", "1"); - - // FIXME: InstructionSequencesReplacer breaks TeaVM - System.setProperty("run.slicer.poke.peephole", "false"); } @JSExport