about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-05-21 00:47:02 +0200
committerGitHub <noreply@github.com>2024-05-21 00:47:02 +0200
commite97103ff6c6cbc9026e9e62ca9397e1443e293c6 (patch)
treefbd0f3d7eeac885cad141167937e4776482a3229 /compiler/rustc_codegen_llvm/src
parent4b26045b92c498f1b22aeb353fb76df859262f09 (diff)
parentf99c9ffd88cd6d1954c444e86fe98b3e05333edd (diff)
downloadrust-e97103ff6c6cbc9026e9e62ca9397e1443e293c6.tar.gz
rust-e97103ff6c6cbc9026e9e62ca9397e1443e293c6.zip
Rollup merge of #125308 - lcnr:search-graph-5, r=compiler-errors
track cycle participants per root

The search graph may have multiple roots, e.g. in
```
A :- B
B :- A, C
C :- D
D :- C
```
we first encounter the `A -> B -> A` cycle which causes `A` to be a root. We then later encounter the `C -> D -> C` cycle as a nested goal of `B`. This cycle is completely separate and `C` will get moved to the global cache. This previously caused us to use `[B, D]` as the `cycle_participants` for `C` and `[]` for `A`.

split off from #125167 as I would like to merge this change separately and will rebase that PR on top of this one. There is no test for this issue and I don't quite know how to write one. It is probably worth it to generalize the search graph to enable us to write unit tests for it.

r? `@compiler-errors`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions