Propagate library-override information for non-live methods

Change-Id: I0f0db184d12932bd9368a669362e7d358cdeb2e5
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 89b608e..0d2dc1b 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -846,6 +846,7 @@
     assert !accessFlags.isStatic();
     return builder(this)
         .modifyAccessFlags(MethodAccessFlags::setAbstract)
+        .setIsLibraryMethodOverrideIfKnown(isLibraryMethodOverride())
         .unsetCode()
         .addBuildConsumer(
             method -> OptimizationFeedbackSimple.getInstance().unsetBridgeInfo(method))
@@ -1490,6 +1491,19 @@
       return this;
     }
 
+    public Builder setIsLibraryMethodOverrideIf(
+        boolean condition, OptionalBool isLibraryMethodOverride) {
+      if (condition) {
+        return setIsLibraryMethodOverride(isLibraryMethodOverride);
+      }
+      return this;
+    }
+
+    public Builder setIsLibraryMethodOverrideIfKnown(OptionalBool isLibraryMethodOverride) {
+      return setIsLibraryMethodOverrideIf(
+          !isLibraryMethodOverride.isUnknown(), isLibraryMethodOverride);
+    }
+
     public Builder setParameterAnnotations(ParameterAnnotationsList parameterAnnotations) {
       this.parameterAnnotations = parameterAnnotations;
       return this;