diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2025-02-14 20:25:43 -0800 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2025-02-19 11:36:52 -0800 |
| commit | 511bf307f03d7045f54a376d389ebdf9786e7a24 (patch) | |
| tree | 3a9452d197ec7dd77d01de89cffa35dc39b7e230 /compiler/rustc_codegen_llvm/src/llvm/ffi.rs | |
| parent | ed49386d3aa3a445a9889707fd405df01723eced (diff) | |
| download | rust-511bf307f03d7045f54a376d389ebdf9786e7a24.tar.gz rust-511bf307f03d7045f54a376d389ebdf9786e7a24.zip | |
Emit `trunc nuw` for unchecked shifts and `to_immediate_scalar`
- For shifts this shrinks the IR by no longer needing an `assume` while still providing the UB information - Having this on the `i8`→`i1` truncations will hopefully help with some places that have to load `i8`s or pass those in LLVM structs without range information
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm/ffi.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm/ffi.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs index 3b0187b9d37..1e105e86189 100644 --- a/compiler/rustc_codegen_llvm/src/llvm/ffi.rs +++ b/compiler/rustc_codegen_llvm/src/llvm/ffi.rs @@ -1165,6 +1165,7 @@ unsafe extern "C" { // Operations on instructions pub(crate) fn LLVMIsAInstruction(Val: &Value) -> Option<&Value>; + pub(crate) fn LLVMIsATruncInst(Val: &Value) -> Option<&Value>; pub(crate) fn LLVMGetFirstBasicBlock(Fn: &Value) -> &BasicBlock; pub(crate) fn LLVMGetOperand(Val: &Value, Index: c_uint) -> Option<&Value>; |
