-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Store the type of each GVN value #143271
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
base: master
Are you sure you want to change the base?
Store the type of each GVN value #143271
Conversation
@bors try @rust-timer queue |
This comment has been minimized.
This comment has been minimized.
Store the type of each GVN value MIR is fully typed, so type information is an integral part of what defines a value. GVN currently tries to circumvent storing types, which creates all sorts of complexities. This PR stores the type along with the enum `Value` when defining a value index. This allows to simplify a lot of code. r? `@ghost` for perf
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.
Note: this benchmark will be delayed a bit, because we just switched to a new benchmarking machine and I need to backfill stable benchmark results. Sorry for that! It should be done sometime tomorrow, hopefully. |
This comment has been minimized.
This comment has been minimized.
Finished benchmarking commit (0debe2b): comparison URL. Overall result: no relevant changes - no action neededBenchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf. @bors rollup=never Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: missing data |
Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt |
r? compiler |
MIR is fully typed, so type information is an integral part of what defines a value. GVN currently tries to circumvent storing types, which creates all sorts of complexities.
This PR stores the type along with the enum
Value
when defining a value index. This allows to simplify a lot of code.Fixes #128094
Fixes #135128
r? @ghost for perf