-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[MIR] Dataflow framework, constant propagation and dead code elimination #35608
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
Closed
Closed
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit
Hold shift + click to select a range
64afc5e
Make BitVec::contains panic-less
nagisa 5fdc839
Expand BitVec functionality slightly
nagisa 34d0545
[MIR] Utility to retrieve base variable of Lvalue
nagisa ccdc81a
Add a MIR dataflow framework (again)
nagisa 8b8ccf0
[MIR] Constant propagation
nagisa ba6a8fb
Count time taken by MIR passes
nagisa 2cc114c
Count and report time taken by MIR passes
nagisa d203b9c
Comments, todos and small improvements
nagisa 18f65dd
Add Rvalue::is_pure
nagisa 97bfde3
Fix compilation
nagisa 61a58f1
Fix join function for CsLattice
nagisa efbea54
Rename dead code removal pass to a proper-er name
nagisa b15bb6d
Add some constant propagation tests
nagisa f78274c
Clean-up the ConstLattice; Propagate global state
nagisa 61871d4
Re-add a way to specify initial state
nagisa 1b3e945
Rebase fallout
nagisa 935dc8d
Make SwitchInt switch on Operand
nagisa 3e2e8b9
Disallow to optimise out constants in OOB tests
nagisa e00862b
A way to remove otherwise unused locals from MIR
nagisa c352ae2
Do not run the DA+ConstProp before DropElab
nagisa 708487b
Rebase fallout
nagisa 0791d56
Do not be overly aggressive optimising MIR with -g
nagisa 9b227dd
More bitvec tests
nagisa ec8e500
Fix aliasing in const-propagate
nagisa File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next
Next commit
Make BitVec::contains panic-less
- Loading branch information
commit 64afc5e68fd13f85f4a57a7b278559393fcc068e
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
It seems to me that asking for an index that doesn't exist should panic and that this might mask bugs in other code. Do you use this behavior in your analysis?
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.
It had such a behaviour for sizes which are not
0 mod 64
up to next0 mod 64
bit already. This makes the behaviour consistent for all sizes.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.
I didn’t answer this: yes, I do. The dead code removing pass uses this behaviour.
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.
Oh, I see now. Yes it should be consistent at least :)