granite-rust/library/alloc
bors 6b6c1ffacc Auto merge of #96596 - scottmcm:limited-calloc, r=Mark-Simulacrum
Tweak the vec-calloc runtime check to only apply to shortish-arrays

r? `@Mark-Simulacrum`

`@nbdd0121` pointed out in https://github.com/rust-lang/rust/pull/95362#issuecomment-1114085395 that LLVM currently doesn't constant-fold the `IsZero` check for long arrays, so that seems like a reasonable justification for limiting it.

It appears that it's based on length, not byte size, (https://godbolt.org/z/4s48Y81dP), so that's what I used in the PR.  Maybe it's a ["the number of inlining shall be three"](https://youtu.be/s4wnuiCwTGU?t=320) sort of situation.

Certainly there's more that could be done here -- that generated code that checks long arrays byte-by-byte is highly suboptimal, for example -- but this is an easy, low-risk tweak.
2022-05-02 09:05:22 +00:00
..
benches Add VecDeque::extend benchmark 2022-04-27 21:10:20 +02:00
src Auto merge of #96596 - scottmcm:limited-calloc, r=Mark-Simulacrum 2022-05-02 09:05:22 +00:00
tests Rollup merge of #94126 - ssomers:alloc_prep_1, r=Mark-Simulacrum 2022-05-02 10:41:54 +09:00
Cargo.toml Switch all libraries to the 2021 edition 2021-12-23 19:03:47 +08:00