Add message to assertion in CodeRewriterPass
Bug: b/296354587
Change-Id: I592eeda7fbcca932d9f2a6913c16d64616001a4d
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/constant/SparseConditionalConstantPropagation.java b/src/main/java/com/android/tools/r8/ir/analysis/constant/SparseConditionalConstantPropagation.java
index 0943e86..b3b0924 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/constant/SparseConditionalConstantPropagation.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/constant/SparseConditionalConstantPropagation.java
@@ -48,7 +48,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "SparseConditionalConstantPropagation";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
index 985a626..3af88e1 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
@@ -84,7 +84,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "ArrayConstructionSimplifier";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/BinopRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/BinopRewriter.java
index 306cdeb..e8672b3 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/BinopRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/BinopRewriter.java
@@ -239,7 +239,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "BinopRewriter";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/BranchSimplifier.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/BranchSimplifier.java
index c6b6a35..c663705 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/BranchSimplifier.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/BranchSimplifier.java
@@ -73,7 +73,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "BranchSimplifier";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/CodeRewriterPass.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/CodeRewriterPass.java
index 7c84345..73afe6a 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/CodeRewriterPass.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/CodeRewriterPass.java
@@ -38,12 +38,12 @@
MethodProcessor methodProcessor,
MethodProcessingContext methodProcessingContext,
Timing timing) {
- return timing.time(getTimingId(), () -> run(code, methodProcessor, methodProcessingContext));
+ return timing.time(getRewriterId(), () -> run(code, methodProcessor, methodProcessingContext));
}
@Deprecated
public final CodeRewriterResult run(IRCode code, Timing timing) {
- return timing.time(getTimingId(), () -> run(code, null, null));
+ return timing.time(getRewriterId(), () -> run(code, null, null));
}
private CodeRewriterResult run(
@@ -51,19 +51,26 @@
MethodProcessor methodProcessor,
MethodProcessingContext methodProcessingContext) {
if (shouldRewriteCode(code)) {
- assert isAcceptingSSA()
- ? code.isConsistentSSA(appView)
- : code.isConsistentGraph(appView, false);
+ assert verifyConsistentCode(code, isAcceptingSSA(), "before");
CodeRewriterResult result = rewriteCode(code, methodProcessor, methodProcessingContext);
- assert result.hasChanged().isFalse()
- || (isProducingSSA()
- ? code.isConsistentSSA(appView)
- : code.isConsistentGraph(appView, false));
+ assert result.hasChanged().isFalse() || verifyConsistentCode(code, isProducingSSA(), "after");
return result;
}
return noChange();
}
+ private boolean verifyConsistentCode(IRCode code, boolean ssa, String preposition) {
+ boolean result;
+ String message = "Invalid code " + preposition + " " + getRewriterId();
+ try {
+ result = ssa ? code.isConsistentSSA(appView) : code.isConsistentGraph(appView, false);
+ } catch (AssertionError ae) {
+ throw new AssertionError(message, ae);
+ }
+ assert result : message;
+ return true;
+ }
+
protected CodeRewriterResult noChange() {
return CodeRewriterResult.NO_CHANGE;
}
@@ -72,7 +79,7 @@
return options.debug || context.getOrComputeReachabilitySensitive(appView);
}
- protected abstract String getTimingId();
+ protected abstract String getRewriterId();
protected boolean isAcceptingSSA() {
return true;
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/CommonSubexpressionElimination.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/CommonSubexpressionElimination.java
index 03178bb..4089a9b 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/CommonSubexpressionElimination.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/CommonSubexpressionElimination.java
@@ -30,7 +30,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "CommonSubexpressionElimination";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/DexConstantOptimizer.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/DexConstantOptimizer.java
index 60a7eec..51f6094 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/DexConstantOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/DexConstantOptimizer.java
@@ -59,7 +59,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "DexConstantOptimizer";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/FilledNewArrayRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/FilledNewArrayRewriter.java
index 7da91d4..13e590b 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/FilledNewArrayRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/FilledNewArrayRewriter.java
@@ -52,7 +52,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "FilledNewArrayRemover";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/KnownArrayLengthRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/KnownArrayLengthRewriter.java
index 76138c9..a9084b1 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/KnownArrayLengthRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/KnownArrayLengthRewriter.java
@@ -23,7 +23,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "KnownArrayLengthRewriter";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/MoveResultRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/MoveResultRewriter.java
index 0516fdc..42c9c91 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/MoveResultRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/MoveResultRewriter.java
@@ -32,7 +32,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "MoveResultRewriter";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/NaturalIntLoopRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/NaturalIntLoopRemover.java
index f426278..eaa0edb 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/NaturalIntLoopRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/NaturalIntLoopRemover.java
@@ -37,7 +37,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "NaturalIntLoopRemover";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/ParentConstructorHoistingCodeRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/ParentConstructorHoistingCodeRewriter.java
index 704669d..28b76ae 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/ParentConstructorHoistingCodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/ParentConstructorHoistingCodeRewriter.java
@@ -44,7 +44,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "Parent constructor hoisting pass";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/RedundantConstNumberRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/RedundantConstNumberRemover.java
index 4c542af..298a742 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/RedundantConstNumberRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/RedundantConstNumberRemover.java
@@ -46,7 +46,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "RedundantConstNumberRemover";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/SplitBranch.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/SplitBranch.java
index a1722af..7ebed43 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/SplitBranch.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/SplitBranch.java
@@ -33,7 +33,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "SplitBranch";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/ThrowCatchOptimizer.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/ThrowCatchOptimizer.java
index 23ec985..f8f6235 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/ThrowCatchOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/ThrowCatchOptimizer.java
@@ -47,7 +47,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "ThrowCatchOptimizer";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialCheckCastAndInstanceOfRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialCheckCastAndInstanceOfRemover.java
index 028dcb1..60ff58e 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialCheckCastAndInstanceOfRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialCheckCastAndInstanceOfRemover.java
@@ -41,7 +41,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "TrivialCheckCastAndInstanceOfRemover";
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialGotosCollapser.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialGotosCollapser.java
index 3055661..3ecb8be 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialGotosCollapser.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/TrivialGotosCollapser.java
@@ -29,7 +29,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "TrivialGotosCollapser";
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadAndStoreElimination.java b/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadAndStoreElimination.java
index e6ab075..4ee9f9b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadAndStoreElimination.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadAndStoreElimination.java
@@ -77,7 +77,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "RedundantFieldLoadAndStoreElimination";
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumValueOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumValueOptimizer.java
index cff3e70..814bb26 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumValueOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumValueOptimizer.java
@@ -54,7 +54,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "EnumValueOptimizer";
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderAppendOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderAppendOptimizer.java
index 1c81b90..bc16337 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderAppendOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderAppendOptimizer.java
@@ -90,7 +90,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "StringBuilderAppendOptimizer";
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
index bd5a79b..dbbfe16 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
@@ -46,7 +46,7 @@
}
@Override
- protected String getTimingId() {
+ protected String getRewriterId() {
return "StringOptimizer";
}