rust/tests
bors 6e1d94708a Auto merge of #123886 - scottmcm:more-rvalue-operands, r=matthewjasper
Avoid `alloca`s in codegen for simple `mir::Aggregate` statements

The core idea here is to remove the abstraction penalty of simple newtypes in codegen.

Even something simple like constructing a
```rust
#[repr(transparent)] struct Foo(u32);
```
forces an `alloca` to be generated in nightly right now.

Certainly LLVM can optimize that away, but it would be nice if it didn't have to.

Quick example:
```rust
#[repr(transparent)]
pub struct Transparent32(u32);

#[no_mangle]
pub fn make_transparent(x: u32) -> Transparent32 {
    let a = Transparent32(x);
    a
}
```
on nightly we produce <https://rust.godbolt.org/z/zcvoM79ae>
```llvm
define noundef i32 `@make_transparent(i32` noundef %x) unnamed_addr #0 {
  %a = alloca i32, align 4
  store i32 %x, ptr %a, align 4
  %0 = load i32, ptr %a, align 4, !noundef !3
  ret i32 %0
}
```
but after this PR we produce
```llvm
define noundef i32 `@make_transparent(i32` noundef %x) unnamed_addr #0 {
start:
  ret i32 %x
}
```
(even before the optimizer runs).
2024-05-10 20:17:22 +00:00
..
assembly Add inline comments why we're forcing the target cpu 2024-05-01 16:54:20 -07:00
auxiliary extend extern tests to include FiveU16s 2024-03-17 00:07:42 -04:00
codegen Make SSA aggregates without needing an alloca 2024-05-08 20:38:04 -07:00
codegen-units Codegen const panic messages as function calls 2024-03-22 09:55:50 -04:00
coverage Auto merge of #124223 - Zalathar:conditional-let, r=compiler-errors 2024-05-07 22:28:51 +00:00
coverage-run-rustdoc
crashes update crashes 2024-05-09 17:51:05 +00:00
debuginfo Implement lldb formattter for "clang encoded" enums (LLDB 18.1+) 2024-05-05 17:53:02 -07:00
incremental add test for incremental ICE: slice-pattern-const.rs #83085 2024-04-21 14:45:00 +02:00
mir-opt Auto merge of #124795 - scottmcm:simplify-slice-from-raw-parts, r=joboet 2024-05-08 19:37:57 +00:00
pretty Rollup merge of #124269 - scrabsha:sasha/fix-124206, r=dtolnay 2024-04-29 18:03:22 +01:00
run-make Rollup merge of #124888 - GuillaumeGomez:migrate-rustdoc-output-path, r=jieyouxu 2024-05-10 16:10:46 +02:00
run-make-fulldeps Soft-destabilize RustcEncodable/RustcDecodable 2024-03-22 13:24:35 -07:00
run-pass-valgrind Add test for Apple's -weak_framework linker argument 2024-03-18 23:27:34 +01:00
rustdoc rustdoc: use stability, instead of features, to decide what to show 2024-05-07 20:47:19 -07:00
rustdoc-gui Rollup merge of #124738 - notriddle:notriddle/search-form-js, r=GuillaumeGomez 2024-05-07 18:12:54 +02:00
rustdoc-js rustdoc-search: add parser for & syntax 2024-04-19 14:31:21 -07:00
rustdoc-js-std rustdoc-search: add parser for & syntax 2024-04-19 14:31:21 -07:00
rustdoc-json
rustdoc-ui compiletest: add enable-by-default check-cfg 2024-05-04 11:30:38 +02:00
ui Rollup merge of #124797 - beetrees:primitive-float, r=davidtwco 2024-05-10 16:10:46 +02:00
ui-fulldeps Add ErrorGuaranteed to Recovered::Yes and use it more. 2024-05-09 20:12:07 +10:00
COMPILER_TESTS.md