[PATCH] D88519: [NFC][MSAN] Extract llvm.abs handling into a function
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 29 15:34:12 PDT 2020
vitalybuka created this revision.
vitalybuka added a reviewer: eugenis.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
vitalybuka requested review of this revision.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D88519
Files:
llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Index: llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
===================================================================
--- llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
+++ llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
@@ -2638,12 +2638,6 @@
return false;
unsigned NumArgOperands = I.getNumArgOperands();
- if (I.getIntrinsicID() == Intrinsic::abs) {
- assert(NumArgOperands == 2);
- // The last argument is just a boolean flag.
- NumArgOperands = 1;
- }
-
for (unsigned i = 0; i < NumArgOperands; ++i) {
Type *Ty = I.getArgOperand(i)->getType();
if (Ty != RetTy)
@@ -2659,6 +2653,22 @@
return true;
}
+ bool maybeHandleAbsIntrinsic(IntrinsicInst &I) {
+ if (I.getIntrinsicID() != Intrinsic::abs)
+ return false;
+
+ Type *RetTy = I.getType();
+ assert(RetTy->isIntOrIntVectorTy());
+ assert(I.getArgOperand(0)->getType() == RetTy);
+
+ // FIXME: Handle is_int_min_poison.
+ IRBuilder<> IRB(&I);
+ setShadow(&I, getShadow(&I, 0));
+ setOrigin(&I, getOrigin(&I, 0));
+
+ return true;
+ }
+
/// Heuristically instrument unknown intrinsics.
///
/// The main purpose of this code is to do something reasonable with all
@@ -2691,6 +2701,9 @@
return handleVectorLoadIntrinsic(I);
}
+ if (maybeHandleAbsIntrinsic(I))
+ return true;
+
if (I.doesNotAccessMemory())
if (maybeHandleSimpleNomemIntrinsic(I))
return true;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88519.295136.patch
Type: text/x-patch
Size: 1491 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200929/31a11777/attachment.bin>
More information about the llvm-commits
mailing list