microsoft / DirectXShaderCompiler
Components & Dependencies

An overview of source code logical components.

Intro

Logical decomposition is a representation of the organization of the main source code, where every and each file is put in exactly one logical component.

  • A software system can have one or more logical decompositions.
  • A logical decomposition can be defined in two ways in Sokrates.
  • First approach is based on the folders structure. Components are mapped to folders at defined folder depth relative to the source code root.
  • Second approach is based on explicit definition of each component. In such explicit definitions, components are explicitly named and their files are selected based on explicitly defined path and content filters.
  • A logical decomposition is considered invalid if a file is selected into two or more components.This constraint is introduced in order to facilitate measuring of dependencies among components.
  • Files not assigned to any component are put into a special "Unclassified" component.
Learn more...
Logical Decompositions Overview

Analyzed system has 1 logical decomposition:

  • primary (111 components)

Logical Decomposition #1: PRIMARY

The decompositions is based on the folder structure (relative to the source code root), with automatically defined folder depth to have at least 10 components.

Bubble Chart | Tree Map
Components
The "primary" logical decomposition has 111 components.
  • 3,744 files, 1,466,640 lines of code (100.0% vs. main code).
  • "tools/clang" is biggest, containing 50.59% of code.
  • "tools/llvm-shlib" is smallest, containing 0% of code.


tools/clang741999 LOC (50%) 1313 files
lib/CodeGen111653 LOC (7%) 215 files
include/llvm102091 LOC (6%) 695 files
lib/Transforms100048 LOC (6%) 174 files
lib/Analysis35245 LOC (2%) 77 files
lib/HLSL33230 LOC (2%) 54 files
utils/unittest31105 LOC (2%) 55 files
lib/IR29151 LOC (1%) 54 files
lib/Support28605 LOC (1%) 129 files
utils/TableGen23146 LOC (1%) 45 files
include/dxc22965 LOC (1%) 92 files
lib/MC17598 LOC (1%) 63 files
projects/dxilconv14768 LOC (1%) 25 files
lib/ExecutionEngine11500 LOC (<1%) 42 files
lib/DXIL10602 LOC (<1%) 23 files
unittests/ADT10027 LOC (<1%) 38 files
tools/llvm-objdump9537 LOC (<1%) 5 files
utils/hct9090 LOC (<1%) 57 files
unittests/Support8010 LOC (<1%) 40 files
lib/DxilDia7486 LOC (<1%) 43 files
lib/Bitcode7429 LOC (<1%) 8 files
lib/Miniz6221 LOC (<1%) 2 files
lib/Object6021 LOC (<1%) 18 files
tools/llvm-readobj5829 LOC (<1%) 19 files
unittests/IR5807 LOC (<1%) 21 files
lib/AsmParser5768 LOC (<1%) 6 files
lib/DebugInfo5768 LOC (<1%) 64 files
lib/DxrFallback5224 LOC (<1%) 14 files
lib/TableGen4377 LOC (<1%) 10 files
lib/DxilPIXPasses4336 LOC (<1%) 15 files
lib/DxcSupport3183 LOC (<1%) 8 files
cmake/modules2915 LOC (<1%) 23 files
tools/dsymutil2408 LOC (<1%) 8 files
utils/lit2270 LOC (<1%) 21 files
lib/DxilContainer1998 LOC (<1%) 5 files
lib/ProfileData1813 LOC (<1%) 10 files
include/llvm-c1806 LOC (<1%) 19 files
lib/DxilRootSignature1697 LOC (<1%) 5 files
tools/lli1591 LOC (<1%) 14 files
tools/llvm-pdbdump1494 LOC (<1%) 22 files
tools/llvm-cov1445 LOC (<1%) 14 files
lib/Fuzzer1300 LOC (<1%) 13 files
utils1294 LOC (<1%) 13 files
lib/Linker1252 LOC (<1%) 1 files
unittests/Analysis1244 LOC (<1%) 6 files
tools/llvm-nm1032 LOC (<1%) 1 files
tools/yaml2obj1009 LOC (<1%) 4 files
lib/LTO963 LOC (<1%) 2 files
lib/Option932 LOC (<1%) 4 files
utils/FileCheck902 LOC (<1%) 1 files
utils/llvm-build888 LOC (<1%) 5 files
tools/llvm-diff885 LOC (<1%) 7 files
lib/Target845 LOC (<1%) 7 files
unittests/Transforms782 LOC (<1%) 6 files
tools/opt759 LOC (<1%) 8 files
include/miniz709 LOC (<1%) 1 files
tools/obj2yaml689 LOC (<1%) 6 files
tools/llvm-symbolizer681 LOC (<1%) 3 files
tools/llvm-mc610 LOC (<1%) 3 files
tools/llvm-size610 LOC (<1%) 1 files
tools/llvm-bcanalyzer571 LOC (<1%) 1 files
tools/llvm-cxxdump553 LOC (<1%) 4 files
tools/llvm-stress523 LOC (<1%) 1 files
cmake506 LOC (<1%) 1 files
unittests/CodeGen504 LOC (<1%) 1 files
tools/llvm-rtdyld481 LOC (<1%) 1 files
lib/MSSupport470 LOC (<1%) 1 files
unittests/DebugInfo457 LOC (<1%) 2 files
tools/llvm-c-test453 LOC (<1%) 10 files
tools/verify-uselistorder419 LOC (<1%) 1 files
utils/KillTheDoctor415 LOC (<1%) 1 files
utils/PerfectShuffle397 LOC (<1%) 1 files
lib/DxcBindingTable384 LOC (<1%) 1 files
tools/macho-dump354 LOC (<1%) 1 files
unittests/ProfileData312 LOC (<1%) 2 files
tools/dxexp303 LOC (<1%) 1 files
lib/Passes302 LOC (<1%) 1 files
tools/llc283 LOC (<1%) 1 files
tools/llvm-config275 LOC (<1%) 2 files
tools/lto274 LOC (<1%) 2 files
unittests/Bitcode253 LOC (<1%) 2 files
ROOT233 LOC (<1%) 3 files
tools/llvm-profdata231 LOC (<1%) 1 files
tools/llvm-extract217 LOC (<1%) 1 files
tools/llvm-lto215 LOC (<1%) 1 files
utils/release199 LOC (<1%) 2 files
utils/yaml-bench194 LOC (<1%) 1 files
lib/PassPrinters192 LOC (<1%) 1 files
unittests/Option170 LOC (<1%) 1 files
tools/llvm-dis161 LOC (<1%) 1 files
unittests/Linker157 LOC (<1%) 1 files
projects/include154 LOC (<1%) 1 files
tools/llvm-mcmarkup154 LOC (<1%) 1 files
tools/llvm-link132 LOC (<1%) 1 files
unittests/MC116 LOC (<1%) 3 files
utils/lint109 LOC (<1%) 3 files
tools/llvm-dwarfdump105 LOC (<1%) 2 files
utils/version98 LOC (<1%) 2 files
lib/IRReader93 LOC (<1%) 1 files
cmake/platforms92 LOC (<1%) 2 files
tools/llvm-as90 LOC (<1%) 1 files
tools/msbuild75 LOC (<1%) 8 files
utils/testgen68 LOC (<1%) 1 files
azure-pipelines54 LOC (<1%) 3 files
unittests/AsmParser46 LOC (<1%) 1 files
utils/not38 LOC (<1%) 1 files
utils/llvm-lit35 LOC (<1%) 1 files
utils/count32 LOC (<1%) 1 files
utils/fpcmp23 LOC (<1%) 1 files
cmake/caches21 LOC (<1%) 1 files
tools/llvm-shlib5 LOC (<1%) 1 files
Dependencies
Dependencies among components are static code dependencies among files in different components.

No component dependencies found.



2022-01-30 14:19