Commit Graph

26 Commits

Author SHA1 Message Date
Mark Rousskov b4568d9135 Fix tests to drop now-skipped codegen 2025-06-22 12:03:42 -04:00
Mark Rousskov 1f40573507 Skip collecting no-op DropGlue in vtables
Since 122662 this no longer gets used in vtables, so we're safe to fully
drop generating these empty functions. Those are eventually cleaned up
by LLVM, but it's wasteful to produce them in the first place.

This also adds a missing test for fn-ptr casts, which do still need to
generate no-op drop glue. It's possible a future optimization could
point all of those at the same drop glue (e.g., for *mut ()) rather than
for each separate type, but that would require extra work for CFI and
isn't particularly easy to do anyway.
2025-06-21 18:59:36 -04:00
David Wood 322cc31504 tests: {Meta,Pointee}Sized in non-minicore tests
As before, add `MetaSized` and `PointeeSized` traits to all of the
non-minicore `no_core` tests so that they don't fail for lack of
language items.
2025-06-16 23:04:33 +00:00
Tomasz Miąsko 8c8225afe8 Remove mono item collection strategy override from -Zprint-mono-items
Previously `-Zprint-mono-items` would override the mono item collection
strategy. When debugging one doesn't want to change the behaviour, so
this was counter productive. Additionally, the produced behaviour was
artificial and might never arise without using the option in the first
place (`-Zprint-mono-items=eager` without `-Clink-dead-code`).  Finally,
the option was incorrectly marked as `UNTRACKED`.

Resolve those issues, by turning `-Zprint-mono-items` into a boolean
flag that prints results of mono item collection without changing the
behaviour of mono item collection.

For codegen-units test incorporate `-Zprint-mono-items` flag directly
into compiletest tool.

Test changes are mechanical. `-Zprint-mono-items=lazy` was removed
without additional changes, and `-Zprint-mono-items=eager` was turned
into `-Clink-dead-code`.  Linking dead code disables internalization, so
tests have been updated accordingly.
2025-05-09 12:19:09 +02:00
Ben Kimock bf9df97660 Remove -Zinline-in-all-cgus and clean up CGU partitioning tests 2025-01-27 23:48:47 -05:00
Ralf Jung 56c90dc31e remove support for the #[start] attribute 2025-01-21 06:59:15 -07:00
Michael Goulet c89ee081dd Make sure we actually use the right trivial lifetime substs when eagerly monomorphizing drop for structs 2025-01-15 04:20:25 +00:00
bors 8361aef0d7 Auto merge of #135496 - matthiaskrgr:rollup-ps0cjzn, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #134216 (Enable "jump to def" feature on patterns)
 - #134880 (Made `Path::name` only have item name rather than full name)
 - #135466 (Leak check in `impossible_predicates` to avoid monomorphizing impossible instances)
 - #135476 (Remove remnant of asmjs)
 - #135479 (mir borrowck: cleanup late-bound region handling)
 - #135493 (Fix legacy symbol mangling of closures)
 - #135495 (Add missing closing backtick in commit hook message 🐸)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-01-14 20:52:08 +00:00
bors 3736b85779 Auto merge of #135313 - compiler-errors:needs-mono, r=BoxyUwU
Eagerly mono drop for structs with lifetimes

That is, use `!generics.requires_monomorphization()` rather than `generics.is_empty()` like the rest of the mono collector code.
2025-01-14 17:55:26 +00:00
Michael Goulet faafa5c310 Fix legacy symbol mangling of closures 2025-01-14 16:33:03 +00:00
Michael Goulet 6431504e47 Eagerly collect mono items for non-generic closures 2025-01-10 01:27:13 +00:00
Michael Goulet 27603b2739 Eagerly mono drop for structs with lifetimes 2025-01-10 00:06:23 +00:00
Josh Triplett a105cd6066 Use field init shorthand where possible
Field init shorthand allows writing initializers like `tcx: tcx` as
`tcx`. The compiler already uses it extensively. Fix the last few places
where it isn't yet used.
2024-12-17 14:33:10 -08:00
Ben Kimock 711c8cc690 Remove polymorphization 2024-12-06 16:42:09 -05:00
Ben Kimock 03b6c2f2d4 Fix and enable disabled codegen-units tests 2024-08-10 14:03:27 -04:00
Michael Goulet ac56007ea7 Revert "Rollup merge of #125572 - mu001999-contrib:dead/enhance, r=pnkfelix"
This reverts commit 13314df21b, reversing
changes made to 6e534c73c3.
2024-08-03 07:57:31 -04:00
Scott McMurray 23c8ed14c9 Avoid MIR bloat in inlining
In 126578 we ended up with more binary size increases than expected.

This change attempts to avoid inlining large things into small things, to avoid that kind of increase, in cases when top-down inlining will still be able to do that inlining later.
2024-07-01 05:17:13 -07:00
r0cky 35130d7233 Detect pub structs never constructed and unused associated constants in traits 2024-06-05 23:20:09 +08:00
Nicholas Nethercote 780a91786e Run rustfmt on tests/codegen-units/. 2024-05-31 15:56:45 +10:00
Mark Rousskov 00f4daa276 Codegen const panic messages as function calls
This skips emitting extra arguments at every callsite (of which there
can be many). For a librustc_driver build with overflow checks enabled,
this cuts 0.7MB from the resulting binary.
2024-03-22 09:55:50 -04:00
许杰友 Jieyou Xu (Joe) 6e48b96692 [AUTO_GENERATED] Migrate compiletest to use ui_test-style //@ directives 2024-02-22 16:04:04 +00:00
r0cky c7519d42c2 Update tests 2024-02-07 10:42:01 +08:00
Jake Goulding 53eca9fa87 Adjust compiler tests for unused_tuple_struct_fields -> dead_code 2024-01-02 15:34:37 -05:00
Ben Kimock 33b0e4be06 Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
Ben Kimock 3541775047 Turn off inlining for codegen-unit tests 2023-04-07 15:46:45 -04:00
Albert Larsan cf2dff2b1e Move /src/test to /tests 2023-01-11 09:32:08 +00:00