Use -checkdiscard rules to guide startup boundary optimizations

Bug: b/284929119
Change-Id: Ic708d7d82ade2a196aa57291b26d687a42e37017
diff --git a/src/main/java/com/android/tools/r8/profile/startup/optimization/StartupBoundaryOptimizationUtils.java b/src/main/java/com/android/tools/r8/profile/startup/optimization/StartupBoundaryOptimizationUtils.java
index e2ffa11..9c59173 100644
--- a/src/main/java/com/android/tools/r8/profile/startup/optimization/StartupBoundaryOptimizationUtils.java
+++ b/src/main/java/com/android/tools/r8/profile/startup/optimization/StartupBoundaryOptimizationUtils.java
@@ -25,6 +25,9 @@
         && appView.withLiveness().appInfo().isAlwaysInlineMethod(callee.getReference())) {
       return true;
     }
+    if (appView.getKeepInfo(callee.getHolder()).isCheckDiscardedEnabled(appView.options())) {
+      return true;
+    }
     // It is always OK to inline into a non-startup class.
     if (!startupProfile.isStartupClass(caller.getHolderType())) {
       return true;