Rename slowCompareTo(T) to compareTo(T).

Change-Id: I61e2ed52f26f2a715d74018e72791a62c18b3898
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfCheckCast.java b/src/main/java/com/android/tools/r8/cf/code/CfCheckCast.java
index 7af534e..a391dbb 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfCheckCast.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfCheckCast.java
@@ -44,7 +44,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(((CfCheckCast) other).type);
+    return type.compareTo(((CfCheckCast) other).type);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java b/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
index 9d4ffa0..ced7984 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConstClass.java
@@ -40,7 +40,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(((CfConstClass) other).type);
+    return type.compareTo(((CfConstClass) other).type);
   }
 
   public DexType getType() {
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConstMethodHandle.java b/src/main/java/com/android/tools/r8/cf/code/CfConstMethodHandle.java
index 37d0ff4..9c3b478 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConstMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConstMethodHandle.java
@@ -44,7 +44,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return handle.slowCompareTo(((CfConstMethodHandle) other).handle);
+    return handle.compareTo(((CfConstMethodHandle) other).handle);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConstMethodType.java b/src/main/java/com/android/tools/r8/cf/code/CfConstMethodType.java
index b6a560f..c285c80 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConstMethodType.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConstMethodType.java
@@ -44,7 +44,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(((CfConstMethodType) other).type);
+    return type.compareTo(((CfConstMethodType) other).type);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConstString.java b/src/main/java/com/android/tools/r8/cf/code/CfConstString.java
index ee042dc..7ac89da 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConstString.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConstString.java
@@ -36,7 +36,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return string.slowCompareTo(other.asConstString().string);
+    return string.compareTo(other.asConstString().string);
   }
 
   public DexString getString() {
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfFieldInstruction.java b/src/main/java/com/android/tools/r8/cf/code/CfFieldInstruction.java
index 9b463fd..0915f0d 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfFieldInstruction.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfFieldInstruction.java
@@ -56,8 +56,8 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return Comparator.comparing(CfFieldInstruction::getField, DexField::slowCompareTo)
-        .thenComparing(field -> field.declaringField, DexField::slowCompareTo)
+    return Comparator.comparing(CfFieldInstruction::getField)
+        .thenComparing(field -> field.declaringField)
         .compare(this, (CfFieldInstruction) other);
   }
 
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInitClass.java b/src/main/java/com/android/tools/r8/cf/code/CfInitClass.java
index 2c81fce..53437ec 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInitClass.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInitClass.java
@@ -49,7 +49,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return clazz.slowCompareTo(((CfInitClass) other).clazz);
+    return clazz.compareTo(((CfInitClass) other).clazz);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInstanceOf.java b/src/main/java/com/android/tools/r8/cf/code/CfInstanceOf.java
index 899ef31..1bbb32a 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInstanceOf.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInstanceOf.java
@@ -43,7 +43,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(other.asInstanceOf().type);
+    return type.compareTo(other.asInstanceOf().type);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java b/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
index 4f5159b..3e07e17 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
@@ -62,7 +62,7 @@
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
     CfInvoke otherInvoke = other.asInvoke();
     int itfDiff = Boolean.compare(itf, otherInvoke.itf);
-    return itfDiff != 0 ? itfDiff : method.slowCompareTo(otherInvoke.method);
+    return itfDiff != 0 ? itfDiff : method.compareTo(otherInvoke.method);
   }
 
   public DexMethod getMethod() {
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfMultiANewArray.java b/src/main/java/com/android/tools/r8/cf/code/CfMultiANewArray.java
index d52e429..a504f8c 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfMultiANewArray.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfMultiANewArray.java
@@ -52,7 +52,7 @@
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
     return Comparator.comparingInt(CfMultiANewArray::getDimensions)
-        .thenComparing(CfMultiANewArray::getType, DexType::slowCompareTo)
+        .thenComparing(CfMultiANewArray::getType)
         .compare(this, ((CfMultiANewArray) other));
   }
 
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfNew.java b/src/main/java/com/android/tools/r8/cf/code/CfNew.java
index a4be181..41f468c 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfNew.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfNew.java
@@ -44,7 +44,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(((CfNew) other).type);
+    return type.compareTo(((CfNew) other).type);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfNewArray.java b/src/main/java/com/android/tools/r8/cf/code/CfNewArray.java
index 794227e..414bd58 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfNewArray.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfNewArray.java
@@ -47,7 +47,7 @@
 
   @Override
   public int internalCompareTo(CfInstruction other, CfCompareHelper helper) {
-    return type.slowCompareTo(((CfNewArray) other).type);
+    return type.compareTo(((CfNewArray) other).type);
   }
 
   private int getPrimitiveTypeCode() {
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfTryCatch.java b/src/main/java/com/android/tools/r8/cf/code/CfTryCatch.java
index 01ff28f..a93f320 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfTryCatch.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfTryCatch.java
@@ -52,7 +52,7 @@
   public int compareTo(CfTryCatch other, CfCompareHelper helper) {
     return Comparator.comparing((CfTryCatch c) -> c.start, helper::compareLabels)
         .thenComparing(c -> c.end, helper::compareLabels)
-        .thenComparing(c -> c.guards, ComparatorUtils.listComparator(DexType::slowCompareTo))
+        .thenComparing(c -> c.guards, ComparatorUtils.listComparator())
         .thenComparing(c -> c.targets, ComparatorUtils.listComparator(helper::compareLabels))
         .compare(this, other);
   }
diff --git a/src/main/java/com/android/tools/r8/code/CheckCast.java b/src/main/java/com/android/tools/r8/code/CheckCast.java
index 06edf90..32df17b 100644
--- a/src/main/java/com/android/tools/r8/code/CheckCast.java
+++ b/src/main/java/com/android/tools/r8/code/CheckCast.java
@@ -45,7 +45,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexType) other.BBBB);
+    return BBBB.compareTo((DexType) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/ConstClass.java b/src/main/java/com/android/tools/r8/code/ConstClass.java
index 5562a69..ce1c26b 100644
--- a/src/main/java/com/android/tools/r8/code/ConstClass.java
+++ b/src/main/java/com/android/tools/r8/code/ConstClass.java
@@ -30,7 +30,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexType) other.BBBB);
+    return BBBB.compareTo((DexType) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/ConstMethodHandle.java b/src/main/java/com/android/tools/r8/code/ConstMethodHandle.java
index d69329a..0409f06 100644
--- a/src/main/java/com/android/tools/r8/code/ConstMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/code/ConstMethodHandle.java
@@ -52,7 +52,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexMethodHandle) other.BBBB);
+    return BBBB.compareTo((DexMethodHandle) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/ConstMethodType.java b/src/main/java/com/android/tools/r8/code/ConstMethodType.java
index ba6e89f..8f54c24 100644
--- a/src/main/java/com/android/tools/r8/code/ConstMethodType.java
+++ b/src/main/java/com/android/tools/r8/code/ConstMethodType.java
@@ -51,7 +51,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexProto) other.BBBB);
+    return BBBB.compareTo((DexProto) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/ConstString.java b/src/main/java/com/android/tools/r8/code/ConstString.java
index 0b44f8a..e9e910d 100644
--- a/src/main/java/com/android/tools/r8/code/ConstString.java
+++ b/src/main/java/com/android/tools/r8/code/ConstString.java
@@ -35,7 +35,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexString) other.BBBB);
+    return BBBB.compareTo((DexString) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/DexInitClass.java b/src/main/java/com/android/tools/r8/code/DexInitClass.java
index 2d9cda9..ab39c88 100644
--- a/src/main/java/com/android/tools/r8/code/DexInitClass.java
+++ b/src/main/java/com/android/tools/r8/code/DexInitClass.java
@@ -129,7 +129,7 @@
   @Override
   final int internalCompareTo(Instruction other) {
     return Comparator.comparingInt((DexInitClass i) -> i.dest)
-        .thenComparing(i -> i.clazz, DexType::slowCompareTo)
+        .thenComparing(i -> i.clazz)
         .compare(this, (DexInitClass) other);
   }
 
diff --git a/src/main/java/com/android/tools/r8/code/FilledNewArray.java b/src/main/java/com/android/tools/r8/code/FilledNewArray.java
index b432eec..a1ee0ba 100644
--- a/src/main/java/com/android/tools/r8/code/FilledNewArray.java
+++ b/src/main/java/com/android/tools/r8/code/FilledNewArray.java
@@ -44,7 +44,7 @@
 
   @Override
   int internalCompareBBBB(Format35c<?> other) {
-    return BBBB.slowCompareTo((DexType) other.BBBB);
+    return BBBB.compareTo((DexType) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/FilledNewArrayRange.java b/src/main/java/com/android/tools/r8/code/FilledNewArrayRange.java
index 13dc9a5..03594c2 100644
--- a/src/main/java/com/android/tools/r8/code/FilledNewArrayRange.java
+++ b/src/main/java/com/android/tools/r8/code/FilledNewArrayRange.java
@@ -44,7 +44,7 @@
 
   @Override
   int internalCompareBBBB(Format3rc<?> other) {
-    return BBBB.slowCompareTo((DexType) other.BBBB);
+    return BBBB.compareTo((DexType) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/Format31c.java b/src/main/java/com/android/tools/r8/code/Format31c.java
index a1ae51e..672057b 100644
--- a/src/main/java/com/android/tools/r8/code/Format31c.java
+++ b/src/main/java/com/android/tools/r8/code/Format31c.java
@@ -54,7 +54,7 @@
   final int internalCompareTo(Instruction other) {
     Format31c o = (Format31c) other;
     int diff = Short.compare(AA, o.AA);
-    return diff != 0 ? diff : BBBBBBBB.slowCompareTo(o.BBBBBBBB);
+    return diff != 0 ? diff : BBBBBBBB.compareTo(o.BBBBBBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/Format45cc.java b/src/main/java/com/android/tools/r8/code/Format45cc.java
index aa62780..bb0e1c7 100644
--- a/src/main/java/com/android/tools/r8/code/Format45cc.java
+++ b/src/main/java/com/android/tools/r8/code/Format45cc.java
@@ -90,8 +90,8 @@
     if (diff != 0) {
       return diff;
     }
-    int bDiff = BBBB.slowCompareTo(o.BBBB);
-    return bDiff != 0 ? bDiff : HHHH.slowCompareTo(o.HHHH);
+    int bDiff = BBBB.compareTo(o.BBBB);
+    return bDiff != 0 ? bDiff : HHHH.compareTo(o.HHHH);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/Format4rcc.java b/src/main/java/com/android/tools/r8/code/Format4rcc.java
index 690b230..f29357d 100644
--- a/src/main/java/com/android/tools/r8/code/Format4rcc.java
+++ b/src/main/java/com/android/tools/r8/code/Format4rcc.java
@@ -73,8 +73,8 @@
   final int internalCompareTo(Instruction other) {
     return Comparator.comparingInt((Format4rcc i) -> i.AA)
         .thenComparingInt(i -> i.CCCC)
-        .thenComparing(i -> i.BBBB, DexMethod::slowCompareTo)
-        .thenComparing(i -> i.HHHH, DexProto::slowCompareTo)
+        .thenComparing(i -> i.BBBB)
+        .thenComparing(i -> i.HHHH)
         .compare(this, (Format4rcc) other);
   }
 
diff --git a/src/main/java/com/android/tools/r8/code/InvokeMethod.java b/src/main/java/com/android/tools/r8/code/InvokeMethod.java
index de46296..ec8e6c4 100644
--- a/src/main/java/com/android/tools/r8/code/InvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/code/InvokeMethod.java
@@ -43,7 +43,7 @@
 
   @Override
   int internalCompareBBBB(Format35c<?> other) {
-    return BBBB.slowCompareTo((DexMethod) other.BBBB);
+    return BBBB.compareTo((DexMethod) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/InvokeMethodRange.java b/src/main/java/com/android/tools/r8/code/InvokeMethodRange.java
index 102d793..19c2bf1 100644
--- a/src/main/java/com/android/tools/r8/code/InvokeMethodRange.java
+++ b/src/main/java/com/android/tools/r8/code/InvokeMethodRange.java
@@ -43,7 +43,7 @@
 
   @Override
   int internalCompareBBBB(Format3rc<?> other) {
-    return BBBB.slowCompareTo((DexMethod) other.BBBB);
+    return BBBB.compareTo((DexMethod) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/NewInstance.java b/src/main/java/com/android/tools/r8/code/NewInstance.java
index d3d25c6..0b90d1a 100644
--- a/src/main/java/com/android/tools/r8/code/NewInstance.java
+++ b/src/main/java/com/android/tools/r8/code/NewInstance.java
@@ -45,7 +45,7 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexType) other.BBBB);
+    return BBBB.compareTo((DexType) other.BBBB);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/code/SgetOrSput.java b/src/main/java/com/android/tools/r8/code/SgetOrSput.java
index 48112fc..4524f8e 100644
--- a/src/main/java/com/android/tools/r8/code/SgetOrSput.java
+++ b/src/main/java/com/android/tools/r8/code/SgetOrSput.java
@@ -50,6 +50,6 @@
 
   @Override
   int internalCompareBBBB(Format21c<?> other) {
-    return BBBB.slowCompareTo((DexField) other.BBBB);
+    return BBBB.compareTo((DexField) other.BBBB);
   }
 }
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
index ad1663a..2ad4409 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
@@ -613,8 +613,8 @@
         return MethodToCodeObjectMapping.fromMethodBacking();
       }
       // If the globally highest sorting string is not a jumbo string this is also a no-op.
-      if (application.highestSortingString != null &&
-          application.highestSortingString.slowCompareTo(mapping.getFirstJumboString()) < 0) {
+      if (application.highestSortingString != null
+          && application.highestSortingString.compareTo(mapping.getFirstJumboString()) < 0) {
         return MethodToCodeObjectMapping.fromMethodBacking();
       }
     }
@@ -671,7 +671,7 @@
     StringBuilder builder = new StringBuilder();
     List<DexType> list = new ArrayList<>(mainDexClasses.size());
     mainDexClasses.forEach(list::add);
-    list.sort(DexType::slowCompareTo);
+    list.sort(DexType::compareTo);
     list.forEach(
         type -> builder.append(mapMainDexListName(type, namingLens)).append('\n'));
     return builder.toString();
diff --git a/src/main/java/com/android/tools/r8/dex/DexParser.java b/src/main/java/com/android/tools/r8/dex/DexParser.java
index 24d3a36..48fded1 100644
--- a/src/main/java/com/android/tools/r8/dex/DexParser.java
+++ b/src/main/java/com/android/tools/r8/dex/DexParser.java
@@ -609,7 +609,7 @@
       // compareTo instead of slowCompareTo. That would require us to assign indices during
       // reading. Those indices should be cleared after reading to make sure that we resort
       // everything correctly at the end.
-      while (index < annotations.length && annotations[index].item.slowCompareTo(item) < 0) {
+      while (index < annotations.length && annotations[index].item.compareTo(item) < 0) {
         index++;
       }
       if (index >= annotations.length || !annotations[index].item.equals(item)) {
diff --git a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
index cad079b..8e8750a 100644
--- a/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
+++ b/src/main/java/com/android/tools/r8/dex/InheritanceClassInDexDistributor.java
@@ -45,7 +45,7 @@
 public class InheritanceClassInDexDistributor {
 
   private static final Comparator<DexProgramClass> DEX_PROGRAM_CLASS_COMPARATOR =
-      (a, b) -> a.type.descriptor.slowCompareTo(b.type.descriptor);
+      (a, b) -> a.type.descriptor.compareTo(b.type.descriptor);
 
   private static final int DEX_FULL_ENOUGH_THRESHOLD = VirtualFile.MAX_ENTRIES - 100;
   private final ExecutorService executorService;
diff --git a/src/main/java/com/android/tools/r8/dex/JumboStringRewriter.java b/src/main/java/com/android/tools/r8/dex/JumboStringRewriter.java
index d1f8749..e402ce5 100644
--- a/src/main/java/com/android/tools/r8/dex/JumboStringRewriter.java
+++ b/src/main/java/com/android/tools/r8/dex/JumboStringRewriter.java
@@ -281,7 +281,7 @@
         instruction.setOffset(orignalOffset + offsetDelta);
         if (instruction instanceof ConstString) {
           ConstString string = (ConstString) instruction;
-          if (string.getString().slowCompareTo(firstJumboString) >= 0) {
+          if (string.getString().compareTo(firstJumboString) >= 0) {
             ConstStringJumbo jumboString = new ConstStringJumbo(string.AA, string.getString());
             jumboString.setOffset(string.getOffset());
             offsetDelta++;
diff --git a/src/main/java/com/android/tools/r8/graph/DebugLocalInfo.java b/src/main/java/com/android/tools/r8/graph/DebugLocalInfo.java
index 3bb9931..333b8a7 100644
--- a/src/main/java/com/android/tools/r8/graph/DebugLocalInfo.java
+++ b/src/main/java/com/android/tools/r8/graph/DebugLocalInfo.java
@@ -33,9 +33,9 @@
 
   @Override
   public int compareTo(DebugLocalInfo other) {
-    return Comparator.comparing((DebugLocalInfo info) -> info.name, DexString::slowCompareTo)
-        .thenComparing(info -> info.type, DexType::slowCompareTo)
-        .thenComparing(info -> info.signature, Comparator.nullsFirst(DexString::slowCompareTo))
+    return Comparator.comparing((DebugLocalInfo info) -> info.name)
+        .thenComparing(info -> info.type)
+        .thenComparing(info -> info.signature, Comparator.nullsFirst(DexString::compareTo))
         .compare(this, other);
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/DexApplication.java b/src/main/java/com/android/tools/r8/graph/DexApplication.java
index abb91ed..6e38ed4 100644
--- a/src/main/java/com/android/tools/r8/graph/DexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DexApplication.java
@@ -109,7 +109,7 @@
     // that.
     if (options.testing.deterministicSortingBasedOnDexType) {
       // To keep the order deterministic, we sort the classes by their type, which is a unique key.
-      classes.sort((a, b) -> a.type.slowCompareTo(b.type));
+      classes.sort((a, b) -> a.type.compareTo(b.type));
     }
     return classes;
   }
diff --git a/src/main/java/com/android/tools/r8/graph/DexCallSite.java b/src/main/java/com/android/tools/r8/graph/DexCallSite.java
index bcb8873..b38e016 100644
--- a/src/main/java/com/android/tools/r8/graph/DexCallSite.java
+++ b/src/main/java/com/android/tools/r8/graph/DexCallSite.java
@@ -158,7 +158,7 @@
   @Override
   public int compareTo(DexCallSite other) {
     assert method != null && other.method != null;
-    int methodCompare = method.slowCompareTo(other.method);
+    int methodCompare = method.compareTo(other.method);
     if (methodCompare != 0) {
       return methodCompare;
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexCode.java b/src/main/java/com/android/tools/r8/graph/DexCode.java
index 7a9c724..ab974b3 100644
--- a/src/main/java/com/android/tools/r8/graph/DexCode.java
+++ b/src/main/java/com/android/tools/r8/graph/DexCode.java
@@ -430,7 +430,7 @@
 
   private void updateHighestSortingString(DexString candidate) {
     assert candidate != null;
-    if (highestSortingString == null || highestSortingString.slowCompareTo(candidate) < 0) {
+    if (highestSortingString == null || highestSortingString.compareTo(candidate) < 0) {
       highestSortingString = candidate;
     }
   }
@@ -621,7 +621,7 @@
           return 0;
         }
         return Comparator.comparingInt((TypeAddrPair p) -> p.addr)
-            .thenComparing(p -> p.type, DexType::slowCompareTo)
+            .thenComparing(p -> p.type)
             .compare(this, other);
       }
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java b/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
index 903686d..16842b0 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugEvent.java
@@ -300,9 +300,9 @@
     @Override
     int internalCompareTo(DexDebugEvent other) {
       return Comparator.comparingInt((StartLocal e) -> e.registerNum)
-          .thenComparing(e -> e.name, DexString::slowCompareTo)
-          .thenComparing(e -> e.type, DexType::slowCompareTo)
-          .thenComparing(e -> e.signature, Comparator.nullsFirst(DexString::slowCompareTo))
+          .thenComparing(e -> e.name)
+          .thenComparing(e -> e.type)
+          .thenComparing(e -> e.signature, Comparator.nullsFirst(DexString::compareTo))
           .compare(this, (StartLocal) other);
     }
   }
@@ -431,7 +431,7 @@
 
     @Override
     int internalCompareTo(DexDebugEvent other) {
-      return fileName.slowCompareTo(((SetFile) other).fileName);
+      return fileName.compareTo(((SetFile) other).fileName);
     }
   }
 
@@ -473,7 +473,7 @@
 
     @Override
     int internalCompareTo(DexDebugEvent other) {
-      return Comparator.comparing((SetInlineFrame e) -> e.callee, DexMethod::slowCompareTo)
+      return Comparator.comparing((SetInlineFrame e) -> e.callee, DexMethod::compareTo)
           .thenComparing(e -> e.caller, Comparator.nullsFirst(Position::compareTo))
           .compare(this, (SetInlineFrame) other);
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java b/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
index 5e44a57..5bfbd8d 100644
--- a/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
+++ b/src/main/java/com/android/tools/r8/graph/DexDebugInfo.java
@@ -54,7 +54,7 @@
     return Comparator.comparingInt((DexDebugInfo i) -> i.startLine)
         .thenComparing(
             i -> i.parameters,
-            ComparatorUtils.arrayComparator(Comparator.nullsFirst(DexString::slowCompareTo)))
+            ComparatorUtils.arrayComparator(Comparator.nullsFirst(DexString::compareTo)))
         .thenComparing(i -> i.events, ComparatorUtils.arrayComparator())
         .compare(this, other);
   }
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java b/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
index cb4eb4e..051dd92 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedAnnotation.java
@@ -78,7 +78,7 @@
       assert sorted == sortedHashCode();
       return;
     }
-    Arrays.sort(elements, (a, b) -> a.name.slowCompareTo(b.name));
+    Arrays.sort(elements, (a, b) -> a.name.compareTo(b.name));
     for (DexAnnotationElement element : elements) {
       element.value.sort();
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index 201803b..e84e3e8 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -1432,7 +1432,7 @@
   }
 
   public static int slowCompare(DexEncodedMethod m1, DexEncodedMethod m2) {
-    return m1.method.slowCompareTo(m2.method);
+    return m1.method.compareTo(m2.method);
   }
 
   public MethodOptimizationInfo getOptimizationInfo() {
diff --git a/src/main/java/com/android/tools/r8/graph/DexField.java b/src/main/java/com/android/tools/r8/graph/DexField.java
index 2688b86..755ff8fe 100644
--- a/src/main/java/com/android/tools/r8/graph/DexField.java
+++ b/src/main/java/com/android/tools/r8/graph/DexField.java
@@ -149,7 +149,7 @@
     if (result != 0) {
       return result;
     }
-    result = namingLens.lookupName(this).slowCompareTo(namingLens.lookupName(other));
+    result = namingLens.lookupName(this).compareTo(namingLens.lookupName(other));
     if (result != 0) {
       return result;
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethod.java b/src/main/java/com/android/tools/r8/graph/DexMethod.java
index cd4fc7d..6a07b34 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethod.java
@@ -204,7 +204,7 @@
     if (result != 0) {
       return result;
     }
-    result = namingLens.lookupName(this).slowCompareTo(namingLens.lookupName(other));
+    result = namingLens.lookupName(this).compareTo(namingLens.lookupName(other));
     if (result != 0) {
       return result;
     }
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java b/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
index 590375f..f34c70c 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
@@ -317,10 +317,10 @@
     int result = type.getValue() - other.type.getValue();
     if (result == 0) {
       if (isFieldHandle()) {
-        result = asField().slowCompareTo(other.asField());
+        result = asField().compareTo(other.asField());
       } else {
         assert isMethodHandle();
-        result = asMethod().slowCompareTo(other.asMethod());
+        result = asMethod().compareTo(other.asMethod());
       }
     }
     return result;
diff --git a/src/main/java/com/android/tools/r8/graph/DexReference.java b/src/main/java/com/android/tools/r8/graph/DexReference.java
index 3263b6d..d32c7ba 100644
--- a/src/main/java/com/android/tools/r8/graph/DexReference.java
+++ b/src/main/java/com/android/tools/r8/graph/DexReference.java
@@ -80,12 +80,12 @@
       return typeDiff;
     }
     if (isDexType()) {
-      return asDexType().slowCompareTo(o.asDexType());
+      return asDexType().compareTo(o.asDexType());
     }
     if (isDexField()) {
-      return asDexField().slowCompareTo(o.asDexField());
+      return asDexField().compareTo(o.asDexField());
     }
     assert isDexMethod();
-    return asDexMethod().slowCompareTo(o.asDexMethod());
+    return asDexMethod().compareTo(o.asDexMethod());
   }
 }
diff --git a/src/main/java/com/android/tools/r8/graph/DexTypeList.java b/src/main/java/com/android/tools/r8/graph/DexTypeList.java
index 318bed8..28ff803 100644
--- a/src/main/java/com/android/tools/r8/graph/DexTypeList.java
+++ b/src/main/java/com/android/tools/r8/graph/DexTypeList.java
@@ -125,7 +125,7 @@
       } else if (i == other.values.length) {
         return 1;
       } else {
-        int result = values[i].slowCompareTo(other.values[i]);
+        int result = values[i].compareTo(other.values[i]);
         if (result != 0) {
           return result;
         }
@@ -161,7 +161,7 @@
     }
 
     DexType[] newValues = values.clone();
-    Arrays.sort(newValues, DexType::slowCompareTo);
+    Arrays.sort(newValues);
     return new DexTypeList(newValues);
   }
 }
diff --git a/src/main/java/com/android/tools/r8/graph/MethodCollection.java b/src/main/java/com/android/tools/r8/graph/MethodCollection.java
index d483a59..3200163 100644
--- a/src/main/java/com/android/tools/r8/graph/MethodCollection.java
+++ b/src/main/java/com/android/tools/r8/graph/MethodCollection.java
@@ -137,7 +137,7 @@
   public List<DexEncodedMethod> allMethodsSorted() {
     List<DexEncodedMethod> sorted = new ArrayList<>(size());
     forEachMethod(sorted::add);
-    sorted.sort((a, b) -> a.method.slowCompareTo(b.method));
+    sorted.sort((a, b) -> a.method.compareTo(b.method));
     return sorted;
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/MethodMapBacking.java b/src/main/java/com/android/tools/r8/graph/MethodMapBacking.java
index 2874e03..c6f7a5f 100644
--- a/src/main/java/com/android/tools/r8/graph/MethodMapBacking.java
+++ b/src/main/java/com/android/tools/r8/graph/MethodMapBacking.java
@@ -34,7 +34,7 @@
   }
 
   public static MethodMapBacking createSorted() {
-    Comparator<Wrapper<DexMethod>> comparator = (x, y) -> x.get().slowCompareTo(y.get());
+    Comparator<Wrapper<DexMethod>> comparator = (x, y) -> x.get().compareTo(y.get());
     return new MethodMapBacking(new Object2ReferenceRBTreeMap<>(comparator));
   }
 
diff --git a/src/main/java/com/android/tools/r8/graph/PresortedComparable.java b/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
index da5c076..82e53c3 100644
--- a/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
+++ b/src/main/java/com/android/tools/r8/graph/PresortedComparable.java
@@ -7,9 +7,5 @@
 
 public interface PresortedComparable<T> extends Comparable<T> {
 
-  default int slowCompareTo(T other) {
-    return compareTo(other);
-  }
-
   int slowCompareTo(T other, NamingLens namingLens);
 }
diff --git a/src/main/java/com/android/tools/r8/graph/SortedProgramPackage.java b/src/main/java/com/android/tools/r8/graph/SortedProgramPackage.java
index 97afd09..08be3b6 100644
--- a/src/main/java/com/android/tools/r8/graph/SortedProgramPackage.java
+++ b/src/main/java/com/android/tools/r8/graph/SortedProgramPackage.java
@@ -9,6 +9,6 @@
 public class SortedProgramPackage extends ProgramPackage {
 
   public SortedProgramPackage(String packageDescriptor) {
-    super(packageDescriptor, () -> new TreeSet<>((a, b) -> a.getType().slowCompareTo(b.getType())));
+    super(packageDescriptor, () -> new TreeSet<>((a, b) -> a.getType().compareTo(b.getType())));
   }
 }
diff --git a/src/main/java/com/android/tools/r8/graph/SubtypingInfo.java b/src/main/java/com/android/tools/r8/graph/SubtypingInfo.java
index b73d2bc..d9b17f2 100644
--- a/src/main/java/com/android/tools/r8/graph/SubtypingInfo.java
+++ b/src/main/java/com/android/tools/r8/graph/SubtypingInfo.java
@@ -280,7 +280,7 @@
 
     private void ensureDirectSubTypeSet() {
       if (directSubtypes == NO_DIRECT_SUBTYPE) {
-        directSubtypes = new ConcurrentSkipListSet<>(DexType::slowCompareTo);
+        directSubtypes = new ConcurrentSkipListSet<>(DexType::compareTo);
       }
     }
 
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoOverlappingConstructors.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoOverlappingConstructors.java
index 474fcea..245b391 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoOverlappingConstructors.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/policies/NoOverlappingConstructors.java
@@ -7,7 +7,6 @@
 import com.android.tools.r8.graph.DexEncodedMethod;
 import com.android.tools.r8.graph.DexProgramClass;
 import com.android.tools.r8.graph.DexProto;
-import com.android.tools.r8.graph.DexType;
 import com.android.tools.r8.horizontalclassmerging.MultiClassPolicy;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -35,8 +34,7 @@
 
   private Set<DexProgramClass> sortedClassSet(Collection<DexProgramClass> classes) {
     Set<DexProgramClass> set =
-        new TreeSet<DexProgramClass>(
-            Comparator.comparing(DexProgramClass::getType, DexType::slowCompareTo));
+        new TreeSet<DexProgramClass>(Comparator.comparing(DexProgramClass::getType));
     set.addAll(classes);
     return set;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/type/ClassTypeElement.java b/src/main/java/com/android/tools/r8/ir/analysis/type/ClassTypeElement.java
index edd1b91..eeeea70 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/type/ClassTypeElement.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/type/ClassTypeElement.java
@@ -134,7 +134,7 @@
     Set<DexType> interfaces = getInterfaces();
     if (interfaces != null) {
       List<DexType> sortedInterfaces = new ArrayList<>(interfaces);
-      sortedInterfaces.sort(DexType::slowCompareTo);
+      sortedInterfaces.sort(DexType::compareTo);
       builder.append(
           sortedInterfaces.stream().map(DexType::toString).collect(Collectors.joining(", ")));
     }
diff --git a/src/main/java/com/android/tools/r8/ir/code/Position.java b/src/main/java/com/android/tools/r8/ir/code/Position.java
index 6cc4f93..ab28d55 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Position.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Position.java
@@ -134,9 +134,9 @@
       return 0;
     }
     return Comparator.comparingInt((Position p) -> p.line)
-        .thenComparing(p -> p.file, Comparator.nullsFirst(DexString::slowCompareTo))
+        .thenComparing(p -> p.file, Comparator.nullsFirst(DexString::compareTo))
         .thenComparing(p -> p.synthetic)
-        .thenComparing(p -> p.method, DexMethod::slowCompareTo)
+        .thenComparing(p -> p.method)
         .thenComparing(p -> p.callerPosition, Comparator.nullsFirst(Position::compareTo))
         .compare(this, o);
   }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CallGraph.java b/src/main/java/com/android/tools/r8/ir/conversion/CallGraph.java
index 2084df9..66d7fa4 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CallGraph.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CallGraph.java
@@ -203,9 +203,7 @@
 
     @Override
     public int compareTo(Node other) {
-      return getProgramMethod()
-          .getReference()
-          .slowCompareTo(other.getProgramMethod().getReference());
+      return getProgramMethod().getReference().compareTo(other.getProgramMethod().getReference());
     }
 
     @Override
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index d3a2531..ec95001 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -1769,7 +1769,7 @@
     DexString highestSortingReferencedString = method.getCode().asDexCode().highestSortingString;
     if (highestSortingReferencedString != null) {
       if (highestSortingString == null
-          || highestSortingReferencedString.slowCompareTo(highestSortingString) > 0) {
+          || highestSortingReferencedString.compareTo(highestSortingString) > 0) {
         highestSortingString = highestSortingReferencedString;
       }
     }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
index 2a4225f..0884ab5 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
@@ -423,7 +423,7 @@
     }
     // We need to introduce them in deterministic order for deterministic compilation.
     ArrayList<DexType> sortedEmulatedInterfaces = new ArrayList<>(emulatedInterfaces);
-    Collections.sort(sortedEmulatedInterfaces, DexType::slowCompareTo);
+    Collections.sort(sortedEmulatedInterfaces);
     List<GenericSignature.ClassTypeSignature> extraInterfaceSignatures = new ArrayList<>();
     for (DexType extraInterface : sortedEmulatedInterfaces) {
       extraInterfaceSignatures.add(
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/DesugaredLibraryRetargeter.java b/src/main/java/com/android/tools/r8/ir/desugar/DesugaredLibraryRetargeter.java
index 904ca7e..214c17a 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/DesugaredLibraryRetargeter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/DesugaredLibraryRetargeter.java
@@ -180,7 +180,7 @@
                   .computeIfAbsent(
                       newClass,
                       ignore ->
-                          new TreeSet<>((x, y) -> x.getReference().slowCompareTo(y.getReference())))
+                          new TreeSet<>((x, y) -> x.getReference().compareTo(y.getReference())))
                   .add(
                       new DexEncodedMethod(
                           retargetMethod,
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
index d6f6264..ddcb3c7 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
@@ -588,7 +588,7 @@
     Map<DexType, List<DexType>> emulatedInterfacesHierarchy = new IdentityHashMap<>();
     Set<DexType> processed = Sets.newIdentityHashSet();
     ArrayList<DexType> emulatedInterfacesSorted = new ArrayList<>(emulatedInterfaces.keySet());
-    emulatedInterfacesSorted.sort(DexType::slowCompareTo);
+    emulatedInterfacesSorted.sort(DexType::compareTo);
     for (DexType interfaceType : emulatedInterfacesSorted) {
       processEmulatedInterfaceHierarchy(interfaceType, processed, emulatedInterfacesHierarchy);
     }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
index 11cff1a..9688ae8 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaRewriter.java
@@ -111,7 +111,7 @@
       throws ExecutionException {
     SortedProgramMethodSet nonDexAccessibilityBridges = SortedProgramMethodSet.create();
     List<LambdaClass> sortedLambdaClasses = new ArrayList<>(lambdaClasses);
-    sortedLambdaClasses.sort((x, y) -> x.type.slowCompareTo(y.type));
+    sortedLambdaClasses.sort((x, y) -> x.type.compareTo(y.type));
     for (LambdaClass lambdaClass : sortedLambdaClasses) {
       // This call may cause originalMethodSignatures to be updated.
       ProgramMethod accessibilityBridge = lambdaClass.target.ensureAccessibilityIfNeeded(true);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
index 334238d..ab140c8 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Outliner.java
@@ -337,7 +337,7 @@
         return super.compareTo(other);
       }
       NewInstanceOutlineInstruction o = (NewInstanceOutlineInstruction) other;
-      return clazz.slowCompareTo(o.clazz);
+      return clazz.compareTo(o.clazz);
     }
 
     @Override
@@ -435,7 +435,7 @@
         return super.compareTo(other);
       }
       InvokeOutlineInstruction o = (InvokeOutlineInstruction) other;
-      int result = method.slowCompareTo(o.method);
+      int result = method.compareTo(o.method);
       if (result != 0) {
         return result;
       }
@@ -448,7 +448,7 @@
         return result;
       }
       if (proto != null) {
-        result = proto.slowCompareTo(o.proto);
+        result = proto.compareTo(o.proto);
         if (result != 0) {
           return result;
         }
@@ -630,7 +630,7 @@
       }
       // First compare the proto.
       int result;
-      result = buildProto().slowCompareTo(other.buildProto());
+      result = buildProto().compareTo(other.buildProto());
       if (result != 0) {
         assert !equals(other);
         return result;
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
index 27c125a..bfb520d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
@@ -584,7 +584,7 @@
     }
     // We make the order deterministic.
     for (List<T> value : encodedMembersMap.values()) {
-      value.sort((m1, m2) -> m1.getReference().slowCompareTo(m2.getReference()));
+      value.sort((m1, m2) -> m1.getReference().compareTo(m2.getReference()));
     }
     return encodedMembersMap;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
index c203772..a0ea10c 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/UnboxedEnumMemberRelocator.java
@@ -143,7 +143,7 @@
       for (DexProgramClass context : contexts) {
         if (deterministicContext == null) {
           deterministicContext = context.type;
-        } else if (context.type.slowCompareTo(deterministicContext) < 0) {
+        } else if (context.type.compareTo(deterministicContext) < 0) {
           deterministicContext = context.type;
         }
       }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/field/InstanceFieldInitializationInfoCollection.java b/src/main/java/com/android/tools/r8/ir/optimize/info/field/InstanceFieldInitializationInfoCollection.java
index 775d7e9..9fa412a 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/field/InstanceFieldInitializationInfoCollection.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/field/InstanceFieldInitializationInfoCollection.java
@@ -43,8 +43,7 @@
 
   public static class Builder {
 
-    TreeMap<DexField, InstanceFieldInitializationInfo> infos =
-        new TreeMap<>(DexField::slowCompareTo);
+    TreeMap<DexField, InstanceFieldInitializationInfo> infos = new TreeMap<>(DexField::compareTo);
 
     public void recordInitializationInfo(
         DexEncodedField field, InstanceFieldInitializationInfo info) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
index 8aacbde..5e75124 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/lambda/LambdaMerger.java
@@ -257,7 +257,7 @@
                 appView.testing().kotlinLambdaMergerFactoryForClass.apply(cls) != null
                     && KotlinLambdaGroupIdFactory.hasValidAnnotations(kotlin, cls)
                     && !appView.appInfo().getClassToFeatureSplitMap().isInFeature(cls))
-        .sorted((a, b) -> a.type.slowCompareTo(b.type)) // Ensure stable ordering.
+        .sorted((a, b) -> a.type.compareTo(b.type)) // Ensure stable ordering.
         .forEachOrdered(
             lambda -> {
               try {
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index 26464d1..215d872 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -228,8 +228,7 @@
     }
     if (options.desugarSpecificOptions().sortMethodsOnCfOutput) {
       SortedSet<ProgramMethod> programMethodSortedSet =
-          Sets.newTreeSet(
-              (a, b) -> a.getDefinition().method.slowCompareTo(b.getDefinition().method));
+          Sets.newTreeSet((a, b) -> a.getDefinition().method.compareTo(b.getDefinition().method));
       clazz.forEachProgramMethod(programMethodSortedSet::add);
       programMethodSortedSet.forEach(
           method -> writeMethod(method, version, rewriter, writer, defaults));
diff --git a/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java b/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
index b014c4f..55ed725 100644
--- a/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/FieldNameMinifier.java
@@ -301,7 +301,7 @@
     }
 
     private Set<DexClass> buildSortedPartition(DexClass src) {
-      Set<DexClass> partition = new TreeSet<>((x, y) -> x.type.slowCompareTo(y.type));
+      Set<DexClass> partition = new TreeSet<>((x, y) -> x.type.compareTo(y.type));
 
       Deque<DexType> worklist = new ArrayDeque<>();
       worklist.add(src.type);
diff --git a/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java b/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
index e6fcce6..86dac13 100644
--- a/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/InterfaceMethodNameMinifier.java
@@ -264,7 +264,7 @@
       // reservation, we have to prioritize that over the others, otherwise we just propose the
       // first ordered reserved name since we do not allow overwriting the name.
       List<DexEncodedMethod> sortedMethods = Lists.newArrayList(methodStates.keySet());
-      sortedMethods.sort((x, y) -> x.getReference().slowCompareTo(y.getReference()));
+      sortedMethods.sort((x, y) -> x.getReference().compareTo(y.getReference()));
       DexString reservedName = null;
       for (DexEncodedMethod method : sortedMethods) {
         for (InterfaceReservationState state : methodStates.get(method)) {
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index b886f2b..9893fb7 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -47,7 +47,7 @@
     assert appView.options().isMinifying();
     SubtypingInfo subtypingInfo = appView.appInfo().computeSubtypingInfo();
     timing.begin("ComputeInterfaces");
-    Set<DexClass> interfaces = new TreeSet<>((a, b) -> a.type.slowCompareTo(b.type));
+    Set<DexClass> interfaces = new TreeSet<>((a, b) -> a.type.compareTo(b.type));
     interfaces.addAll(appView.appInfo().computeReachableInterfaces());
     timing.end();
     timing.begin("MinifyClasses");
diff --git a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
index a81ebd7..6d8c889 100644
--- a/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
+++ b/src/main/java/com/android/tools/r8/naming/ProguardMapMinifier.java
@@ -73,7 +73,7 @@
   private final SeedMapper seedMapper;
   private final BiMap<DexType, DexString> mappedNames = HashBiMap.create();
   // To keep the order deterministic, we sort the classes by their type, which is a unique key.
-  private final Set<DexClass> mappedClasses = new TreeSet<>((a, b) -> a.type.slowCompareTo(b.type));
+  private final Set<DexClass> mappedClasses = new TreeSet<>((a, b) -> a.type.compareTo(b.type));
   private final Map<DexReference, MemberNaming> memberNames = Maps.newIdentityHashMap();
   private final Map<DexType, DexString> syntheticCompanionClasses = Maps.newIdentityHashMap();
   private final Map<DexMethod, DexString> defaultInterfaceMethodImplementationNames =
@@ -95,7 +95,7 @@
     Set<DexReference> notMappedReferences = new HashSet<>();
 
     timing.begin("MappingInterfaces");
-    Set<DexClass> interfaces = new TreeSet<>((a, b) -> a.type.slowCompareTo(b.type));
+    Set<DexClass> interfaces = new TreeSet<>((a, b) -> a.type.compareTo(b.type));
     Consumer<DexClass> consumer =
         dexClass -> {
           if (dexClass.isInterface()) {
diff --git a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
index 3fc3c24..136595a 100644
--- a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
+++ b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
@@ -224,7 +224,7 @@
         (bridgeHolder, targets) -> {
           // Sorting the list of bridges within a class maintains a deterministic order of entries
           // in the method collection.
-          targets.sort((p1, p2) -> p1.getFirst().slowCompareTo(p2.getFirst()));
+          targets.sort((p1, p2) -> p1.getFirst().compareTo(p2.getFirst()));
           for (Pair<DexMethod, DexEncodedMethod> pair : targets) {
             DexMethod method = pair.getFirst();
             DexEncodedMethod target = pair.getSecond();
diff --git a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
index 0d2c4e8..cea7fc2 100644
--- a/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
+++ b/src/main/java/com/android/tools/r8/optimize/bridgehoisting/BridgeHoisting.java
@@ -113,7 +113,7 @@
 
   private void processClass(DexProgramClass clazz, SubtypingInfo subtypingInfo) {
     Set<DexType> subtypes = subtypingInfo.allImmediateSubtypes(clazz.type);
-    Set<DexProgramClass> subclasses = new TreeSet<>((x, y) -> x.type.slowCompareTo(y.type));
+    Set<DexProgramClass> subclasses = new TreeSet<>((x, y) -> x.type.compareTo(y.type));
     for (DexType subtype : subtypes) {
       DexProgramClass subclass = asProgramClassOrNull(appView.definitionFor(subtype));
       if (subclass == null) {
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
index 7267bac..4b406e2 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
@@ -1705,7 +1705,7 @@
     assert method.getHolderType() == options.dexItemFactory().objectType;
     OriginWithPosition key = new OriginWithPosition(context.getOrigin(), context.getPosition());
     assumeNoSideEffectsWarnings
-        .computeIfAbsent(key, ignore -> new TreeSet<>(DexMethod::slowCompareTo))
+        .computeIfAbsent(key, ignore -> new TreeSet<>(DexMethod::compareTo))
         .add(method.getReference());
   }
 
diff --git a/src/main/java/com/android/tools/r8/shaking/UnusedItemsPrinter.java b/src/main/java/com/android/tools/r8/shaking/UnusedItemsPrinter.java
index 1d57c73..5b89abf 100644
--- a/src/main/java/com/android/tools/r8/shaking/UnusedItemsPrinter.java
+++ b/src/main/java/com/android/tools/r8/shaking/UnusedItemsPrinter.java
@@ -24,8 +24,8 @@
     }
 
     void sort() {
-      fields.sort((a, b) -> a.getReference().slowCompareTo(b.getReference()));
-      methods.sort((a, b) -> a.getReference().slowCompareTo(b.getReference()));
+      fields.sort((a, b) -> a.getReference().compareTo(b.getReference()));
+      methods.sort((a, b) -> a.getReference().compareTo(b.getReference()));
     }
   }
 
@@ -73,7 +73,7 @@
   }
 
   public void finished() {
-    classes.sort((a, b) -> a.getFirst().slowCompareTo(b.getFirst()));
+    classes.sort((a, b) -> a.getFirst().compareTo(b.getFirst()));
     for (Pair<DexType, Members> entry : classes) {
       DexType type = entry.getFirst();
       Members members = entry.getSecond();
diff --git a/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java b/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
index 303df06..f5d4b66 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SynthesizingContext.java
@@ -65,9 +65,9 @@
     return Comparator
         // The first item to compare is the synthesizing context type. This is the type used to
         // choose the context prefix for items.
-        .comparing(SynthesizingContext::getSynthesizingContextType, DexType::slowCompareTo)
+        .comparing(SynthesizingContext::getSynthesizingContextType)
         // To ensure that equals coincides with compareTo == 0, we then compare 'type'.
-        .thenComparing(c -> c.inputContextType, DexType::slowCompareTo)
+        .thenComparing(c -> c.inputContextType)
         .compare(this, other);
   }
 
diff --git a/src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java b/src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java
index bc2f9cc..4d621a3 100644
--- a/src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java
+++ b/src/main/java/com/android/tools/r8/synthesis/SyntheticFinalization.java
@@ -184,7 +184,7 @@
       // Use a tree set to make sure that we have an ordering on the types.
       // These types are put in an array in annotations in the output and we
       // need a consistent ordering on them.
-      TreeSet<DexType> synthesized = new TreeSet<>(DexType::slowCompareTo);
+      TreeSet<DexType> synthesized = new TreeSet<>(DexType::compareTo);
       entry.getValue().stream()
           .map(dexProgramClass -> dexProgramClass.type)
           .forEach(synthesized::add);
diff --git a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
index f2358c5..51a3778 100644
--- a/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
+++ b/src/main/java/com/android/tools/r8/utils/LineNumberOptimizer.java
@@ -308,7 +308,7 @@
 
       // Then process the methods, ordered by renamed name.
       List<DexString> renamedMethodNames = new ArrayList<>(methodsByRenamedName.keySet());
-      renamedMethodNames.sort(DexString::slowCompareTo);
+      renamedMethodNames.sort(DexString::compareTo);
       for (DexString methodName : renamedMethodNames) {
         List<DexEncodedMethod> methods = methodsByRenamedName.get(methodName);
         if (methods.size() > 1) {
diff --git a/src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java b/src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java
index d902126..d625aae 100644
--- a/src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java
+++ b/src/main/java/com/android/tools/r8/utils/collections/SortedProgramMethodSet.java
@@ -41,13 +41,13 @@
 
   public static SortedProgramMethodSet create(ForEachable<ProgramMethod> methods) {
     SortedProgramMethodSet result =
-        new SortedProgramMethodSet(() -> new TreeMap<>(DexMethod::slowCompareTo));
+        new SortedProgramMethodSet(() -> new TreeMap<>(DexMethod::compareTo));
     methods.forEach(result::add);
     return result;
   }
 
   public static SortedProgramMethodSet createConcurrent() {
-    return new SortedProgramMethodSet(() -> new ConcurrentSkipListMap<>(DexMethod::slowCompareTo));
+    return new SortedProgramMethodSet(() -> new ConcurrentSkipListMap<>(DexMethod::compareTo));
   }
 
   public static SortedProgramMethodSet empty() {
@@ -64,7 +64,7 @@
   @Override
   public Set<DexEncodedMethod> toDefinitionSet() {
     Comparator<DexEncodedMethod> comparator =
-        (x, y) -> x.getReference().slowCompareTo(y.getReference());
+        (x, y) -> x.getReference().compareTo(y.getReference());
     Set<DexEncodedMethod> definitions = new TreeSet<>(comparator);
     forEach(method -> definitions.add(method.getDefinition()));
     return definitions;
diff --git a/src/test/java/com/android/tools/r8/dex/DexStringTest.java b/src/test/java/com/android/tools/r8/dex/DexStringTest.java
index b12d876..ad41738 100644
--- a/src/test/java/com/android/tools/r8/dex/DexStringTest.java
+++ b/src/test/java/com/android/tools/r8/dex/DexStringTest.java
@@ -78,8 +78,7 @@
   private void check(int expected, DexString s1, DexString s2) {
     assertEquals(s1.dump() + " " + s2.dump(),
         expected, Integer.signum(s1.toString().compareTo(s2.toString())));
-    assertEquals(s1.dump() + " " + s2.dump(),
-        expected, Integer.signum(s1.slowCompareTo(s2)));
+    assertEquals(s1.dump() + " " + s2.dump(), expected, Integer.signum(s1.compareTo(s2)));
   }
 
   private void checkEncodedLength(DexString s, int encodedLength) {
diff --git a/src/test/java/com/android/tools/r8/naming/InterfaceMethodNameMinifierTest.java b/src/test/java/com/android/tools/r8/naming/InterfaceMethodNameMinifierTest.java
index f2e1a60..a853b95 100644
--- a/src/test/java/com/android/tools/r8/naming/InterfaceMethodNameMinifierTest.java
+++ b/src/test/java/com/android/tools/r8/naming/InterfaceMethodNameMinifierTest.java
@@ -27,7 +27,7 @@
             "-obfuscationdictionary " + dictionary.toString())
         // Minify the interface methods in alphabetic order.
         .addOptionsModification(
-            options -> options.testing.minifier.interfaceMethodOrdering = DexMethod::slowCompareTo)
+            options -> options.testing.minifier.interfaceMethodOrdering = DexMethod::compareTo)
         .compile();
   }