about summary refs log tree commit diff
path: root/compiler/rustc_query_impl/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2021-06-21 22:24:13 +0000
committerbors <bors@rust-lang.org>2021-06-21 22:24:13 +0000
commit4573a4a879a8e1f773944a8859e4dcd136138af8 (patch)
tree88a7b7c8c5df3b57c51f2cc71c1ba877c0f2aa86 /compiler/rustc_query_impl/src
parent406d4a9cc3b9601cf98a07c6c83e0227d64f5d48 (diff)
parentaa53928ed7b763abd882f2a5efb8f98f53ccc6a9 (diff)
downloadrust-4573a4a879a8e1f773944a8859e4dcd136138af8.tar.gz
rust-4573a4a879a8e1f773944a8859e4dcd136138af8.zip
Auto merge of #86383 - shamatar:slice_len_lowering, r=bjorn3
Add MIR pass to lower call to `core::slice::len` into `Len` operand

During some larger experiment with range analysis I've found that code like `let l = slice.len()` produces different MIR then one found in bound checks. This optimization pass replaces terminators that are calls to `core::slice::len` with just a MIR operand and Goto terminator.

It uses some heuristics to remove the outer borrow that is made to call `core::slice::len`, but I assume it can be eliminated, just didn't find how.

Would like to express my gratitude to `@oli-obk` who helped me a lot on Zullip
Diffstat (limited to 'compiler/rustc_query_impl/src')
0 files changed, 0 insertions, 0 deletions