[all-commits] [llvm/llvm-project] 33d239: [MSAN] Instrument libatomic load/store calls

Gui Andrade via All-commits all-commits at lists.llvm.org
Wed Jul 22 09:45:46 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 33d239513c881d8c11c60d5710c55cf56cc309a5
      https://github.com/llvm/llvm-project/commit/33d239513c881d8c11c60d5710c55cf56cc309a5
  Author: Gui Andrade <guiand at google.com>
  Date:   2020-07-22 (Wed, 22 Jul 2020)

  Changed paths:
    A compiler-rt/test/msan/libatomic.c
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    A llvm/test/Instrumentation/MemorySanitizer/libatomic.ll

  Log Message:
  -----------
  [MSAN] Instrument libatomic load/store calls

These calls are neither intercepted by compiler-rt nor is libatomic.a
naturally instrumented.

This patch uses the existing libcall mechanism to detect a call
to atomic_load or atomic_store, and instruments them much like
the preexisting instrumentation for atomics.

Calls to _load are modified to have at least Acquire ordering, and
calls to _store at least Release ordering. Because this needs to be
converted at runtime, msan injects a LUT (implemented as a vector
with extractelement).

Differential Revision: https://reviews.llvm.org/D83337




More information about the All-commits mailing list