[lld] LLD's software architecture


I’m analysing the LLD code structure (aka architecture) and am

trying to mold it into a component model.

Currently I see 4 components:

  • Driver

  • ReaderWriter

  • Passes

  • Core

I wonder if this is the order that they’re supposed to be in,

since there are also code dependencies upwards from:

Core → ReaderWriter

Passes → ReaderWriter

ReaderWriter → Driver

For a graphical view check:

I think that with a few surgical patches, the dependency tree
can be completely free of circular deps.


You're interpretation seems right to me. I would love to get this
cleaned up. A lot of this seems to be caused by the round trip passes,
which I am currently moving up into reader writer (they are no longer
passes). I'm not sure how to fix the LinkingContext dependencies

- Michael Spencer

These upward dependencies are I think a kind of bug that needs to be fixed. If you can remove them I’d love to see that.