diff options
| author | bors <bors@rust-lang.org> | 2024-06-12 23:15:33 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-06-12 23:15:33 +0000 |
| commit | 8cf5101d77cd9eeb12751c563d8098aba2c604d0 (patch) | |
| tree | c281e1d462df6a64298bcfb0eeaec582af7b4722 /compiler/rustc_target/src | |
| parent | 8337ba9189de188e2ed417018af2bf17a57d51ac (diff) | |
| parent | d63708b9074ebdc69e21bee8588d28db497e9ccd (diff) | |
| download | rust-8cf5101d77cd9eeb12751c563d8098aba2c604d0.tar.gz rust-8cf5101d77cd9eeb12751c563d8098aba2c604d0.zip | |
Auto merge of #125069 - amandasystems:scc-refactor, r=nikomatsakis
Extend SCC construction to enable extra functionality Do YOU feel like your SCC construction doesn't do enough? Then I have a patch for you! SCCs can now do *everything*! Well, almost. This patch has been extracted from #123720. It specifically enhances `Sccs` to allow tracking arbitrary commutative properties (think min/max mappings on nodes vs arbitrary closures) of strongly connected components, including - reachable values (max/min) - SCC-internal values (max/min) This helps with among other things universe computation. We can now identify SCC universes as a reasonably straightforward "find max/min" operation during SCC construction. This is also included in this patch. It's also more or less zero-cost; don't use the new features, don't pay for them. This commit also vastly extends the documentation of the SCCs module, which I had a very hard time following. It may or may not have gotten easier to read for someone else. I believe this logic can also be used in leak check, but haven't checked. Ha. ha. Ha.
Diffstat (limited to 'compiler/rustc_target/src')
0 files changed, 0 insertions, 0 deletions
