[all-commits] [llvm/llvm-project] b4257d: [tsan] Replace mem intrinsics with calls to interc...

Vitaly Buka via All-commits all-commits at lists.llvm.org
Tue Sep 6 13:09:48 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b4257d3bf58c51ff437c99c7b160023f5fffac78
      https://github.com/llvm/llvm-project/commit/b4257d3bf58c51ff437c99c7b160023f5fffac78
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2022-09-06 (Tue, 06 Sep 2022)

  Changed paths:
    M compiler-rt/lib/tsan/rtl/tsan.syms.extra
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interface.h
    M compiler-rt/test/tsan/Linux/double_race.cpp
    M compiler-rt/test/tsan/inlined_memcpy_race.cpp
    M compiler-rt/test/tsan/inlined_memcpy_race2.cpp
    M compiler-rt/test/tsan/memcmp_race.cpp
    M compiler-rt/test/tsan/memcpy_race.cpp
    M llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
    M llvm/test/Instrumentation/ThreadSanitizer/tsan_basic.ll

  Log Message:
  -----------
  [tsan] Replace mem intrinsics with calls to interceptors

After https://reviews.llvm.org/rG463aa814182a23 tsan replaces llvm
intrinsics with calls to glibc functions. However this approach is
fragile, as slight changes in pipeline can return llvm intrinsics back.
In particular InstCombine can do that.

Msan/Asan already declare own version of these memory
functions for the similar purpose.

KCSAN, or anything that uses something else than compiler-rt, needs to
implement this callbacks.

Reviewed By: melver

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




More information about the All-commits mailing list