diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-05-09 20:49:33 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 20:49:33 +0200 |
| commit | 273fbf47ab1615f2cae416ba397f5b5a531eac65 (patch) | |
| tree | 44252c48cec0cb053be8a426c95685d93a223104 /compiler/rustc_codegen_llvm/src | |
| parent | efe697e1331d1a5175750b0f6b464d573a9bd57a (diff) | |
| parent | ec3a9bcdb7007491ee105fad034e1a83f1188ff6 (diff) | |
| download | rust-273fbf47ab1615f2cae416ba397f5b5a531eac65.tar.gz rust-273fbf47ab1615f2cae416ba397f5b5a531eac65.zip | |
Rollup merge of #111282 - scottmcm:remove-unneeded-assumes, r=workingjubilee
Remove some `assume`s from slice iterators that don't do anything Because the start pointer is iterators is already a `NonNull`, we emit the appropriate `!nonnull` metadata when loading the pointer to tell LLVM that it's non-null. Probably the best way to see that it's the metadata that's important (and not the `assume`) is to observe that LLVM actually *removes* the `assume` from the optimized IR: <https://rust.godbolt.org/z/KhE6G963n>. (I also checked that, yes, the if-not-ZST `assume` on `end` is still doing something: it's how there's a `!nonnull` metadata on its load, even though it's an ordinary raw pointer. The codegen test added in this PR fails if the other `assume` is removed.)
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
