about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-10-20 12:28:31 +0200
committerNikita Popov <npopov@redhat.com>2022-10-20 12:47:17 +0200
commit783301298f1e151b82c1be21bc6a214b9ef525bd (patch)
tree8735a552bd8376607e0d763d1d78b36ba77a8908 /compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
parent4b3b731b55a588dd34a75bbb87fdaaec2e3f5707 (diff)
downloadrust-783301298f1e151b82c1be21bc6a214b9ef525bd.tar.gz
rust-783301298f1e151b82c1be21bc6a214b9ef525bd.zip
Don't use usub.with.overflow intrinsic
The canonical form of a usub.with.overflow check in LLVM are
separate sub + icmp instructions, rather than a usub.with.overflow
intrinsic. Using usub.with.overflow will generally result in worse
optimization potential.

The backend will attempt to form usub.with.overflow when it comes
to actual instruction selection. This is not fully reliable, but
I believe this is a better tradeoff than using the intrinsic in
IR.

Fixes #103285.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp')
0 files changed, 0 insertions, 0 deletions