Assume slice len is bounded by allocation size
Uses assume to check the length against a constant upper bound. The inlined result then informs the optimizer of the sound value range. This was tried with unreachable_unchecked before which introduces a branch. This has the advantage of not being executed in sound code but complicates basic blocks. It resulted in ~2% increased compile time in some worst cases. Add a codegen test for the assumption, testing the issue from #67186
This commit is contained in:
parent
d92d28e523
commit
e44784b875
3 changed files with 51 additions and 3 deletions
|
@ -80,8 +80,9 @@
|
|||
#![feature(constctlz)]
|
||||
#![feature(const_panic)]
|
||||
#![feature(const_pin)]
|
||||
#![feature(const_fn_union)]
|
||||
#![feature(const_fn)]
|
||||
#![feature(const_fn_union)]
|
||||
#![feature(const_assume)]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_floating_point_arithmetic))]
|
||||
#![cfg_attr(not(bootstrap), feature(const_fn_fn_ptr_basics))]
|
||||
#![feature(const_generics)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue