-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
nll experiment: compute SCCs instead of iterative region solving #51987
Commits on Jul 12, 2018
-
Configuration menu - View commit details
-
Copy full SHA for fbb7306 - Browse repository at this point
Copy the full SHA fbb7306View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8fa24bb - Browse repository at this point
Copy the full SHA 8fa24bbView commit details -
introduce
ConstraintGraph
, stop mutating constraints in placeEncapsulate the dependencies more cleanly.
Configuration menu - View commit details
-
Copy full SHA for d54e7e3 - Browse repository at this point
Copy the full SHA d54e7e3View commit details -
rename
constraint_set
toconstraints
also promote to its own directory, make local to nll
Configuration menu - View commit details
-
Copy full SHA for 5fa240e - Browse repository at this point
Copy the full SHA 5fa240eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 28c483b - Browse repository at this point
Copy the full SHA 28c483bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c30415 - Browse repository at this point
Copy the full SHA 3c30415View commit details -
Configuration menu - View commit details
-
Copy full SHA for 90c90ba - Browse repository at this point
Copy the full SHA 90c90baView commit details -
strengthen
Idx
to requireOrd + Hash
You should always be able to know that any `T` where `T: Idx` can be used in a `BTreeMap` and a `FxHashMap`.
Configuration menu - View commit details
-
Copy full SHA for dab206f - Browse repository at this point
Copy the full SHA dab206fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0052ddd - Browse repository at this point
Copy the full SHA 0052dddView commit details -
make
RegionValues
generic over its domainWe used to store one value per RegionVid; we will soon be storing one value per SCC.
Configuration menu - View commit details
-
Copy full SHA for 862c0dd - Browse repository at this point
Copy the full SHA 862c0ddView commit details
Commits on Jul 13, 2018
-
compute region values using SCCs not iterative flow
The strategy is this: - we compute SCCs once all outlives constraints are known - we allocate a set of values **per region** for storing liveness - we allocate a set of values **per SCC** for storing the final values - when we add a liveness constraint to the region R, we also add it to the final value of the SCC to which R belongs - then we can apply the constraints by just walking the DAG for the SCCs and union'ing the children (which have their liveness constraints within) There are a few intermediate refactorings that I really ought to have broken out into their own commits: - reverse the constraint graph so that `R1: R2` means `R1 -> R2` and not `R2 -> R1`. This fits better with the SCC computation and new style of inference (`->` now means "take value from" and not "push value into") - this does affect some of the UI tests, since they traverse the graph, but mostly the artificial ones and they don't necessarily seem worse - put some things (constraint set, etc) into `Rc`. This lets us root them to permit mutation and iteration. It also guarantees they don't change, which is critical to the correctness of the algorithm. - Generalize various helpers that previously operated only on points to work on any sort of region element.
Configuration menu - View commit details
-
Copy full SHA for ed36698 - Browse repository at this point
Copy the full SHA ed36698View commit details -
Configuration menu - View commit details
-
Copy full SHA for d5e77a3 - Browse repository at this point
Copy the full SHA d5e77a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3f90bbc - Browse repository at this point
Copy the full SHA 3f90bbcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 48c4140 - Browse repository at this point
Copy the full SHA 48c4140View commit details -
Configuration menu - View commit details
-
Copy full SHA for 666c365 - Browse repository at this point
Copy the full SHA 666c365View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d29994 - Browse repository at this point
Copy the full SHA 9d29994View commit details -
Configuration menu - View commit details
-
Copy full SHA for 114cdd0 - Browse repository at this point
Copy the full SHA 114cdd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0472da3 - Browse repository at this point
Copy the full SHA 0472da3View commit details -
Configuration menu - View commit details
-
Copy full SHA for eed2c09 - Browse repository at this point
Copy the full SHA eed2c09View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6918c17 - Browse repository at this point
Copy the full SHA 6918c17View commit details