Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-21-init
# 6292a808 24-Jan-2025 Jeremy Morse <jeremy.morse@sony.com>

[NFC][DebugInfo] Use iterator-flavour getFirstNonPHI at many call-sites (#123737)

As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNo

[NFC][DebugInfo] Use iterator-flavour getFirstNonPHI at many call-sites (#123737)

As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to getFirstNonPHI use the iterator-returning version.

This patch changes a bunch of call-sites calling getFirstNonPHI to use
getFirstNonPHIIt, which returns an iterator. All these call sites are
where it's obviously safe to fetch the iterator then dereference it. A
follow-up patch will contain less-obviously-safe changes.

We'll eventually deprecate and remove the instruction-pointer
getFirstNonPHI, but not before adding concise documentation of what
considerations are needed (very few).

---------

Co-authored-by: Stephen Tozer <Melamoto@gmail.com>

show more ...


# 8e702735 24-Jan-2025 Jeremy Morse <jeremy.morse@sony.com>

[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)

As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and sim

[NFC][DebugInfo] Use iterator moveBefore at many call-sites (#123583)

As part of the "RemoveDIs" project, BasicBlock::iterator now carries a
debug-info bit that's needed when getFirstNonPHI and similar feed into
instruction insertion positions. Call-sites where that's necessary were
updated a year ago; but to ensure some type safety however, we'd like to
have all calls to moveBefore use iterators.

This patch adds a (guaranteed dereferenceable) iterator-taking
moveBefore, and changes a bunch of call-sites where it's obviously safe
to change to use it by just calling getIterator() on an instruction
pointer. A follow-up patch will contain less-obviously-safe changes.

We'll eventually deprecate and remove the instruction-pointer
insertBefore, but not before adding concise documentation of what
considerations are needed (very few).

show more ...


Revision tags: llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4
# 4d12a143 06-Nov-2024 Kazu Hirata <kazu@google.com>

[Instrumentation] Remove unused includes (NFC) (#115117)

Identified with misc-include-cleaner.


Revision tags: llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0
# 2ae968a0 16-Sep-2024 Antonio Frighetto <10052132+antoniofrighetto@users.noreply.github.com>

[Instrumentation] Move out to Utils (NFC) (#108532)

Utility functions have been moved out to Utils. Minor opportunity to
drop the header where not needed.


Revision tags: llvmorg-19.1.0-rc4
# d23c24f3 22-Aug-2024 Alexander Shaposhnikov <ashaposhnikov@google.com>

[llvm][nsan] Skip function declarations (#105598)

Skip function declarations in the instrumentation pass.


Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2
# 430b90f0 01-Aug-2024 Wu Yingcong <yingcong.wu@intel.com>

[nsan][NFC] Use cast when dyn_cast is not needed. (#101147)

Use `cast` instead to replace `dyn_cast` when `dyn_cast` is not
needed/not checked.


Revision tags: llvmorg-19.1.0-rc1
# 70a9535f 26-Jul-2024 Alexander Shaposhnikov <ashaposhnikov@google.com>

[Instrumentation][nsan] Add support for Freeze instruction (#100490)

Add support for Freeze.

This fixes https://github.com/llvm/llvm-project/issues/98143 .


# cd82fee3 24-Jul-2024 Dmitry Chestnykh <dm.chestnykh@gmail.com>

[nsan] Fix `Wstring-conversion` error (#100328)

Fix error: implicit conversion turns string literal into bool: 'const
char[46]' to 'bool' [-Werror,-Wstring-conversion]


# ddf5725e 24-Jul-2024 Dmitry Chestnykh <dm.chestnykh@gmail.com>

[nsan] Emit calls to optimized functions (#98900)

As previously noted in nsan.cpp we can implement
optimized variants of `__nsan_copy_values` and
`__nsan_set_value_unknown` if a memory operation

[nsan] Emit calls to optimized functions (#98900)

As previously noted in nsan.cpp we can implement
optimized variants of `__nsan_copy_values` and
`__nsan_set_value_unknown` if a memory operation
size is known.
Now the instrumentation creates calls to optimized functions if there is
4, 8 or 16-byte memory operation like
`memset(X, value, 4/8/16)` or `memcpy(dst, src, 4/8/16)`
nsan.cpp provides definitions of the optimized functions.

show more ...


Revision tags: llvmorg-20-init
# d32d20f3 01-Jul-2024 Simon Pilgrim <llvm-dev@redking.me.uk>

NumericalStabilitySanitizer.cpp - fix MSVC "not all control paths return a value" warnings. NFC.


# 17106792 29-Jun-2024 Alexander Shaposhnikov <ashaposhnikov@google.com>

Reapply "[LLVM][Instrumentation] Add numerical sanitizer (#85916)"

This reverts commit 493c384a7d94cce1d18824a6b0e1f9ee20cdc681
and includes a fix for the build breakage.


# 61cd6bbb 29-Jun-2024 Alexander Shaposhnikov <ashaposhnikov@google.com>

Revert "[Instrumentation] Fix a warning"

This reverts commit de18ff35caa764998321dc01306b509efe4be431.
The initial commit for nsan needs to be reverted
for now because of the issue detected by
https

Revert "[Instrumentation] Fix a warning"

This reverts commit de18ff35caa764998321dc01306b509efe4be431.
The initial commit for nsan needs to be reverted
for now because of the issue detected by
https://lab.llvm.org/buildbot/#/builders/11/builds/822.

show more ...


# de18ff35 28-Jun-2024 Kazu Hirata <kazu@google.com>

[Instrumentation] Fix a warning

This patch fixes:

llvm/lib/Transforms/Instrumentation/NumericalStabilitySanitizer.cpp:1528:38:
error: unused variable 'TableRef' [-Werror,-Wunused-variable]


# 15ad7919 28-Jun-2024 Alexander Shaposhnikov <ashaposhnikov@google.com>

[LLVM][Instrumentation] Add numerical sanitizer (#85916)

This PR introduces the numerical sanitizer originally proposed by
Clement Courbet on https://reviews.llvm.org/D97854
(https://arxiv.org/abs

[LLVM][Instrumentation] Add numerical sanitizer (#85916)

This PR introduces the numerical sanitizer originally proposed by
Clement Courbet on https://reviews.llvm.org/D97854
(https://arxiv.org/abs/2102.12782).

The main additions include:
- Migration to LLVM opaque pointers
- Migration to various updated APIs
- Extended coverage for LLVM instructions/intrinsics
- Code refactoring

The tool is still very experimental, the coverage (e.g. for intrinsics /
library functions) is incomplete.

Link: https://discourse.llvm.org/t/rfc-revival-of-numerical-sanitizer/79601

---------

Co-authored-by: Fangrui Song <i@maskray.me>

show more ...