That sounds like a good plan, and I think I might be able to sneak in BuryPointer as well, which is just a single function with static variables.
-- adrian > On Feb 25, 2015, at 1:34 PM, Reid Kleckner <[email protected]> wrote: > > What do you think about moving CodeGenOptions.cpp to Basic, alongside > LanguageOptions and SanitizerSet? CodeGenOptions is basically a big bag of > strings and numbers with no dependencies on anything interesting. > > On Wed, Feb 25, 2015 at 1:02 PM, Adrian Prantl <[email protected] > <mailto:[email protected]>> wrote: > On Feb 24, 2015, at 6:28 PM, Adrian Prantl <[email protected] > <mailto:[email protected]>> wrote: >> You are correct. I need to remove the use of PCHGenerator from >> ModuleContainerGenerator. >>> On Feb 24, 2015, at 6:11 PM, NAKAMURA Takumi <[email protected] >>> <mailto:[email protected]>> wrote: >>> It still has circular dependencies between clangCodeGen and clangFrontend. > > After some deliberation, I noticed that there is actually more to be done > here in order to resolve the cyclic dependencies. Here is a graph of (a > simplified subset of) the dependencies after this commit: > - Pretty much all of CodeGen depends on CodeGenOptions, which is currently > part of Frontend. > - BackendUtil and CodeGenAction depend on both CodeGen and Frontend. > - CodeGenModuleContainer introduces a cyclic dependency between Frontend and > CodeGen. > > <before.png> > > The above cycle can be resolved by reversing the CodeGen->Frontend dependency > and splitting out the common dependencies CodeGenOptions and > frontend::utils::BuryPointer into a separate library that I’m calling > FrontendSupport for lack of a better name. After this, the only remaining > CodeGen->Frontend dependencies are CodeGen/BackendUtil.cpp and > CodeGen/CodeGenAction.cpp: > - CodeGenAction looks like it could safely be moved into FrontendTool, which > is its only user. > - BackendUtil can stay were it is, it is needed by CodeGenAction and (via > CodeGenModuleContainer) by Frontend. The dependency on Frontend can be > eliminated by splitting BuryPointer out from Utils. > The new picture then looks like this: > > <after.png> > > I’ll try and implement it this way; hopefully I didn’t miss any other edges > in the graph. > -- adrian > >> >> thanks for noticing! >> -- adrian > > > _______________________________________________ > cfe-commits mailing list > [email protected] <mailto:[email protected]> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > <http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits> > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
