[metrics] Temporary NOINLINE rules for SampleVectorBase::Accumulate

As discussed @ https://bugs.chromium.org/p/chromium/issues/detail?id=1254354#c4

R=asvitkine@chromium.org

Bug: 1254354
Change-Id: Idd19a0a7cb818a554ade1442f0e4278066a7ade5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3194650
Commit-Queue: Gabriel Charette <gab@chromium.org>
Commit-Queue: Alexei Svitkine <asvitkine@chromium.org>
Auto-Submit: Gabriel Charette <gab@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Cr-Commit-Position: refs/heads/main@{#926357}
diff --git a/base/metrics/histogram_samples.h b/base/metrics/histogram_samples.h
index ad7aacbd..b1caf1f 100644
--- a/base/metrics/histogram_samples.h
+++ b/base/metrics/histogram_samples.h
@@ -13,6 +13,7 @@
 #include <string>
 
 #include "base/atomicops.h"
+#include "base/compiler_specific.h"
 #include "base/metrics/histogram_base.h"
 
 namespace base {
@@ -63,7 +64,8 @@
     // Adds a given count to the held bucket. If not possible, it returns false
     // and leaves the parts unchanged. Once extracted/disabled, this always
     // returns false. This in an "acquire/release" operation.
-    bool Accumulate(size_t bucket, HistogramBase::Count count);
+    // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+    bool NOINLINE Accumulate(size_t bucket, HistogramBase::Count count);
 
     // Returns if the sample has been "disabled" (via Extract) and thus not
     // allowed to accept further accumulation.
@@ -187,12 +189,14 @@
   // Accumulates to the embedded single-sample field if possible. Returns true
   // on success, false otherwise. Sum and redundant-count are also updated in
   // the success case.
-  bool AccumulateSingleSample(HistogramBase::Sample value,
-                              HistogramBase::Count count,
-                              size_t bucket);
+  // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+  bool NOINLINE AccumulateSingleSample(HistogramBase::Sample value,
+                                       HistogramBase::Count count,
+                                       size_t bucket);
 
   // Atomically adjust the sum and redundant-count.
-  void IncreaseSumAndCount(int64_t sum, HistogramBase::Count count);
+  // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+  void NOINLINE IncreaseSumAndCount(int64_t sum, HistogramBase::Count count);
 
   // Record a negative-sample observation and the reason why.
   void RecordNegativeSample(NegativeSampleReason reason,
diff --git a/base/metrics/sample_vector.h b/base/metrics/sample_vector.h
index 72cd5ed..cc551dc2 100644
--- a/base/metrics/sample_vector.h
+++ b/base/metrics/sample_vector.h
@@ -57,11 +57,13 @@
   virtual size_t GetBucketIndex(HistogramBase::Sample value) const;
 
   // Moves the single-sample value to a mounted "counts" array.
-  void MoveSingleSampleToCounts();
+  // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+  void NOINLINE MoveSingleSampleToCounts();
 
   // Mounts (creating if necessary) an array of "counts" for multi-value
   // storage.
-  void MountCountsStorageAndMoveSingleSample();
+  // TODO(crbug.com/1254354): Remove NOINLINE after diagnosis.
+  void NOINLINE MountCountsStorageAndMoveSingleSample();
 
   // Mounts "counts" storage that already exists. This does not attempt to move
   // any single-sample information to that storage as that would violate the