[PATCH] D68236: Handle llvm.launder.invariant.group in msan.

Ilya Tokar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 1 08:17:29 PDT 2019


TokarIP added inline comments.


================
Comment at: llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp:2567
+    IRBuilder<> IRB(&I);
+    setShadow(&I, IRB.CreateBitCast(getShadow(&I, 0), getShadowTy(&I)));
+    setOrigin(&I, getOrigin(&I, 0));
----------------
eugenis wrote:
> Why bitcast? From the intrinsic definition, the types must match.
You are right, fixed.


================
Comment at: llvm/test/Instrumentation/MemorySanitizer/msan_llvm_launder_invariant.ll:26
+  ret %class.Foo* %retval.0
+}
+
----------------
eugenis wrote:
> The test could be a lot simpler, something like
> 
> i8* f(i8 *p) {
> return @llvm.launder.invariant.group(p);
> }
> 
This is just a n IR from minimal reproducer for false-positive, so I wanted to keep it as a regression test.
I've tried your test case, but it generates same IR with and without this patch.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68236/new/

https://reviews.llvm.org/D68236





More information about the llvm-commits mailing list