Fix issues manifesting in R8GMSCoreLatestTreeShakeJarVerifcationTest

Change-Id: Idff122ed2b092fd8397f90dcce22ef218ded17b3
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
index f94b7a7..968b0ec 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/DeadCodeRemover.java
@@ -35,11 +35,12 @@
   }
 
   public void run(IRCode code) {
-    removeUnneededCatchHandlers(code);
+    codeRewriter.rewriteMoveResult(code);
+
+    // We may encounter unneeded catch handlers after each iteration, e.g., if a dead instruction
+    // is the only throwing instruction in a block. Removing unneeded catch handlers can lead to
+    // more dead instructions.
     Deque<BasicBlock> worklist = new ArrayDeque<>();
-    // We may encounter unneeded catch handlers again, e.g., if a dead instruction (due to
-    // const-string canonicalization for example) is the only throwing instruction in a block.
-    // Removing unneeded catch handlers can lead to more dead instructions.
     do {
       worklist.addAll(code.topologicallySortedBlocks());
       while (!worklist.isEmpty()) {
@@ -49,7 +50,6 @@
       }
     } while (removeUnneededCatchHandlers(code));
     assert code.isConsistentSSA();
-    codeRewriter.rewriteMoveResult(code);
   }
 
   // Add the block from where the value originates to the worklist.
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index be8c939..c9d3f22 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -889,6 +889,9 @@
     if (!isEligibleSingleTarget(singleTarget)) {
       return false;
     }
+    if (singleTarget.isLibraryMethodOverride().isTrue()) {
+      return false;
+    }
     return isEligibleVirtualMethodCall(
         null,
         invokedMethod,