aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CodeGenPrepare.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2024-03-31 21:23:55 -0700
committerGitHub <noreply@github.com>2024-03-31 21:23:55 -0700
commit90c738ef15fc6f10255dced0b1557f2cd2c4f43b (patch)
tree6fe772148d774ac5ba6ce09ffddaaa7537a7ff35 /llvm/lib/CodeGen/CodeGenPrepare.cpp
parent70deb7bfe90af91c68454b70683fbe98feaea87d (diff)
downloadllvm-90c738ef15fc6f10255dced0b1557f2cd2c4f43b.zip
llvm-90c738ef15fc6f10255dced0b1557f2cd2c4f43b.tar.gz
llvm-90c738ef15fc6f10255dced0b1557f2cd2c4f43b.tar.bz2
[IR] Introduce `llvm.allow.{runtime,ubsan}.check()` (#84850)
The goal is to have ability to change logic compile time based on PGO data. Our primary application is removing UBSAN checks from hot code. Then we'd like to use this for libc++ hardening and regular debug asserts. Previous attempt is #84214. Benefits from special intrinsic vs #84214: 1. Resulting binary is 3% faster than removing traps (on "test-suite/MultiSource/Benchmarks" with PGO+ThinLTO) 2. Intrinsic can be used from source code to change behavior from C/C++ program. E.g. enabling asserts in cold code. 3. Easier to match basic blocks. RFC: https://discourse.llvm.org/t/rfc-add-llvm-experimental-hot-intrinsic-or-llvm-hot/77641 --------- Co-authored-by: Nikita Popov <npopov@redhat.com>
Diffstat (limited to 'llvm/lib/CodeGen/CodeGenPrepare.cpp')
0 files changed, 0 insertions, 0 deletions