https://github.com/vitalybuka updated 
https://github.com/llvm/llvm-project/pull/113201

>From aa4280d627d0f2b2d57bf1f9bf574d2f6ab55d38 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalyb...@google.com>
Date: Mon, 21 Oct 2024 11:01:36 -0700
Subject: [PATCH 1/2] comment

Created using spr 1.3.4
---
 .../Transforms/Instrumentation/MemorySanitizer.cpp    | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp 
b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index 962d7cc5bca347..07fa9b729463e8 100644
--- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -2719,11 +2719,12 @@ struct MemorySanitizerVisitor : public 
InstVisitor<MemorySanitizerVisitor> {
 
     auto GetMinMaxUnsigned = [&](Value *V, Value *S) {
       if (IsSigned) {
-        // Map from signed range to unsigned range. Relation A vs B should be
-        // preserved if checked with `getUnsignedPredicate()`.
-        // Calcualting Amin, Amax, Bmin, Bmax also will not be affected, as 
they
-        // are created by effectively adding/substructing from A or B a value,
-        // derived from shadow, which can't result in overflow.
+        // Sign-flip to map from signed range to unsigned range. Relation A vs 
B
+        // should be preserved, if checked with `getUnsignedPredicate()`.
+        // Relationship between Amin, Amax, Bmin, Bmax also will not be
+        // affected, as they are created by effectively adding/substructing 
from
+        // A or B a value, derived from shadow, which can't result in overflow,
+        // before or after sign flip.
         APInt MinVal =
             APInt::getSignedMinValue(V->getType()->getScalarSizeInBits());
         V = IRB.CreateXor(V, ConstantInt::get(V->getType(), MinVal));

>From afda5ceed69201fb24a46181462e2087aa768d55 Mon Sep 17 00:00:00 2001
From: Vitaly Buka <vitalyb...@google.com>
Date: Mon, 21 Oct 2024 11:03:56 -0700
Subject: [PATCH 2/2] comment

Created using spr 1.3.4
---
 llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp 
b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
index 07fa9b729463e8..391fb30d95e2ae 100644
--- a/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ b/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -2723,7 +2723,7 @@ struct MemorySanitizerVisitor : public 
InstVisitor<MemorySanitizerVisitor> {
         // should be preserved, if checked with `getUnsignedPredicate()`.
         // Relationship between Amin, Amax, Bmin, Bmax also will not be
         // affected, as they are created by effectively adding/substructing 
from
-        // A or B a value, derived from shadow, which can't result in overflow,
+        // A (or B) a value, derived from shadow, with no overflow, either
         // before or after sign flip.
         APInt MinVal =
             APInt::getSignedMinValue(V->getType()->getScalarSizeInBits());

_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to