[LLVMdev] Circular dependencies
Eric Kidd
emk.lists at gmail.com
Tue Mar 21 21:24:08 PST 2006
On Mar 21, 2006, at 11:23 PM, Chris Lattner wrote:
>>> LLVMCodeGen.o LLVMSelectionDAG.o libLLVMAnalysis.a
>>> libLLVMTarget.a
>>> libLLVMTransformUtils.a libLLVMipa.a
>
> CodeGen should depend on Target, but not the other way around.
> LLVMIPA should depend on LLVMAnalysis, but certainly nothing in the
> list should depend on LLVMIPA. If you knew what was pulling in IPA
> that would probably be an easy tie to sever.
>
> Ideally, none of the above should depend on libLLVMTransformUtils.
Here's the raw data on who's pulling what into that cycle:
LLVMCodeGen.o: libLLVMAnalysis.a libLLVMSupport.a libLLVMTarget.a
LLVMCore.o
LLVMSelectionDAG.o: libLLVMSupport.a libLLVMSystem.a libLLVMTarget.a
libLLVMTransformUtils.a LLVMCodeGen.o LLVMCore.o
libLLVMAnalysis.a: libLLVMSupport.a libLLVMTarget.a LLVMCore.o
libLLVMTarget.a: libLLVMSupport.a LLVMCodeGen.o LLVMCore.o
LLVMSelectionDAG.o
libLLVMTransformUtils.a: libLLVMAnalysis.a libLLVMipa.a
libLLVMSupport.a LLVMCore.o
libLLVMipa.a: libLLVMAnalysis.a libLLVMSupport.a LLVMCore.o
It looks as if libLLVMipa.a is pulled in by libLLVMTransformUtils.a,
which is in turn pulled in by LLVMSelectionDAG.o. Do either of those
links seem remotely plausible?
Somebody who can run GenLibDeps.txt (I can't) could narrow it down
further.
Cheers,
Eric
More information about the llvm-dev
mailing list