[LLVMdev] LLVM Dependency Graph

David Piepgrass dpiepgrass at mentoreng.com
Mon Jul 26 09:41:14 PDT 2010


Based on cmake/modules/LLVMLibDeps.cmake, I produced a graphviz dot file and then manually removed components and edges until the graph was small enough to be presentable. I don't know if I can actually use LLVM due to its humongousness, but I hope the graph will be helpful to others attempting to comprehend LLVM. PNG attached; dot file follows.

digraph G {

ipo [shape=box,style=filled,color=olivedrab1];
ipa [shape=box,style=filled,color=olivedrab1];
X86Info [shape=box,style=filled,color=olivedrab1];
X86Disassembler [shape=box,style=filled,color=olivedrab1];
X86CodeGen [shape=box,style=filled,color=olivedrab1];
X86AsmPrinter [shape=box,style=filled,color=olivedrab1];
X86AsmParser [shape=box,style=filled,color=olivedrab1];
TransformUtils [shape=box,style=filled,color=olivedrab1];
Target [shape=box,style=filled,color=olivedrab1];
System [shape=box,style=filled,color=olivedrab1];
Support [shape=box,style=filled,color=olivedrab1];
SelectionDAG [shape=box,style=filled,color=olivedrab1];
ScalarOpts [shape=box,style=filled,color=olivedrab1];
MCParser [shape=box,style=filled,color=olivedrab1];
MC [shape=box,style=filled,color=olivedrab1];
Linker [shape=box,style=filled,color=olivedrab1];
JIT [shape=box,style=filled,color=olivedrab1];
Interpreter [shape=box,style=filled,color=olivedrab1];
Instrumentation [shape=box,style=filled,color=olivedrab1];
InstCombine [shape=box,style=filled,color=olivedrab1];
ExecutionEngine [shape=box,style=filled,color=olivedrab1];
Core [shape=box,style=filled,color=olivedrab1];
CodeGen [shape=box,style=filled,color=olivedrab1];
BitWriter [shape=box,style=filled,color=olivedrab1];
BitReader [shape=box,style=filled,color=olivedrab1];
AsmPrinter [shape=box,style=filled,color=olivedrab1];
AsmParser [shape=box,style=filled,color=olivedrab1];
Archive [shape=box,style=filled,color=olivedrab1];
Analysis [shape=box,style=filled,color=olivedrab1];
ARMInfo [shape=box,style=filled,color=olivedrab1];
ARMCodeGen [shape=box,style=filled,color=olivedrab1];
ARMAsmPrinter [shape=box,style=filled,color=olivedrab1];
ARMAsmParser [shape=box,style=filled,color=olivedrab1];

subgraph clusterARM { ARMAsmParser; ARMAsmPrinter; ARMInfo; ARMCodeGen; }
subgraph clusterX86 { X86AsmParser; X86AsmPrinter; X86Info; X86CodeGen; }


ARMAsmParser -> ARMInfo
ARMAsmParser -> MCParser
//ARMAsmParser -> Support

ARMAsmPrinter -> ARMCodeGen
ARMAsmPrinter -> ARMInfo
ARMAsmPrinter -> AsmPrinter
ARMAsmPrinter -> CodeGen
//ARMAsmPrinter -> Core
//ARMAsmPrinter -> MC
//ARMAsmPrinter -> Support
//ARMAsmPrinter -> System
//ARMAsmPrinter -> Target

ARMInfo -> Support

ARMCodeGen -> ARMInfo
ARMCodeGen -> CodeGen
//ARMCodeGen -> Core
//ARMCodeGen -> MC
ARMCodeGen -> SelectionDAG
//ARMCodeGen -> Support
//ARMCodeGen -> System
//ARMCodeGen -> Target

//Analysis -> Core
//Analysis -> Support
//Analysis -> System
Analysis -> Target

Archive -> BitReader
Archive -> Core
//Archive -> Support
//Archive -> System

AsmPrinter -> Analysis
AsmPrinter -> CodeGen
//AsmPrinter -> Core
//AsmPrinter -> MC
//AsmPrinter -> Support
//AsmPrinter -> System
//AsmPrinter -> Target

CodeGen -> Analysis
//CodeGen -> Core
CodeGen -> MC
CodeGen -> ScalarOpts
//CodeGen -> Support
//CodeGen -> System
//CodeGen -> Target
CodeGen -> TransformUtils

//ExecutionEngine -> Core
//ExecutionEngine -> Support
//ExecutionEngine -> System
ExecutionEngine -> Target

InstCombine -> Analysis
//InstCombine -> Core
//InstCombine -> Support
//InstCombine -> System
//InstCombine -> Target
InstCombine -> TransformUtils

Instrumentation -> Analysis
//Instrumentation -> Core
//Instrumentation -> Support
//Instrumentation -> System
Instrumentation -> TransformUtils

Interpreter -> CodeGen
//Interpreter -> Core
Interpreter -> ExecutionEngine
//Interpreter -> Support
//Interpreter -> System
//Interpreter -> Target

JIT -> Analysis
JIT -> CodeGen
//JIT -> Core
JIT -> ExecutionEngine
//JIT -> MC
//JIT -> Support
//JIT -> System
//JIT -> Target

Linker -> Archive
Linker -> BitReader
//Linker -> Core
//Linker -> Support
//Linker -> System

ScalarOpts -> Analysis
//ScalarOpts -> Core
ScalarOpts -> InstCombine
//ScalarOpts -> Support
//ScalarOpts -> System
//ScalarOpts -> Target
ScalarOpts -> TransformUtils

SelectionDAG -> Analysis
SelectionDAG -> AsmPrinter
SelectionDAG -> CodeGen
//SelectionDAG -> Core
//SelectionDAG -> Support
//SelectionDAG -> System
//SelectionDAG -> Target

TransformUtils -> Analysis
//TransformUtils -> Core
//TransformUtils -> Support
//TransformUtils -> System
//TransformUtils -> Target
TransformUtils -> ipa

X86AsmParser -> MC
X86AsmParser -> MCParser
//X86AsmParser -> Support
X86AsmParser -> X86Info
X86AsmPrinter -> Analysis
X86AsmPrinter -> AsmPrinter
X86AsmPrinter -> CodeGen

//X86AsmPrinter -> Core
//X86AsmPrinter -> MC
//X86AsmPrinter -> Support
//X86AsmPrinter -> System
//X86AsmPrinter -> Target
X86AsmPrinter -> X86CodeGen
X86AsmPrinter -> X86Info

X86CodeGen -> CodeGen
//X86CodeGen -> Core
//X86CodeGen -> MC
X86CodeGen -> SelectionDAG
//X86CodeGen -> Support
//X86CodeGen -> System
//X86CodeGen -> Target
X86CodeGen -> X86Info

X86Info -> Support

X86Disassembler -> MC
//X86Disassembler -> Support
X86Disassembler -> X86Info

ipa -> Analysis
//ipa -> Core
//ipa -> Support
//ipa -> System
ipo -> Analysis
//ipo -> Core
//ipo -> Support
//ipo -> System
//ipo -> Target
ipo -> TransformUtils
ipo -> ipa

Target -> Core
Target -> MC
//Target -> Support
AsmParser -> Core
//AsmParser -> Support
BitReader -> Core
//BitReader -> Support
BitWriter -> Core
//BitWriter -> Support
//BitWriter -> System
Core -> Support
Core -> System
MCParser -> MC
//MCParser -> Support
MC -> Support
//MC -> System
Support -> System

/*
XCoreInfo -> Support
XCore -> CodeGen
XCore -> Core
XCore -> MC
XCore -> SelectionDAG
XCore -> Support
XCore -> Target
XCore -> XCoreInfo
XCoreAsmPrinter -> AsmPrinter
XCoreAsmPrinter -> CodeGen
XCoreAsmPrinter -> Core
XCoreAsmPrinter -> MC
XCoreAsmPrinter -> Support
XCoreAsmPrinter -> System
XCoreAsmPrinter -> Target
XCoreAsmPrinter -> XCoreInfo
MSP430Info -> Support
MSP430AsmPrinter -> AsmPrinter
MSP430AsmPrinter -> CodeGen
MSP430AsmPrinter -> Core
MSP430AsmPrinter -> MC
MSP430AsmPrinter -> MSP430Info
MSP430AsmPrinter -> Support
MSP430AsmPrinter -> System
MSP430AsmPrinter -> Target
MSP430CodeGen -> CodeGen
MSP430CodeGen -> Core
MSP430CodeGen -> MC
MSP430CodeGen -> MSP430Info
MSP430CodeGen -> SelectionDAG
MSP430CodeGen -> Support
MSP430CodeGen -> System
MSP430CodeGen -> Target
MipsInfo -> Support
MipsAsmPrinter -> AsmPrinter
MipsAsmPrinter -> CodeGen
MipsAsmPrinter -> Core
MipsAsmPrinter -> MC
MipsAsmPrinter -> MipsCodeGen
MipsAsmPrinter -> MipsInfo
MipsAsmPrinter -> Support
MipsAsmPrinter -> System
MipsAsmPrinter -> Target
MipsCodeGen -> CodeGen
MipsCodeGen -> Core
MipsCodeGen -> MC
MipsCodeGen -> MipsInfo
MipsCodeGen -> SelectionDAG
MipsCodeGen -> Support
MipsCodeGen -> System
MipsCodeGen -> Target
PIC16Info -> Support
PIC16 -> Analysis
PIC16 -> CodeGen
PIC16 -> Core
PIC16 -> MC
PIC16 -> PIC16Info
PIC16 -> SelectionDAG
PIC16 -> Support
PIC16 -> Target
PIC16AsmPrinter -> AsmPrinter
PIC16AsmPrinter -> CodeGen
PIC16AsmPrinter -> Core
PIC16AsmPrinter -> MC
PIC16AsmPrinter -> PIC16
PIC16AsmPrinter -> PIC16Info
PIC16AsmPrinter -> Support
PIC16AsmPrinter -> Target
PowerPCInfo -> Support
PowerPCAsmPrinter -> AsmPrinter
PowerPCAsmPrinter -> CodeGen
PowerPCAsmPrinter -> Core
PowerPCAsmPrinter -> MC
PowerPCAsmPrinter -> PowerPCInfo
PowerPCAsmPrinter -> Support
PowerPCAsmPrinter -> System
PowerPCAsmPrinter -> Target
PowerPCCodeGen -> CodeGen
PowerPCCodeGen -> Core
PowerPCCodeGen -> MC
PowerPCCodeGen -> PowerPCInfo
PowerPCCodeGen -> SelectionDAG
PowerPCCodeGen -> Support
PowerPCCodeGen -> System
PowerPCCodeGen -> Target
SystemZInfo -> Support
SystemZAsmPrinter -> AsmPrinter
SystemZAsmPrinter -> CodeGen
SystemZAsmPrinter -> Core
SystemZAsmPrinter -> MC
SystemZAsmPrinter -> Support
SystemZAsmPrinter -> System
SystemZAsmPrinter -> SystemZInfo
SystemZAsmPrinter -> Target
SystemZCodeGen -> CodeGen
SystemZCodeGen -> Core
SystemZCodeGen -> MC
SystemZCodeGen -> SelectionDAG
SystemZCodeGen -> Support
SystemZCodeGen -> SystemZInfo
SystemZCodeGen -> Target
MSILInfo -> Support
MSIL -> Analysis
MSIL -> CodeGen
MSIL -> Core
MSIL -> MSILInfo
MSIL -> ScalarOpts
MSIL -> Support
MSIL -> Target
MSIL -> TransformUtils
MSIL -> ipa
CppBackendInfo -> Support
CppBackend -> Core
CppBackend -> CppBackendInfo
CppBackend -> Support
CppBackend -> Target
AlphaInfo -> Support
AlphaAsmPrinter -> AlphaInfo
AlphaAsmPrinter -> AsmPrinter
AlphaAsmPrinter -> CodeGen
AlphaAsmPrinter -> Core
AlphaAsmPrinter -> MC
AlphaAsmPrinter -> Support
AlphaAsmPrinter -> System
AlphaAsmPrinter -> Target
AlphaCodeGen -> AlphaInfo
AlphaCodeGen -> CodeGen
AlphaCodeGen -> Core
AlphaCodeGen -> MC
AlphaCodeGen -> SelectionDAG
AlphaCodeGen -> Support
AlphaCodeGen -> System
AlphaCodeGen -> Target
SparcInfo -> Support
SparcAsmPrinter -> AsmPrinter
SparcAsmPrinter -> CodeGen
SparcAsmPrinter -> Core
SparcAsmPrinter -> MC
SparcAsmPrinter -> SparcInfo
SparcAsmPrinter -> Support
SparcAsmPrinter -> System
SparcAsmPrinter -> Target
SparcCodeGen -> CodeGen
SparcCodeGen -> Core
SparcCodeGen -> MC
SparcCodeGen -> SelectionDAG
SparcCodeGen -> SparcInfo
SparcCodeGen -> Support
SparcCodeGen -> System
SparcCodeGen -> Target
BlackfinInfo -> Support
BlackfinAsmPrinter -> AsmPrinter
BlackfinAsmPrinter -> BlackfinInfo
BlackfinAsmPrinter -> CodeGen
BlackfinAsmPrinter -> Core
BlackfinAsmPrinter -> MC
BlackfinAsmPrinter -> Support
BlackfinAsmPrinter -> System
BlackfinAsmPrinter -> Target
BlackfinCodeGen -> BlackfinInfo
BlackfinCodeGen -> CodeGen
BlackfinCodeGen -> Core
BlackfinCodeGen -> MC
BlackfinCodeGen -> SelectionDAG
BlackfinCodeGen -> Support
BlackfinCodeGen -> Target
CBackendInfo -> Support
CBackend -> Analysis
CBackend -> CBackendInfo
CBackend -> CodeGen
CBackend -> Core
CBackend -> MC
CBackend -> ScalarOpts
CBackend -> Support
CBackend -> System
CBackend -> Target
CBackend -> TransformUtils
CBackend -> ipa
CellSPUInfo -> Support
CellSPUAsmPrinter -> AsmPrinter
CellSPUAsmPrinter -> CellSPUInfo
CellSPUAsmPrinter -> CodeGen
CellSPUAsmPrinter -> Core
CellSPUAsmPrinter -> MC
CellSPUAsmPrinter -> Support
CellSPUAsmPrinter -> System
CellSPUAsmPrinter -> Target
CellSPUCodeGen -> CellSPUInfo
CellSPUCodeGen -> CodeGen
CellSPUCodeGen -> Core
CellSPUCodeGen -> MC
CellSPUCodeGen -> SelectionDAG
CellSPUCodeGen -> Support
CellSPUCodeGen -> Target
*/
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100726/6dd54feb/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LLVM 2.7 dependencies.png
Type: image/png
Size: 134406 bytes
Desc: LLVM 2.7 dependencies.png
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100726/6dd54feb/attachment.png>


More information about the llvm-dev mailing list