Disable switch map removal in D8.

Bug:
Change-Id: I9e5ccf9fd2bded67268a1718b3bb4f6c6adacce7
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index a3d92ac..b4a83a4 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -26,7 +26,9 @@
  */
 public class D8Command extends BaseCommand {
 
-  /** Builder for constructing a D8Command. */
+  /**
+   * Builder for constructing a D8Command.
+   */
   public static class Builder extends BaseCommand.Builder<D8Command, Builder> {
 
     private Builder() {
@@ -42,7 +44,9 @@
       return this;
     }
 
-    /** Build the final D8Command. */
+    /**
+     * Build the final D8Command.
+     */
     @Override
     public D8Command build() throws CompilationException {
       if (isPrintHelp() || isPrintVersion()) {
@@ -148,6 +152,8 @@
     internal.allowAccessModification = false;
     assert internal.inlineAccessors;
     internal.inlineAccessors = false;
+    assert internal.removeSwitchMaps;
+    internal.removeSwitchMaps = false;
     assert internal.outline.enabled;
     internal.outline.enabled = false;
     internal.lazyClasspathLoading = true;
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 091714a..d12109e 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
@@ -426,7 +426,9 @@
     if (memberValuePropagation != null) {
       memberValuePropagation.rewriteWithConstantValues(code);
     }
-    codeRewriter.removeSwitchMaps(code);
+    if (options.removeSwitchMaps) {
+      codeRewriter.removeSwitchMaps(code);
+    }
     if (options.inlineAccessors && inliner != null) {
       inliner.performInlining(method, code, callGraph);
     }
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index f584e85..7f13315 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -70,6 +70,7 @@
   public String packagePrefix = "";
   public boolean allowAccessModification = true;
   public boolean inlineAccessors = true;
+  public boolean removeSwitchMaps = true;
   public final OutlineOptions outline = new OutlineOptions();
   public boolean debugKeepRules = false;
   public final AttributeRemovalOptions attributeRemoval = new AttributeRemovalOptions();