rust/library
Simonas Kazlauskas 5d22b18bf2 Improve codegen of align_offset when stride == 1
Previously checking for `pmoda == 0` would get LLVM to generate branchy
code, when, for `stride = 1` the offset can be computed without such a
branch by doing effectively a `-p % a`.

For well-known (constant) alignments, with the new ordering of these
conditionals, we end up generating 2 to 3 cheap instructions on x86_64:

    movq    %rdi, %rax
    negl    %eax
    andl    $7, %eax

instead of 5+ as previously.

For unknown alignments the new code also generates just 3 instructions:

    negq    %rdi
    leaq    -1(%rsi), %rax
    andq    %rdi, %rax
2020-08-16 21:31:48 +03:00
..
alloc Auto merge of #75488 - ssomers:btree_revert_75257, r=Mark-Simulacrum 2020-08-15 05:43:00 +00:00
backtrace@4083a90168 std: Switch from libbacktrace to gimli 2020-07-28 16:34:01 -07:00
core Improve codegen of align_offset when stride == 1 2020-08-16 21:31:48 +03:00
panic_abort
panic_unwind Add back unwinding support for Sony PSP 2020-08-08 02:14:40 -04:00
proc_macro Stabilize Ident::new_raw 2020-08-03 17:23:31 -04:00
profiler_builtins
rtstartup
rustc-std-workspace-alloc
rustc-std-workspace-core
rustc-std-workspace-std
std Auto merge of #75565 - nixphix:docs/vxworks-ext, r=jyn514 2020-08-16 08:45:52 +00:00
stdarch@78891cdf29 fix broken git commit in stdarch 2020-08-03 15:52:30 +08:00
term
test Rollup merge of #75270 - matthiaskrgr:clippy_aug_1, r=Dylan-DPC 2020-08-08 11:36:12 +09:00
unwind Add back unwinding support for Sony PSP 2020-08-08 02:14:40 -04:00