rust/tests/assembly-llvm
bors a09fbe2c83 Auto merge of #145910 - saethlin:ignore-intrinsic-calls, r=cjgillot
Ignore intrinsic calls in cross-crate-inlining cost model

I noticed in a side project that a function which just compares to `[u64; 2]` for equality is not cross-crate-inlinable. That was surprising to me because I didn't think that code contained a function call, but of course our array comparisons are lowered to an intrinsic. Intrinsic calls don't make a function no longer a leaf, so it makes sense to add this as an exception to the "only leaves" cross-crate-inline heuristic.

This is the useful compare link: https://perf.rust-lang.org/compare.html?start=7cb1a81145a739c4fd858abe3c624ce8e6e5f9cd&end=c3f0a64dbf9fba4722dacf8e39d2fe00069c995e&stat=instructions%3Au because it disables CGU merging in both commits, so effects that cause changes in the sysroot to perturb partitioning downstream are excluded. Perturbations to what is and isn't cross-crate-inlinable in the sysroot has chaotic effects on what items are in which CGUs after merging. It looks like before this PR by sheer luck some of the CGUs dirtied by the patch in eza incr-unchanged happened to be merged together, and with this PR they are not.

The perf runs on this PR point to a nice runtime performance improvement.
2025-09-08 03:03:21 +00:00
..
asm Updated uitests for new parser 2025-08-22 08:58:45 +02:00
auxiliary Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
compiletest-self-test Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
libs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
naked-functions Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-kernel-abi Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
sanitizer/kcfi Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd Ignore intrinsic calls in cross-crate-inlining cost model 2025-09-05 20:44:49 -04:00
stack-protector Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
targets compiler: Add {x86_64,aarch64,riscv64gc}-unknown-managarm-mlibc targets 2025-08-29 00:49:29 +02:00
aarch64-pointer-auth.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
aarch64-xray.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
align_offset.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
breakpoint.rs Ignore intrinsic calls in cross-crate-inlining cost model 2025-09-05 20:44:49 -04:00
closure-inherit-target-feature.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
cmse.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
cstring-merging.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
dwarf-mixed-versions-lto.rs Fix tests/assembly-llvm/dwarf-mixed-versions-lto.rs test failure on riscv64 2025-07-23 11:14:07 +00:00
dwarf4.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
dwarf5.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
emit-intel-att-syntax.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
force-target-feature.rs Add an experimental unsafe(force_target_feature) attribute. 2025-08-22 01:26:26 +02:00
is_aligned.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
issue-83585-small-pod-struct-equality.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
loongarch-float-struct-abi.rs Fix LoongArch C function ABI when passing/returning structs containing floats 2025-08-21 18:00:26 +08:00
manual-eq-efficient.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
niche-prefer-zero.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-arch-default.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-arch-emit-asm.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-arch-link-arg.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-arch-target-cpu.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-atomics.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-c-abi-arg-v7.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-c-abi-ret-v7.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-internalizing.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-linking-binary.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-linking-cdylib.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
nvptx-safe-naming.rs Fix nvptx-safe-naming.rs test on LLVM 21 2025-07-29 12:15:36 +02:00
panic-no-unwind-no-uwtable.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
panic-unwind-no-uwtable.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
pic-relocation-model.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
pie-relocation-model.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
powerpc64-struct-abi.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
reg-struct-return.rs Add assembly tests verifying the functionality of -Zreg-struct-return for structs of different sizes. 2025-08-27 20:17:08 +02:00
regparm-module-flag.rs Set NumRegisterParameters LLVM module flag to N when -Zregparm=N is 2025-08-13 17:37:30 +02:00
riscv-float-struct-abi.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
riscv-soft-abi-with-float-features.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
rust-abi-arg-attr.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
s390x-backchain-toggle.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
s390x-vector-abi.rs update some s390x codegen tests 2025-08-20 16:35:33 +02:00
simd-bitmask.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-gather.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-mask-load.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-mask-reduce.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-mask-store.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-scatter.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
simd-intrinsic-select.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
slice-is_ascii.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
small_data_threshold.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
sparc-struct-abi.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
stack-probes.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
static-relocation-model.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
strict_provenance.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
target-feature-multiple.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
wasm_exceptions.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86-return-float.rs Relax check lines in x86-return-float.rs 2025-07-29 14:08:19 +02:00
x86_64-array-pair-load-store-merge.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-bigint-helpers.rs Stop using uadd.with.overflow 2025-08-08 21:59:28 -07:00
x86_64-cmp.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-floating-point-clamp.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-fortanix-unknown-sgx-lvi-generic-load.rs use minicore for fortanix assembly tests 2025-07-28 13:34:25 +02:00
x86_64-fortanix-unknown-sgx-lvi-generic-ret.rs use minicore for fortanix assembly tests 2025-07-28 13:34:25 +02:00
x86_64-fortanix-unknown-sgx-lvi-inline-assembly.rs use minicore for fortanix assembly tests 2025-07-28 13:34:25 +02:00
x86_64-function-return.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-indirect-branch-cs-prefix.rs Add -Zindirect-branch-cs-prefix option 2025-08-17 16:51:42 +02:00
x86_64-mcount.rs Test instrument-mcount 2025-08-26 13:44:00 +00:00
x86_64-no-jump-tables.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-sse_crc.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-typed-swap.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-windows-float-abi.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-windows-i128-abi.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00
x86_64-xray.rs Rename tests/assembly into tests/assembly-llvm 2025-07-22 14:27:48 +02:00