Skip to content
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

Move rustc_passes::liveness to MIR #68419

Closed
Centril opened this issue Jan 21, 2020 · 2 comments
Closed

Move rustc_passes::liveness to MIR #68419

Centril opened this issue Jan 21, 2020 · 2 comments
Labels
A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-enhancement Category: An issue proposing an enhancement or a PR with one. E-hard Call for participation: Hard difficulty. Experience needed to fix: A lot. E-medium Call for participation: Medium difficulty. Experience needed to fix: Intermediate. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@Centril
Copy link
Contributor

Centril commented Jan 21, 2020

Discussion in https://discordapp.com/channels/442252698964721669/443151243398086667/669220265821077535.

The liveness linting code in rustc_passes::liveness works on HIR using backwards dataflow. The code is quite complicated and imprecise. Moving it to rustc_mir::transform as a new pass could simplify the compiler, improve maintainability, as well as improve precision (e.g., sub-binding level precision for tuples, structs, and arrays).

cc @oli-obk cc @eddyb cc #65467 cc #51003

@Centril Centril added C-cleanup Category: PRs that clean code up or issues documenting cleanup. E-hard Call for participation: Hard difficulty. Experience needed to fix: A lot. C-enhancement Category: An issue proposing an enhancement or a PR with one. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html E-medium Call for participation: Medium difficulty. Experience needed to fix: Intermediate. labels Jan 21, 2020
@eddyb
Copy link
Member

eddyb commented Jan 27, 2020

Isn't this a duplicate of #51003? cc @nikomatsakis @pnkfelix

@nikomatsakis
Copy link
Contributor

I believe it is, closing as duplicate of #51003.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-MIR Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-cleanup Category: PRs that clean code up or issues documenting cleanup. C-enhancement Category: An issue proposing an enhancement or a PR with one. E-hard Call for participation: Hard difficulty. Experience needed to fix: A lot. E-medium Call for participation: Medium difficulty. Experience needed to fix: Intermediate. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

No branches or pull requests

3 participants