diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisPhaseCompleteEvent.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisPhaseCompleteEvent.java
index d09f8e6..99de301 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisPhaseCompleteEvent.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisPhaseCompleteEvent.java
@@ -30,6 +30,7 @@
   private int targetsConfigured;
   private final PackageManagerStatistics pkgManagerStats;
   private final int actionsConstructed;
+  private final boolean analysisCacheDropped;
 
   /**
    * Construct the event.
@@ -42,13 +43,15 @@
       int targetsConfigured,
       long timeInMs,
       PackageManagerStatistics pkgManagerStats,
-      int actionsConstructed) {
+      int actionsConstructed,
+      boolean analysisCacheDropped) {
     this.timeInMs = timeInMs;
     this.topLevelTargets = ImmutableList.copyOf(topLevelTargets);
     this.targetsLoaded = targetsLoaded;
     this.targetsConfigured = targetsConfigured;
     this.pkgManagerStats = pkgManagerStats;
     this.actionsConstructed = actionsConstructed;
+    this.analysisCacheDropped = analysisCacheDropped;
   }
 
   /**
@@ -77,6 +80,10 @@
     return actionsConstructed;
   }
 
+  public boolean wasAnalysisCacheDropped() {
+    return analysisCacheDropped;
+  }
+
   /**
    * Returns package manager statistics.
    */
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
index 587ed50..8cc38c0 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/AnalysisPhaseRunner.java
@@ -227,7 +227,8 @@
                 view.getTargetsConfigured(),
                 timer.stop().elapsed(TimeUnit.MILLISECONDS),
                 view.getAndClearPkgManagerStatistics(),
-                view.getActionsConstructed()));
+                view.getActionsConstructed(),
+                env.getSkyframeExecutor().wasAnalysisCacheDiscardedAndResetBit()));
     ImmutableSet<BuildConfigurationValue.Key> configurationKeys =
         Stream.concat(
                 analysisResult
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index f06f313..8c2bfc2 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -299,6 +299,8 @@
 
   @VisibleForTesting boolean lastAnalysisDiscarded = false;
 
+  private boolean analysisCacheDiscarded = false;
+
   private final ImmutableMap<SkyFunctionName, SkyFunction> extraSkyFunctions;
 
   protected SkyframeIncrementalBuildMonitor incrementalBuildMonitor =
@@ -681,6 +683,12 @@
     return buildDriver;
   }
 
+  public boolean wasAnalysisCacheDiscardedAndResetBit() {
+    boolean tmp = analysisCacheDiscarded;
+    analysisCacheDiscarded = false;
+    return tmp;
+  }
+
   /**
    * This method exists only to allow a module to make a top-level Skyframe call during the
    * transition to making it fully Skyframe-compatible. Do not add additional callers!
@@ -800,6 +808,7 @@
   /** Clear any configured target data stored outside Skyframe. */
   public void handleAnalysisInvalidatingChange() {
     logger.info("Dropping configured target data");
+    analysisCacheDiscarded = true;
     skyframeBuildView.clearInvalidatedConfiguredTargets();
     skyframeBuildView.clearLegacyData();
   }
