A series of Polonius Alpha refactors - #161937
Conversation
|
Disclosure: An LLM was used for experiments here, but all code here is written fresh. |
|
The rationale is not clear for a handful of these (in the code, comments, or the commit message). I expect them to make sense in light of #161938, so I'll have to review them later when I look at that PR.
We can land the straightforward commits soon, and leave the other two for later. |
fa3ac07 to
3df5c72
Compare
Indeed, these make more sense in the context of #161938. In short, the The visitor -> visitor+traversal split is basically just type-safety around ensuring that liveness is calculated for a given region prior to liveness values being used; Anyways, removed them from this PR - we can see if/how they fit later.
Because when computing deferred liveness, I'm passing in just |
3df5c72 to
b58ee5b
Compare
|
I think we’ll need to do a handful of passes to simplify the entire process afterwards. The end state is starting to feel less like a series of high level steps than it is today, and while that is somewhat expected to allow liveness to be produced from two different places, we probably would benefit from clearly defined components/pieces of state. @bors r+ rollup |
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
…uwer Rollup of 12 pull requests Successful merges: - #162045 (`rust-analyzer` subtree update) - #162077 (compiler-builtins subtree update) - #137720 (support `#[target_feature(enable = ...)]` on `#[naked]` functions) - #160534 (stabilize smart pointer map functions) - #160551 (mir_build: Clearly distinguish or/refutable/irrefutable patterns during match lowering) - #161929 (explicitly track inherent const generic args kind) - #162063 (Switch dist-aarch64-linux to EC2 and update dist-x86_64-linux) - #161937 (A series of Polonius Alpha refactors) - #162014 (Move more `rustdoc-html` tests using `--test` into the right folder) - #162051 (`rustc_feature` cleanups) - #162055 (remove `_{style}` recovery for diagnostic structs) - #162075 (Move track_caller on closures gating to attribute parsing)
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
A series of Polonius Alpha refactors Based on rust-lang#161776 Best reviewed by commit. This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted. r? lqd
…uwer Rollup of 16 pull requests Successful merges: - #137720 (support `#[target_feature(enable = ...)]` on `#[naked]` functions) - #160534 (stabilize smart pointer map functions) - #160551 (mir_build: Clearly distinguish or/refutable/irrefutable patterns during match lowering) - #160989 (Make sin, cos, exp, exp2, log, log2, log10 generic) - #161861 (mir_build: Clarify parts of if-condition lowering) - #161929 (explicitly track inherent const generic args kind) - #162040 (bootstrap: stage0 to cbae9b4) - #162063 (Switch dist-aarch64-linux to EC2 and update dist-x86_64-linux) - #161353 (Add test for parallel compiler reproducible build) - #161937 (A series of Polonius Alpha refactors) - #162051 (`rustc_feature` cleanups) - #162055 (remove `_{style}` recovery for diagnostic structs) - #162075 (Move track_caller on closures gating to attribute parsing) - #162079 (std: implement `File::fsync` for Hermit) - #162097 (Deduplicate `InstrumentFnAttr`) - #162115 (fix typo in feature documentation)
|
Finished benchmarking commit (7dfde5a): comparison URL. Overall result: ❌✅ regressions and improvements - no action neededBenchmarking means the PR may be perf-sensitive. Consider adding rollup=never if this change is not fit for rolling up. @rustbot label: -S-waiting-on-perf -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)This perf run didn't have relevant results for this metric. CyclesThis perf run didn't have relevant results for this metric. Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: missing data |
…uwer Rollup of 16 pull requests Successful merges: - rust-lang/rust#137720 (support `#[target_feature(enable = ...)]` on `#[naked]` functions) - rust-lang/rust#160534 (stabilize smart pointer map functions) - rust-lang/rust#160551 (mir_build: Clearly distinguish or/refutable/irrefutable patterns during match lowering) - rust-lang/rust#160989 (Make sin, cos, exp, exp2, log, log2, log10 generic) - rust-lang/rust#161861 (mir_build: Clarify parts of if-condition lowering) - rust-lang/rust#161929 (explicitly track inherent const generic args kind) - rust-lang/rust#162040 (bootstrap: stage0 to cbae9b4cae2b108f6a3d18cfe6075714bb739463) - rust-lang/rust#162063 (Switch dist-aarch64-linux to EC2 and update dist-x86_64-linux) - rust-lang/rust#161353 (Add test for parallel compiler reproducible build) - rust-lang/rust#161937 (A series of Polonius Alpha refactors) - rust-lang/rust#162051 (`rustc_feature` cleanups) - rust-lang/rust#162055 (remove `_{style}` recovery for diagnostic structs) - rust-lang/rust#162075 (Move track_caller on closures gating to attribute parsing) - rust-lang/rust#162079 (std: implement `File::fsync` for Hermit) - rust-lang/rust#162097 (Deduplicate `InstrumentFnAttr`) - rust-lang/rust#162115 (fix typo in feature documentation)
…uwer Rollup of 16 pull requests Successful merges: - rust-lang/rust#137720 (support `#[target_feature(enable = ...)]` on `#[naked]` functions) - rust-lang/rust#160534 (stabilize smart pointer map functions) - rust-lang/rust#160551 (mir_build: Clearly distinguish or/refutable/irrefutable patterns during match lowering) - rust-lang/rust#160989 (Make sin, cos, exp, exp2, log, log2, log10 generic) - rust-lang/rust#161861 (mir_build: Clarify parts of if-condition lowering) - rust-lang/rust#161929 (explicitly track inherent const generic args kind) - rust-lang/rust#162040 (bootstrap: stage0 to cbae9b4cae2b108f6a3d18cfe6075714bb739463) - rust-lang/rust#162063 (Switch dist-aarch64-linux to EC2 and update dist-x86_64-linux) - rust-lang/rust#161353 (Add test for parallel compiler reproducible build) - rust-lang/rust#161937 (A series of Polonius Alpha refactors) - rust-lang/rust#162051 (`rustc_feature` cleanups) - rust-lang/rust#162055 (remove `_{style}` recovery for diagnostic structs) - rust-lang/rust#162075 (Move track_caller on closures gating to attribute parsing) - rust-lang/rust#162079 (std: implement `File::fsync` for Hermit) - rust-lang/rust#162097 (Deduplicate `InstrumentFnAttr`) - rust-lang/rust#162115 (fix typo in feature documentation)
…uwer Rollup of 16 pull requests Successful merges: - rust-lang/rust#137720 (support `#[target_feature(enable = ...)]` on `#[naked]` functions) - rust-lang/rust#160534 (stabilize smart pointer map functions) - rust-lang/rust#160551 (mir_build: Clearly distinguish or/refutable/irrefutable patterns during match lowering) - rust-lang/rust#160989 (Make sin, cos, exp, exp2, log, log2, log10 generic) - rust-lang/rust#161861 (mir_build: Clarify parts of if-condition lowering) - rust-lang/rust#161929 (explicitly track inherent const generic args kind) - rust-lang/rust#162040 (bootstrap: stage0 to cbae9b4cae2b108f6a3d18cfe6075714bb739463) - rust-lang/rust#162063 (Switch dist-aarch64-linux to EC2 and update dist-x86_64-linux) - rust-lang/rust#161353 (Add test for parallel compiler reproducible build) - rust-lang/rust#161937 (A series of Polonius Alpha refactors) - rust-lang/rust#162051 (`rustc_feature` cleanups) - rust-lang/rust#162055 (remove `_{style}` recovery for diagnostic structs) - rust-lang/rust#162075 (Move track_caller on closures gating to attribute parsing) - rust-lang/rust#162079 (std: implement `File::fsync` for Hermit) - rust-lang/rust#162097 (Deduplicate `InstrumentFnAttr`) - rust-lang/rust#162115 (fix typo in feature documentation)
Based on #161776
Best reviewed by commit.
This is a series of refactors to enable lazy liveness calculation. Each commit is relatively targeted.
r? lqd