about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/allocator.rs
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2022-07-12 03:03:19 -0700
committerScott McMurray <scottmcm@users.noreply.github.com>2022-07-13 17:07:41 -0700
commita32305a80fd1409b054e97836321bd0621b142fd (patch)
tree17c7411681304613c0dc6bb5c7c528de69555dd5 /compiler/rustc_codegen_llvm/src/allocator.rs
parent87588a2afd9ca903366f0deaf84d805f34469384 (diff)
downloadrust-a32305a80fd1409b054e97836321bd0621b142fd.tar.gz
rust-a32305a80fd1409b054e97836321bd0621b142fd.zip
Re-optimize `Layout::array`
This way it's one check instead of two, so hopefully it'll be better

Nightly:
```
layout_array_i32:
	movq	%rdi, %rax
	movl	$4, %ecx
	mulq	%rcx
	jo	.LBB1_2
	movabsq	$9223372036854775805, %rcx
	cmpq	%rcx, %rax
	jae	.LBB1_2
	movl	$4, %edx
	retq
.LBB1_2:
	…
```

This PR:
```
	movq	%rcx, %rax
	shrq	$61, %rax
	jne	.LBB2_1
	shlq	$2, %rcx
	movl	$4, %edx
	movq	%rcx, %rax
	retq
.LBB2_1:
	…
```
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/allocator.rs')
0 files changed, 0 insertions, 0 deletions