Revert 253497 and 253539 to try to fix clang-cmake-mips buildbot.
[oota-llvm.git] / include / llvm / ProfileData / SampleProf.h
index a7b22c73548087fe15996d2fe2323553cd4dd992..30504981c48b81ae45c25e5f9bd8e81bec908fbc 100644 (file)
@@ -177,7 +177,10 @@ public:
   /// Sample counts accumulate using saturating arithmetic, to avoid wrapping
   /// around unsigned integers.
   void addSamples(uint64_t S) {
-    NumSamples = SaturatingAdd(NumSamples, S);
+    if (NumSamples <= std::numeric_limits<uint64_t>::max() - S)
+      NumSamples += S;
+    else
+      NumSamples = std::numeric_limits<uint64_t>::max();
   }
 
   /// Add called function \p F with samples \p S.
@@ -186,7 +189,10 @@ public:
   /// around unsigned integers.
   void addCalledTarget(StringRef F, uint64_t S) {
     uint64_t &TargetSamples = CallTargets[F];
-    TargetSamples = SaturatingAdd(TargetSamples, S);
+    if (TargetSamples <= std::numeric_limits<uint64_t>::max() - S)
+      TargetSamples += S;
+    else
+      TargetSamples = std::numeric_limits<uint64_t>::max();
   }
 
   /// Return true if this sample record contains function calls.