Revert "[llvm-profdata] Add SaturatingAdd/SaturatingMultiply Helper Functions"
[oota-llvm.git] / include / llvm / ProfileData / SampleProf.h
index a8960cf7bc12032295c11da4a9574afde0f0f188..d7596d7b1b77340f924978caf5e9024c2957a5cf 100644 (file)
@@ -173,7 +173,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.
@@ -182,7 +185,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.