microsoft / mu_silicon_arm_tiano
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 17% duplication:
    • 29,830 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 5,334 duplicated lines
  • 491 duplicates
system17% (5,334 lines)
Duplication per Extension
c17% (3,540 lines)
S21% (753 lines)
h15% (485 lines)
asm23% (327 lines)
yaml36% (143 lines)
s52% (38 lines)
py3% (36 lines)
inc2% (12 lines)
Duplication per Component (primary)
ArmPkg/Library15% (1,333 lines)
ArmPlatformPkg/Drivers26% (855 lines)
ArmPkg/Drivers19% (760 lines)
ArmVirtPkg/Library20% (681 lines)
ArmPlatformPkg/Library22% (295 lines)
ArmPlatformPkg/PrePi39% (215 lines)
ArmPlatformPkg/PrePeiCore24% (198 lines)
ArmPkg/Include10% (190 lines)
ArmPkg/Universal10% (183 lines)
ArmVirtPkg/PrePi32% (154 lines)
ArmPkg24% (56 lines)
ArmPlatformPkg46% (54 lines)
ArmVirtPkg8% (45 lines)
ArmVirtPkg/Include38% (40 lines)
ArmPkg/Filesystem5% (38 lines)
ArmPlatformPkg/Scripts4% (36 lines)
ArmVirtPkg/FdtClientDxe11% (35 lines)
ArmVirtPkg/PlatformHasAcpiDtDxe72% (29 lines)
ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe93% (29 lines)
ArmPlatformPkg/Include11% (22 lines)
ArmPlatformPkg/MemoryInitPei12% (21 lines)
ArmVirtPkg/XenPlatformHasAcpiDtDxe72% (21 lines)
ArmVirtPkg/CloudHvAcpiPlatformDxe20% (16 lines)
ArmVirtPkg/XenAcpiPlatformDxe13% (16 lines)
ArmVirtPkg/XenioFdtDxe17% (6 lines)
ArmPlatformPkg/PlatformPei12% (6 lines)
ArmVirtPkg/HighMemDxe0% (0 lines)
ArmVirtPkg/KvmtoolPlatformDxe0% (0 lines)
ArmVirtPkg/PlatformCI0% (0 lines)
ArmVirtPkg/VirtioFdtDxe0% (0 lines)

Duplication Between Components (50+ lines)

G ArmPkg/Library ArmPkg/Library ArmVirtPkg/Library ArmVirtPkg/Library ArmPkg/Library--ArmVirtPkg/Library 870 ArmPlatformPkg/Library ArmPlatformPkg/Library ArmPkg/Library--ArmPlatformPkg/Library 50 ArmPlatformPkg/PrePi ArmPlatformPkg/PrePi ArmVirtPkg/PrePi ArmVirtPkg/PrePi ArmPlatformPkg/PrePi--ArmVirtPkg/PrePi 248 ArmPlatformPkg/Library--ArmVirtPkg/Library 122 ArmPkg ArmPkg ArmPlatformPkg ArmPlatformPkg ArmPkg--ArmPlatformPkg 100 ArmVirtPkg ArmVirtPkg ArmPkg--ArmVirtPkg 67 ArmPlatformPkg--ArmVirtPkg 64 ArmPkg/Drivers ArmPkg/Drivers ArmPkg/Include ArmPkg/Include ArmPkg/Drivers--ArmPkg/Include 94 ArmPkg/Include--ArmPkg/Library 54 ArmPlatformPkg/PrePeiCore ArmPlatformPkg/PrePeiCore ArmPlatformPkg/PrePeiCore--ArmPlatformPkg/PrePi 68 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe ArmVirtPkg/PlatformHasAcpiDtDxe ArmVirtPkg/PlatformHasAcpiDtDxe ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe--ArmVirtPkg/PlatformHasAcpiDtDxe 58

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 491 duplicates...
Size#FoldersFilesLinesCode
108 x 2 ArmPkg/Library/PlatformBootManagerLib
ArmVirtPkg/Library/PlatformBootManagerLib
PlatformBm.c
PlatformBm.c
40:265 (22%)
38:263 (22%)
view
63 x 2 ArmPkg/Library/ArmGenericTimerVirtCounterLib
ArmVirtPkg/Library/XenAr...ericTimerVirtCounterLib
ArmGenericTimerVirtCounterLib.c
XenArmGenericTimerVirtCounterLib.c
34:126 (81%)
47:139 (76%)
view
53 x 2 ArmPlatformPkg/Drivers/NorFlashDxe
ArmPlatformPkg/Drivers/NorFlashDxe
NorFlashDxe.c
NorFlashStandaloneMm.c
65:138 (17%)
59:132 (22%)
view
46 x 2 ArmPkg/Library/PlatformBootManagerLib
ArmVirtPkg/Library/PlatformBootManagerLib
PlatformBm.c
PlatformBm.c
286:357 (9%)
368:439 (9%)
view
44 x 2 ArmPkg/Library/PlatformBootManagerLib
ArmVirtPkg/Library/PlatformBootManagerLib
PlatformBm.c
PlatformBm.c
362:412 (9%)
443:493 (9%)
view
31 x 2 ArmPkg/Library/ArmExceptionLib/Arm
ArmPkg/Library/ArmExceptionLib/Arm
S
ExceptionSupport.S
ExceptionSupport.asm
13:48 (13%)
13:48 (13%)
view
30 x 2 ArmPkg/Library/ArmSmcPsciResetSystemLib
ArmVirtPkg/Library/ArmVirtPsciResetSystemLib
ArmSmcPsciResetSystemLib.c
ArmVirtPsciResetSystemLib.c
87:137 (57%)
159:209 (30%)
view
30 x 2 ArmVirtPkg/Library/ArmVirtPsciResetSystemLib
ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib
ArmVirtPsciResetSystemLib.c
ArmVirtPsciResetSystemPeiLib.c
159:209 (30%)
180:230 (27%)
view
30 x 2 ArmPkg/Library/ArmSmcPsciResetSystemLib
ArmVirtPkg/Library/ArmVirtPsciResetSystemPeiLib
ArmSmcPsciResetSystemLib.c
ArmVirtPsciResetSystemPeiLib.c
87:137 (57%)
180:230 (27%)
view
25 x 2 ArmPlatformPkg/Drivers/NorFlashDxe
ArmPlatformPkg/Drivers/NorFlashDxe
NorFlashDxe.c
NorFlashStandaloneMm.c
253:306 (8%)
213:266 (10%)
view
23 x 2 ArmPlatformPkg/PrePi
ArmVirtPkg/PrePi
PrePi.h
PrePi.h
26:52 (45%)
25:52 (76%)
view
23 x 2 ArmPkg/Library/PlatformBootManagerLib
ArmVirtPkg/Library/PlatformBootManagerLib
PlatformBm.c
PlatformBm.c
539:582 (4%)
645:688 (4%)
view
22 x 2 ArmPkg/Library/ArmSmcLib/Arm
ArmPkg/Library/ArmSmcLib/Arm
S
ArmSmc.S
ArmSmc.asm
17:44 (64%)
16:43 (64%)
view
22 x 2 ArmPkg/Drivers/ArmGic/GicV2
ArmPkg/Drivers/ArmGic/GicV3
ArmGicV2Dxe.c
ArmGicV3Dxe.c
210:250 (9%)
204:244 (9%)
view
22 x 2 ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe
ArmVirtPkg/PlatformHasAcpiDtDxe
CloudHvHasAcpiDtDxe.c
PlatformHasAcpiDtDxe.c
44:78 (70%)
47:81 (55%)
view
22 x 2 ArmPkg/Library/ArmHvcLib/Arm
ArmPkg/Library/ArmHvcLib/Arm
S
ArmHvc.S
ArmHvc.asm
18:45 (62%)
17:44 (62%)
view
22 x 2 ArmPkg/Drivers/ArmGic/GicV2
ArmPkg/Drivers/ArmGic/GicV3
ArmGicV2Dxe.c
ArmGicV3Dxe.c
252:278 (9%)
246:272 (9%)
view
21 x 2 ArmPkg/Universal/Smbios/ProcessorSubClassDxe
ArmPkg/Universal/Smbios/ProcessorSubClassDxe
SmbiosProcessorAArch64.c
SmbiosProcessorArm.c
48:85 (47%)
51:89 (45%)
view
21 x 2 ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe
LcdGraphicsOutputBlt.c
LcdGraphicsOutputBlt.c
423:452 (3%)
581:610 (3%)
view
20 x 2 ArmPkg/Include/Chipset
ArmPkg/Include/Chipset
AArch64.h
ArmV7.h
152:174 (19%)
87:109 (66%)
view