Merge pull request #14916 from mikeash/remotemirror-hide-reflection-sections

[RemoteMirrors] Improve the API to no longer require clients to know about section names, and make it easier to interoperate with multiple versions of the library.
diff --git a/docs/ABIStabilityManifesto.md b/docs/ABIStabilityManifesto.md
index 243ccea..19d52a6 100644
--- a/docs/ABIStabilityManifesto.md
+++ b/docs/ABIStabilityManifesto.md
@@ -116,7 +116,7 @@
 
 Resilient types are required to have opaque layout when exposed outside their resilience domain. Inside a resilience domain, this requirement is lifted and their layout may be statically known or opaque as determined by their type (see [previous section](#opaque-layout)).
 
-Annotations may be applied to a library's types in future versions of that library, in which case the annotations are versioned, yet the library remains binary compatible. How how this will impact the ABI is still under investigation [[SR-3911](https://bugs.swift.org/browse/SR-3911)].
+Annotations may be applied to a library's types in future versions of that library, in which case the annotations are versioned, yet the library remains binary compatible. How this will impact the ABI is still under investigation [[SR-3911](https://bugs.swift.org/browse/SR-3911)].
 
 
 #### <a name="abstraction-levels"></a>Abstraction Levels
diff --git a/lib/Frontend/FrontendInputsAndOutputs.cpp b/lib/Frontend/FrontendInputsAndOutputs.cpp
index f37eec1..0cb77fa 100644
--- a/lib/Frontend/FrontendInputsAndOutputs.cpp
+++ b/lib/Frontend/FrontendInputsAndOutputs.cpp
@@ -124,12 +124,9 @@
 }
 
 std::string FrontendInputsAndOutputs::getStatsFileMangledInputName() const {
-  // FIXME: "batch" should probably be some concatenation of all the primary
-  // input names, in order to keep the stats file names unique. (Or perhaps just
-  // the first primary?)
-  return isWholeModule()
-             ? "all"
-             : primaryInputCount() == 1 ? firstPrimaryInput().file() : "batch";
+  // Use the first primary, even if there are multiple primaries.
+  // That's enough to keep the file names unique.
+  return isWholeModule() ? "all" : firstPrimaryInput().file();
 }
 
 bool FrontendInputsAndOutputs::isInputPrimary(StringRef file) const {