-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Split TypeFolder
and FallibleTypeFolder
atwain
#139768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
[Experiment] Split `TypeFolder` and `FallibleTypeFolder` r? `@ghost`
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (8e1d888): comparison URL. Overall result: ✅ improvements - no action neededBenchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf. @bors rollup=never Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (secondary -1.2%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary 2.4%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 779.607s -> 776.511s (-0.40%) |
sgtm, seems like the easiest solution to avoid the coherence issue |
I'm going to at least add a macro to deduplicate all the (trivial) list folder impls, since those seem to be the majority of the bulky duplication here. |
b960283
to
00287e8
Compare
@@ -931,6 +931,8 @@ pub enum TerminatorKind<'tcx> { | |||
asm_macro: InlineAsmMacro, | |||
|
|||
/// The template for the inline assembly, with placeholders. | |||
#[type_foldable(identity)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally we'd have most of these MIR fields marked as ignore/identity, but these are the only ones that we need to get rid of some annoying noop impls.
This PR changes MIR |
r? lcnr |
TypeFolder
and FallibleTypeFolder
TypeFolder
and FallibleTypeFolder
TypeFolder
and FallibleTypeFolder
TypeFolder
and FallibleTypeFolder
atwain
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some nits, then r=me
00287e8
to
229ccfe
Compare
229ccfe
to
c774adc
Compare
@bors r=lcnr rollup |
@bors rollup=never |
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing cacb9ee (parent) -> efb1e3d (this PR) Test differencesShow 23 test diffs23 doctest diffs were found. These are ignored, as they are noisy. Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
Finished benchmarking commit (efb1e3d): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.
Max RSS (memory usage)Results (primary -0.5%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (primary -0.2%, secondary -2.6%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 782.111s -> 774.579s (-0.96%) |
Right now there is a coherence problem with
TypeFolder
andFallibleTypeFolder
. Namely, it's impossible to implement aFallibleTypeFolder
that is generic over interner, b/c it has a downstream conflict with the blanket impl:Because downstream crates may implement
TypeFolder<SomeLocalInterner>
for the fallible type folder.This PR removes the relationship between
FallibleTypeFolder
andTypeFolder
; it leads to modest code duplication, but otherwise does not affect perf and really doesn't matter in general.