Minor cleanup of inliner

Change-Id: I6c1fbef7f66713c451df37742b868040d8a1e4bd
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/DefaultInliningOracle.java b/src/main/java/com/android/tools/r8/ir/optimize/DefaultInliningOracle.java
index d8c4ea7..2784e8d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/DefaultInliningOracle.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/DefaultInliningOracle.java
@@ -51,7 +51,6 @@
   private final IRCode code;
   private final CallSiteInformation callSiteInformation;
   private final Predicate<DexEncodedMethod> isProcessedConcurrently;
-  private final InliningInfo info;
   private final int inliningInstructionLimit;
   private int instructionAllowance;
 
@@ -70,7 +69,6 @@
     this.code = code;
     this.callSiteInformation = callSiteInformation;
     this.isProcessedConcurrently = isProcessedConcurrently;
-    info = Log.ENABLED ? new InliningInfo(method) : null;
     this.inliningInstructionLimit = inliningInstructionLimit;
     this.instructionAllowance = inliningInstructionAllowance;
   }
@@ -80,13 +78,6 @@
     return false;
   }
 
-  @Override
-  public void finish() {
-    if (Log.ENABLED && info != null) {
-      Log.debug(getClass(), info.toString());
-    }
-  }
-
   private boolean isSingleTargetInvalid(
       InvokeMethod invoke,
       DexEncodedMethod singleTarget,
@@ -96,17 +87,11 @@
     }
 
     if (!singleTarget.hasCode()) {
-      if (info != null) {
-        info.exclude(invoke, "No inlinee");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return true;
     }
 
     if (appView.definitionFor(singleTarget.method.holder).isNotProgramClass()) {
-      if (info != null) {
-        info.exclude(invoke, "No inlinee");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return true;
     }
@@ -115,9 +100,6 @@
     int numberOfArguments =
         invoke.arguments().size() - BooleanUtils.intValue(invoke.isInvokeMethodWithReceiver());
     if (numberOfArguments != singleTarget.method.getArity()) {
-      if (info != null) {
-        info.exclude(invoke, "Argument number mismatch");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return true;
     }
@@ -233,9 +215,6 @@
       // Cannot handle recursive inlining at this point.
       // Force inlined method should never be recursive.
       assert !candidate.getOptimizationInfo().forceInline();
-      if (info != null) {
-        info.exclude(invoke, "direct recursion");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return false;
     }
@@ -246,9 +225,6 @@
     // processes all relevant methods in parallel with the full optimization pipeline enabled.
     // TODO(sgjesse): Add this assert "assert !isProcessedConcurrently.test(candidate);"
     if (reason != Reason.FORCE && isProcessedConcurrently.test(candidate)) {
-      if (info != null) {
-        info.exclude(invoke, "is processed in parallel");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return false;
     }
@@ -269,9 +245,6 @@
 
     // Abort inlining attempt if method -> target access is not right.
     if (!inliner.hasInliningAccess(method, candidate)) {
-      if (info != null) {
-        info.exclude(invoke, "target does not have right access");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return false;
     }
@@ -281,9 +254,6 @@
     if (holder.isInterface()) {
       // Art978_virtual_interfaceTest correctly expects an IncompatibleClassChangeError exception at
       // runtime.
-      if (info != null) {
-        info.exclude(invoke, "Do not inline target if method holder is an interface class");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return false;
     }
@@ -295,9 +265,6 @@
 
     // Don't inline if target is synchronized.
     if (candidate.accessFlags.isSynchronized()) {
-      if (info != null) {
-        info.exclude(invoke, "target is synchronized");
-      }
       whyAreYouNotInliningReporter.reportUnknownReason();
       return false;
     }
@@ -311,9 +278,6 @@
         inliner.recordDoubleInliningCandidate(method, candidate);
       } else {
         if (inliner.satisfiesRequirementsForDoubleInlining(method, candidate)) {
-          if (info != null) {
-            info.exclude(invoke, "target is not ready for double inlining");
-          }
           whyAreYouNotInliningReporter.reportUnknownReason();
           return false;
         }
@@ -330,9 +294,6 @@
       if (inliner.mainDexClasses.getRoots().contains(method.method.holder)
           && MainDexDirectReferenceTracer.hasReferencesOutsideFromCode(
           appView.appInfo(), candidate, inliner.mainDexClasses.getRoots())) {
-        if (info != null) {
-          info.exclude(invoke, "target has references beyond main dex");
-        }
         whyAreYouNotInliningReporter.reportUnknownReason();
         return false;
       }
@@ -350,14 +311,6 @@
     if (code.estimatedSizeForInliningAtMost(instructionLimit)) {
       return true;
     }
-    if (info != null) {
-      info.exclude(
-          invoke,
-          "instruction limit exceeds: "
-              + code.estimatedSizeForInlining()
-              + " <= "
-              + instructionLimit);
-    }
     return false;
   }
 
@@ -404,10 +357,6 @@
     Reason reason = computeInliningReason(singleTarget);
     if (!singleTarget.isInliningCandidate(
         method, reason, appView.appInfo(), whyAreYouNotInliningReporter)) {
-      // Abort inlining attempt if the single target is not an inlining candidate.
-      if (info != null) {
-        info.exclude(invoke, "target is not identified for inlining");
-      }
       return null;
     }
 
@@ -415,10 +364,6 @@
       return null;
     }
 
-    if (info != null) {
-      info.include(invoke.getType(), singleTarget);
-    }
-
     Value receiver = invoke.getReceiver();
     if (receiver.getTypeLattice().isDefinitelyNull()) {
       // A definitely null receiver will throw an error on call site.
@@ -439,19 +384,6 @@
           whyAreYouNotInliningReporter.reportUnknownReason();
           return null;
         }
-        if (!options.nullableReceiverInliningFilter.isEmpty()
-            && !options.nullableReceiverInliningFilter.contains(
-                invoke.getInvokedMethod().toSourceString())) {
-          whyAreYouNotInliningReporter.reportUnknownReason();
-          return null;
-        }
-        if (Log.ENABLED && Log.isLoggingEnabledFor(Inliner.class)) {
-          Log.debug(
-              Inliner.class,
-              "Inlining method `%s` with nullable receiver into `%s`",
-              invoke.getInvokedMethod().toSourceString(),
-              invocationContext.toSourceString());
-        }
         action.setShouldSynthesizeNullCheckForReceiver();
       }
     }
@@ -477,19 +409,12 @@
     // Determine if this should be inlined no matter how big it is.
     if (!singleTarget.isInliningCandidate(
         method, reason, appView.appInfo(), whyAreYouNotInliningReporter)) {
-      // Abort inlining attempt if the single target is not an inlining candidate.
-      if (info != null) {
-        info.exclude(invoke, "target is not identified for inlining");
-      }
       return null;
     }
 
     // Abort inlining attempt if we can not guarantee class for static target has been initialized.
     if (!canInlineStaticInvoke(
         invoke, method, singleTarget, classInitializationAnalysis, whyAreYouNotInliningReporter)) {
-      if (info != null) {
-        info.exclude(invoke, "target is static but we cannot guarantee class has been initialized");
-      }
       return null;
     }
 
@@ -497,9 +422,6 @@
       return null;
     }
 
-    if (info != null) {
-      info.include(invoke.getType(), singleTarget);
-    }
     return new InlineAction(singleTarget, invoke, reason);
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java b/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
index 6c93489..e29070d 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ForcedInliningOracle.java
@@ -44,9 +44,6 @@
   }
 
   @Override
-  public void finish() {}
-
-  @Override
   public DexEncodedMethod lookupSingleTarget(InvokeMethod invoke, DexType context) {
     Inliner.InliningInfo info = invokesToInline.get(invoke);
     if (info != null) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
index 074c6cd..f3bdff2 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
@@ -624,7 +624,7 @@
     }
   }
 
-  public static class InlineeWithReason {
+  static class InlineeWithReason {
 
     final Reason reason;
     final IRCode code;
@@ -840,7 +840,6 @@
     assumeDynamicTypeRemover.removeMarkedInstructions(blocksToRemove);
     assumeDynamicTypeRemover.finish();
     classInitializationAnalysis.finish();
-    oracle.finish();
     code.removeBlocks(blocksToRemove);
     code.removeAllTrivialPhis();
     assert code.isConsistentSSA();
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java b/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java
deleted file mode 100644
index f58cadd..0000000
--- a/src/main/java/com/android/tools/r8/ir/optimize/InliningInfo.java
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.ir.optimize;
-
-import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
-import com.android.tools.r8.ir.code.InvokeMethod;
-import java.util.ArrayList;
-import java.util.List;
-
-
-// Class for collecting inlining information for one compiled DexEncodedMethod.
-public class InliningInfo {
-
-  static class Edge {
-    final Type type;
-    final DexMethod declared;
-    final Node inlinee;
-
-    public Edge(Type type, DexMethod declared, Node inlinee) {
-      this.type = type;
-      this.declared = declared;
-      this.inlinee = inlinee;
-    }
-
-    void appendOn(StringBuffer buffer) {
-      if (declared != null) {
-        buffer.append(declared.toSourceString());
-        buffer.append(' ');
-      }
-      inlinee.appendOn(buffer);
-    }
-  }
-
-  static abstract class Node {
-    abstract void appendOn(StringBuffer buffer);
-  }
-
-  static class Inlining extends Node {
-    final DexEncodedMethod target;
-
-    Inlining(DexEncodedMethod target) {
-      this.target = target;
-    }
-
-    @Override
-    void appendOn(StringBuffer buffer) {
-      buffer.append("<< INLINED");
-    }
-  }
-
-  static class NotInlining extends Node {
-
-    final String reason;
-
-    NotInlining(String reason) {
-      this.reason = reason;
-    }
-
-    @Override
-    public void appendOn(StringBuffer buffer) {
-      buffer.append("-- no inlining: ");
-      buffer.append(reason);
-    }
-  }
-
-  final DexEncodedMethod method;
-  final List<Edge> edges = new ArrayList<>();
-
-  public InliningInfo(DexEncodedMethod method) {
-    this.method = method;
-  }
-
-  public void include(Type type, DexEncodedMethod target) {
-    edges.add(new Edge(type, target.method, new Inlining(target)));
-  }
-
-  public void exclude(InvokeMethod invoke, String reason) {
-    edges.add(new Edge(invoke.getType(), invoke.getInvokedMethod(), new NotInlining(reason)));
-  }
-
-  @Override
-  public String toString() {
-    StringBuffer buffer = new StringBuffer(method.method.toSourceString());
-    buffer.append(" {\n");
-    for (Edge edge : edges) {
-      buffer.append("  ");
-      edge.appendOn(buffer);
-      buffer.append(".\n");
-    }
-    buffer.append("}\n");
-    return buffer.toString();
-  }
-}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/InliningOracle.java b/src/main/java/com/android/tools/r8/ir/optimize/InliningOracle.java
index 2cbc5a0..f75f3ff 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/InliningOracle.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/InliningOracle.java
@@ -21,8 +21,6 @@
 
   boolean isForcedInliningOracle();
 
-  void finish();
-
   // TODO(b/142116551): This should be equivalent to invoke.lookupSingleTarget(appView, context)!
   DexEncodedMethod lookupSingleTarget(InvokeMethod invoke, DexType context);
 
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 763ab39..ad82955 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -369,10 +369,8 @@
   }
 
   public Set<String> extensiveLoggingFilter = getExtensiveLoggingFilter();
-  public Set<String> extensiveFieldMinifierLoggingFilter = getExtensiveFieldMinifierLoggingFilter();
   public Set<String> extensiveInterfaceMethodMinifierLoggingFilter =
       getExtensiveInterfaceMethodMinifierLoggingFilter();
-  public Set<String> nullableReceiverInliningFilter = getNullableReceiverInliningFilter();
 
   public List<String> methodsFilter = ImmutableList.of();
   public int minApiLevel = AndroidApiLevel.getDefault().getLevel();