Revert "Run CF backend on Art tests"
This reverts commit 66f599c1e1123a3c243bc5b9c701f9c2567120ae.
Reason for revert: get bot green for us time
Change-Id: I92085977bba83b305382a33dfe3a19e3b116386d
diff --git a/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java b/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
index d8e78e5..4d18b92 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DebugLocalRead.java
@@ -3,7 +3,6 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.ir.code;
-import com.android.tools.r8.cf.LoadStoreHelper;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.conversion.DexBuilder;
@@ -63,9 +62,4 @@
// They should also have a non-empty set of debug values (see RegAlloc::computeDebugInfo)
return false;
}
-
- @Override
- public void insertLoadAndStores(InstructionListIterator it, LoadStoreHelper helper) {
- // Non-materializing so no stack values are needed.
- }
}
diff --git a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
index 813166b..32c0175 100644
--- a/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
+++ b/src/test/java/com/android/tools/r8/R8RunArtTestsTest.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.ToolHelper.DexVm.Kind;
import com.android.tools.r8.ToolHelper.ProcessResult;
import com.android.tools.r8.errors.CompilationError;
-import com.android.tools.r8.origin.Origin;
import com.android.tools.r8.shaking.ProguardRuleParserException;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.ArtErrorParser;
@@ -78,8 +77,7 @@
public enum CompilerUnderTest {
D8,
R8,
- R8_AFTER_D8, // refers to the R8 (default: debug) step but implies a previous D8 step as well
- D8_AFTER_R8CF
+ R8_AFTER_D8 // refers to the R8 (default: debug) step but implies a previous D8 step as well
}
private static final String ART_TESTS_DIR = "tests/2017-10-04/art";
@@ -764,7 +762,13 @@
TestCondition.match(
TestCondition.runtimes(DexVm.Version.V4_0_4, DexVm.Version.V4_4_4,
DexVm.Version.V5_1_1, DexVm.Version.V6_0_1, DexVm.Version.V7_0_0)))
- .put("454-get-vreg", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put(
+ "454-get-vreg",
+ TestCondition.match(
+ TestCondition.tools(DexTool.NONE),
+ TestCondition.D8_COMPILER,
+ TestCondition.runtimes(DexVm.Version.DEFAULT)))
+ .put("454-get-vreg", TestCondition.match(TestCondition.R8_COMPILER))
// Fails: regs_jni.cc:42] Check failed: GetVReg(m, 0, kIntVReg, &value)
// The R8/D8 code does not put values in the same registers as the tests expects.
.put(
@@ -772,14 +776,20 @@
TestCondition.match(
TestCondition.runtimes(DexVm.Version.V4_0_4, DexVm.Version.V4_4_4,
DexVm.Version.V5_1_1, DexVm.Version.V6_0_1, DexVm.Version.V7_0_0)))
- .put("457-regs", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put(
+ "457-regs",
+ TestCondition.match(
+ TestCondition.tools(DexTool.NONE),
+ TestCondition.D8_COMPILER,
+ TestCondition.runtimes(DexVm.Version.DEFAULT)))
+ .put("457-regs", TestCondition.match(TestCondition.R8_COMPILER))
// Class not found.
.put("529-checker-unresolved", TestCondition.any())
// Fails: env_long_ref.cc:44] Check failed: GetVReg(m, 1, kReferenceVReg, &value)
// The R8/D8 code does not produce values in the same registers as the tests expects in
// the stack frame for TestCase.testCase checked by the native Main.lookForMyRegisters
// (v1 vs v0).
- .put("543-env-long-ref", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put("543-env-long-ref", TestCondition.match(TestCondition.R8_COMPILER))
// Array index out of bounds exception.
.put("555-UnsafeGetLong-regression", TestCondition.any())
// Array index out of bounds exception.
@@ -800,9 +810,9 @@
// Main.testThisWithInstanceCall checked by the native Main.doNativeCallRef (v0 vs. v1 and
// only 1 register instead fof 2).
.put("461-get-reference-vreg", TestCondition.match(TestCondition.R8_COMPILER))
- // This test uses register r1 in method that is declared to only use 1 register (r0).
- // This is in dex code which D8 does not convert and which R8/CF does not process.
- // Therefore the error is a verification error at runtime and that is expected.
+ // This test uses register r1 in method that is declared to only use 1 register (r0). This
+ // is in dex code which D8 does not convert. Therefore the error is a verification error
+ // at runtime and that is expected.
.put("142-classloader2", TestCondition.match(TestCondition.D8_COMPILER))
// Invoke-custom is supported by D8 and R8, but it can only run on our newest version
// of art.
@@ -845,9 +855,9 @@
new ImmutableListMultimap.Builder<String, TestCondition>()
// Contains two methods with the same name and signature but different code.
.put("097-duplicate-method", TestCondition.any())
- // Dex code contains a method (B.<init>) which pass too few arguments to invoke, and it
- // also contains an iput on a static field.
- .put("600-verifier-fails", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ // Contains a method (B.<init>) which pass too few arguments to invoke. Also, contains an
+ // iput on a static field.
+ .put("600-verifier-fails", TestCondition.match(TestCondition.R8_COMPILER))
// Contains a method that falls off the end without a return.
.put("606-erroneous-class", TestCondition.match(
TestCondition.tools(DexTool.JACK),
@@ -856,15 +866,11 @@
TestCondition.tools(DexTool.DX),
TestCondition.R8_NOT_AFTER_D8_COMPILER,
LEGACY_RUNTIME))
- // Dex input contains an illegal InvokeSuper in Z.foo() to Y.foo()
- // that R8 will fail to compile.
- .put("594-invoke-super", TestCondition.match(TestCondition.R8DEX_COMPILER))
- .put("974-verify-interface-super", TestCondition.match(TestCondition.R8DEX_COMPILER))
- // R8 generates too large code in Goto.bigGoto(). b/74327727
- .put("003-omnibus-opcodes", TestCondition.match(TestCondition.D8_AFTER_R8CF_COMPILER))
- // Contains a subset of JUnit which collides with library definitions of JUnit.
- .put("021-string2", TestCondition.match(TestCondition.D8_AFTER_R8CF_COMPILER))
- .put("082-inline-execute", TestCondition.match(TestCondition.D8_AFTER_R8CF_COMPILER))
+ // Contains an illegal invoke that R8 will fail to compile.
+ .put("594-invoke-super", TestCondition.match(
+ TestCondition.R8_COMPILER))
+ .put("974-verify-interface-super", TestCondition.match(
+ TestCondition.R8_COMPILER))
.build();
// Tests that are invalid dex files and on which R8/D8 fails and that is OK.
@@ -876,12 +882,12 @@
// only one A$B class because of a custom build script that merges them.
.put("121-modifiers", TestCondition.match(TestCondition.tools(DexTool.NONE)))
// This test uses register r1 in method that is declared to only use 1 register (r0).
- .put("142-classloader2", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put("142-classloader2", TestCondition.match(TestCondition.R8_COMPILER))
// This test uses an uninitialized register.
- .put("471-uninitialized-locals", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put("471-uninitialized-locals", TestCondition.match(TestCondition.R8_COMPILER))
// This test is starting from invalid dex code. It splits up a double value and uses
// the first register of a double with the second register of another double.
- .put("800-smali", TestCondition.match(TestCondition.R8DEX_COMPILER))
+ .put("800-smali", TestCondition.match(TestCondition.R8_COMPILER))
// Contains a loop in the class hierarchy.
.put("804-class-extends-itself", TestCondition.any())
// These tests have illegal class flag combinations, so we reject them.
@@ -1304,7 +1310,6 @@
break;
case D8:
case R8_AFTER_D8:
- case D8_AFTER_R8CF:
compilationMode = CompilationMode.DEBUG;
break;
default:
@@ -1378,97 +1383,6 @@
CompilationFailedException {
assert mode != null;
switch (compilerUnderTest) {
- case D8_AFTER_R8CF:
- {
- assert keepRulesFile == null : "Keep-rules file specified for D8.";
-
- List<ProgramResource> dexInputs = new ArrayList<>();
- List<ProgramResource> cfInputs = new ArrayList<>();
- for (String f : fileNames) {
- Path p = Paths.get(f);
- if (FileUtils.isDexFile(p)) {
- dexInputs.add(ProgramResource.fromFile(ProgramResource.Kind.DEX, p));
- } else if (FileUtils.isClassFile(p)) {
- cfInputs.add(ProgramResource.fromFile(ProgramResource.Kind.CF, p));
- } else {
- assert FileUtils.isArchive(p);
- ArchiveProgramResourceProvider provider =
- ArchiveProgramResourceProvider.fromArchive(p);
-
- try {
- for (ProgramResource pr : provider.getProgramResources()) {
- if (pr.getKind() == ProgramResource.Kind.DEX) {
- dexInputs.add(pr);
- } else {
- assert pr.getKind() == ProgramResource.Kind.CF;
- cfInputs.add(pr);
- }
- }
- } catch (ResourceException e) {
- throw new CompilationException(e);
- }
- }
- }
-
- D8Command.Builder builder =
- D8Command.builder()
- .setMode(mode)
- .addProgramResourceProvider(
- new ProgramResourceProvider() {
- @Override
- public Collection<ProgramResource> getProgramResources()
- throws ResourceException {
- return dexInputs;
- }
- })
- .setOutput(Paths.get(resultPath), OutputMode.DexIndexed);
-
- Origin cfOrigin =
- new Origin(Origin.root()) {
- @Override
- public String part() {
- return "R8/CF";
- }
- };
-
- R8Command.Builder r8builder =
- R8Command.builder()
- .setMode(mode)
- .setProgramConsumer(
- new ClassFileConsumer() {
-
- @Override
- public synchronized void accept(
- byte[] data, String descriptor, DiagnosticsHandler handler) {
- builder.addClassProgramData(data, cfOrigin);
- }
-
- @Override
- public void finished(DiagnosticsHandler handler) {}
- })
- .addProgramResourceProvider(
- new ProgramResourceProvider() {
- @Override
- public Collection<ProgramResource> getProgramResources()
- throws ResourceException {
- return cfInputs;
- }
- });
-
- AndroidApiLevel minSdkVersion = needMinSdkVersion.get(name);
- if (minSdkVersion != null) {
- builder.setMinApiLevel(minSdkVersion.getLevel());
- r8builder.setMinApiLevel(minSdkVersion.getLevel());
- builder.addLibraryFiles(ToolHelper.getAndroidJar(minSdkVersion));
- r8builder.addLibraryFiles(ToolHelper.getAndroidJar(minSdkVersion));
- } else {
- builder.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.getDefault()));
- r8builder.addLibraryFiles(ToolHelper.getAndroidJar(AndroidApiLevel.getDefault()));
- }
- ToolHelper.runR8(r8builder.build(), options -> options.ignoreMissingClasses = true);
- D8.run(builder.build());
- break;
- }
case D8: {
assert keepRulesFile == null : "Keep-rules file specified for D8.";
D8Command.Builder builder =
diff --git a/src/test/java/com/android/tools/r8/TestCondition.java b/src/test/java/com/android/tools/r8/TestCondition.java
index 1475e3a..309f631 100644
--- a/src/test/java/com/android/tools/r8/TestCondition.java
+++ b/src/test/java/com/android/tools/r8/TestCondition.java
@@ -53,22 +53,14 @@
}
}
- public static final CompilerSet D8_COMPILER =
- compilers(CompilerUnderTest.D8, CompilerUnderTest.D8_AFTER_R8CF);
- public static final CompilerSet D8_NOT_AFTER_R8CF_COMPILER = compilers(CompilerUnderTest.D8);
- public static final CompilerSet D8_AFTER_R8CF_COMPILER =
- compilers(CompilerUnderTest.D8_AFTER_R8CF);
+ public static final CompilerSet D8_COMPILER = compilers(CompilerUnderTest.D8);
// R8_COMPILER refers to R8 both in the standalone setting and after D8
// R8_NOT_AFTER_D8_COMPILER and R8_AFTER_D8_COMPILER refers to the standalone and the combined
// settings, respectively
public static final CompilerSet R8_COMPILER =
- compilers(
- CompilerUnderTest.R8, CompilerUnderTest.R8_AFTER_D8, CompilerUnderTest.D8_AFTER_R8CF);
- public static final CompilerSet R8DEX_COMPILER =
compilers(CompilerUnderTest.R8, CompilerUnderTest.R8_AFTER_D8);
public static final CompilerSet R8_AFTER_D8_COMPILER = compilers(CompilerUnderTest.R8_AFTER_D8);
- public static final CompilerSet R8_NOT_AFTER_D8_COMPILER =
- compilers(CompilerUnderTest.R8, CompilerUnderTest.D8_AFTER_R8CF);
+ public static final CompilerSet R8_NOT_AFTER_D8_COMPILER = compilers(CompilerUnderTest.R8);
public static final CompilationModeSet DEBUG_MODE =
new CompilationModeSet(EnumSet.of(CompilationMode.DEBUG));
diff --git a/tools/create_art_tests.py b/tools/create_art_tests.py
index 13757a9..feb36a2 100755
--- a/tools/create_art_tests.py
+++ b/tools/create_art_tests.py
@@ -16,7 +16,7 @@
JACK_TEST = os.path.join('tests', '2016-12-19', 'art')
TEST_DIR = os.path.join('tests', '2017-10-04', 'art')
TOOLCHAINS = ["dx", "jack", "none"]
-TOOLS = ["r8", "d8", "r8cf"]
+TOOLS = ["r8", "d8"]
TEMPLATE = Template(
"""// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
@@ -54,7 +54,6 @@
rmtree(toolchain_dir)
makedirs(join(toolchain_dir, "d8"))
makedirs(join(toolchain_dir, "r8"))
- makedirs(join(toolchain_dir, "r8cf"))
def write_file(toolchain, tool, class_name, contents):
file_name = join(OUTPUT_DIR, toolchain, tool, class_name + ".java")
@@ -75,10 +74,6 @@
tool_enum = 'R8_AFTER_D8'
else:
tool_enum = upper(tool)
- if tool == "r8cf":
- if toolchain != "none":
- continue
- tool_enum = 'D8_AFTER_R8CF'
contents = TEMPLATE.substitute(
name=dir,
compilerUnderTestEnum=tool_enum,