anthropics/claudes-c-compiler
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 15% duplication:
- 124,146 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 18,968 duplicated lines
- 2,079 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 60 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 257:331 (9%)425:503 (7%) | view | |
| 59 | x 2 | src/frontend/semasrc/ir/lowering | 214:280 (20%)35:101 (26%) | view | |
| 59 | x 2 | src/ir/loweringsrc/ir/lowering | 967:1038 (7%)285:356 (7%) | view | |
| 41 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 63:129 (48%)72:140 (48%) | view | |
| 41 | x 2 | src/backend/i686/codegensrc/backend/x86/codegen | 234:282 (9%)370:419 (10%) | view | |
| 39 | x 2 | src/passessrc/passes | 790:830 (3%)1003:1043 (3%) | view | |
| 39 | x 2 | src/frontend/lexersrc/frontend/lexer | 607:658 (5%)667:714 (5%) | view | |
| 37 | x 2 | src/passessrc/passes | 1083:1121 (2%)1190:1228 (2%) | view | |
| 36 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 480:533 (4%)512:565 (4%) | view | |
| 35 | x 2 | src/backend/x86/assemblersrc/backend/x86/assembler | 1711:1753 (2%)1760:1800 (2%) | view | |
| 35 | x 2 | src/passessrc/passes | 719:755 (2%)1008:1044 (2%) | view | |
| 35 | x 2 | src/passessrc/passes | 719:755 (2%)1086:1122 (2%) | view | |
| 35 | x 2 | src/passessrc/passes | 795:831 (2%)1193:1230 (2%) | view | |
| 35 | x 2 | src/passessrc/passes | 1008:1044 (2%)1086:1122 (2%) | view | |
| 34 | x 2 | src/passessrc/passes | 719:754 (2%)795:830 (2%) | view | |
| 34 | x 2 | src/passessrc/passes | 719:754 (2%)1193:1228 (2%) | view | |
| 34 | x 2 | src/passessrc/passes | 795:830 (2%)1086:1121 (2%) | view | |
| 34 | x 2 | src/passessrc/passes | 1008:1043 (2%)1193:1228 (2%) | view | |
| 34 | x 2 | src/passessrc/passes | 1109:1147 (2%)1460:1502 (2%) | view | |
| 32 | x 2 | src/passessrc/passes | 709:747 (2%)1516:1553 (2%) | view | |
| 32 | x 2 | src/backend/i686/assembler/encodersrc/backend/x86/assembler/encoder | 231:276 (17%)1027:1077 (3%) | view | |
| 31 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 198:239 (5%)366:407 (3%) | view | |
| 31 | x 2 | src/backend/arm/assemblersrc/backend | 298:350 (1%)304:350 (3%) | view | |
| 30 | x 2 | src/passessrc/passes | 1190:1225 (2%)1528:1563 (2%) | view | |
| 29 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 30:72 (4%)34:82 (3%) | view | |
| 29 | x 2 | src/backend/i686/assembler/encodersrc/backend/x86/assembler/encoder | 102:136 (31%)260:294 (15%) | view | |
| 28 | x 2 | src/passessrc/passes | 728:759 (2%)944:974 (2%) | view | |
| 27 | x 2 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 154:185 (2%)195:224 (2%) | view | |
| 27 | x 2 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 310:337 (2%)409:436 (2%) | view | |
| 27 | x 2 | src/passessrc/passes | 871:901 (2%)1017:1047 (2%) | view | |
| 27 | x 2 | src/frontend/semasrc/ir/lowering | 413:445 (3%)393:427 (7%) | view | |
| 27 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 447:479 (4%)637:672 (3%) | view | |
| 27 | x 2 | src/backend/arm/codegensrc/backend/riscv/codegen | 252:279 (13%)259:286 (7%) | view | |
| 26 | x 2 | src/passessrc/passes | 728:755 (2%)871:898 (2%) | view | |
| 26 | x 2 | src/passessrc/passes | 871:898 (2%)944:971 (2%) | view | |
| 26 | x 2 | src/passessrc/passes | 871:898 (2%)1095:1122 (2%) | view | |
| 26 | x 2 | src/passessrc/passes | 944:971 (2%)1017:1044 (2%) | view | |
| 26 | x 2 | src/passessrc/passes | 944:971 (2%)1095:1122 (2%) | view | |
| 25 | x 2 | src/passessrc/passes | 804:830 (1%)871:897 (1%) | view | |
| 25 | x 2 | src/passessrc/passes | 804:830 (1%)944:970 (1%) | view | |
| 25 | x 2 | src/passessrc/passes | 871:897 (1%)1202:1228 (1%) | view | |
| 25 | x 2 | src/passessrc/passes | 944:970 (1%)1202:1228 (1%) | view | |
| 24 | x 2 | src/backend/arm/linkersrc/backend/x86/linker | 168:207 (8%)131:174 (9%) | view | |
| 24 | x 2 | src/backend/i686/assembler/encodersrc/backend/x86/assembler/encoder | 74:108 (21%)158:192 (14%) | view | |
| 23 | x 2 | src/frontend/preprocessorsrc/frontend/preprocessor | 354:417 (5%)492:540 (5%) | view | |
| 23 | x 2 | src/passessrc/passes | 663:685 (3%)792:814 (3%) | view | |
| 22 | x 2 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 235:259 (2%)448:470 (2%) | view | |
| 22 | x 2 | src/passessrc/passes | 721:747 (1%)1190:1215 (1%) | view | |
| 22 | x 2 | src/passessrc/passes | 1206:1231 (1%)1260:1284 (1%) | view | |
| 22 | x 2 | src/frontend/semasrc/ir/lowering | 162:193 (2%)115:154 (5%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 12 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder... | 82:87 (<1%)1276:1281 (<1%)238:243 (<1%)278:283 (<1%)312:317 (<1%)411:416 (<1%)450:455 (<1%)710:715 (<1%)749:754 (<1%)1224:1229 (<1%)... | view | |
| 6 | x 9 | src/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encoder | 439:444 (<1%)488:493 (<1%)716:721 (<1%)737:742 (<1%)763:768 (<1%)938:943 (<1%)967:972 (<1%)996:1001 (<1%)1053:1058 (<1%) | view | |
| 6 | x 9 | src/ir/mem2regsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1016:1023 (<1%)427:434 (1%)927:934 (<1%)677:684 (1%)761:768 (1%)1108:1115 (<1%)1206:1213 (<1%)1308:1315 (<1%)1424:1431 (<1%) | view | |
| 6 | x 9 | src/irsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 302:307 (3%)728:733 (<1%)804:809 (<1%)871:876 (<1%)944:949 (<1%)1017:1022 (<1%)1095:1100 (<1%)1202:1207 (<1%)1259:1264 (<1%) | view | |
| 6 | x 9 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 759:766 (1%)925:932 (<1%)835:842 (1%)978:985 (<1%)1106:1113 (<1%)1152:1159 (<1%)1306:1313 (<1%)1422:1429 (<1%)1484:1491 (<1%) | view | |
| 6 | x 9 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 95:100 (<1%)251:256 (<1%)290:295 (<1%)325:330 (<1%)424:429 (<1%)462:467 (<1%)723:728 (<1%)762:767 (<1%)1237:1242 (<1%) | view | |
| 6 | x 9 | src/irsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 303:308 (3%)729:734 (<1%)805:810 (<1%)872:877 (<1%)945:950 (<1%)1018:1023 (<1%)1096:1101 (<1%)1203:1208 (<1%)1260:1265 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 730:735 (<1%)806:811 (<1%)873:878 (<1%)946:951 (<1%)1019:1024 (<1%)1097:1102 (<1%)1204:1209 (<1%)1261:1266 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 720:725 (<1%)796:801 (<1%)863:868 (<1%)936:941 (<1%)1009:1014 (<1%)1087:1092 (<1%)1194:1199 (<1%)1251:1256 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 741:746 (<1%)817:822 (<1%)884:889 (<1%)957:962 (<1%)1030:1035 (<1%)1108:1113 (<1%)1215:1220 (<1%)1274:1279 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 721:726 (<1%)797:802 (<1%)864:869 (<1%)937:942 (<1%)1010:1015 (<1%)1088:1093 (<1%)1195:1200 (<1%)1252:1257 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 744:749 (<1%)820:825 (<1%)887:892 (<1%)960:965 (<1%)1033:1038 (<1%)1111:1116 (<1%)1218:1223 (<1%)1277:1282 (<1%) | view | |
| 6 | x 8 | src/ir/mem2regsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1035:1042 (<1%)447:454 (1%)954:961 (<1%)704:711 (1%)788:795 (1%)1137:1144 (<1%)1227:1234 (<1%)1451:1458 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 731:736 (<1%)807:812 (<1%)874:879 (<1%)947:952 (<1%)1020:1025 (<1%)1098:1103 (<1%)1205:1210 (<1%)1262:1267 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 719:724 (<1%)795:800 (<1%)862:867 (<1%)935:940 (<1%)1008:1013 (<1%)1086:1091 (<1%)1193:1198 (<1%)1250:1255 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 663:668 (<1%)712:717 (<1%)752:757 (<1%)792:797 (<1%)829:834 (<1%)878:883 (<1%)915:920 (<1%)951:956 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 746:751 (<1%)822:827 (<1%)889:894 (<1%)962:967 (<1%)1035:1040 (<1%)1113:1118 (<1%)1220:1225 (<1%)1279:1284 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 742:747 (<1%)818:823 (<1%)885:890 (<1%)958:963 (<1%)1031:1036 (<1%)1109:1114 (<1%)1216:1221 (<1%)1275:1280 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 745:750 (<1%)821:826 (<1%)888:893 (<1%)961:966 (<1%)1034:1039 (<1%)1112:1117 (<1%)1219:1224 (<1%)1278:1283 (<1%) | view | |
| 6 | x 8 | src/ir/mem2regsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1034:1041 (<1%)446:453 (1%)953:960 (<1%)703:710 (1%)787:794 (1%)1136:1143 (<1%)1226:1233 (<1%)1450:1457 (<1%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 732:737 (<1%)808:813 (<1%)875:880 (<1%)948:953 (<1%)1021:1026 (<1%)1099:1104 (<1%)1206:1211 (<1%)1263:1268 (<1%) | view | |
| 6 | x 8 | src/frontend/semasrc/frontend/semasrc/frontend/semasrc/frontend/semasrc/frontend/semasrc/frontend/semasrc/frontend/semasrc/frontend/sema | 297:302 (<1%)523:528 (<1%)1375:1380 (<1%)1412:1417 (<1%)1534:1539 (<1%)1565:1570 (<1%)1633:1638 (<1%)2003:2008 (<1%) | view | |
| 6 | x 8 | src/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passessrc/backend/x86/codegen/peephole/passes | 1084:1089 (<1%)263:268 (2%)1140:1145 (<1%)296:301 (2%)318:323 (2%)336:341 (2%)355:360 (2%)414:419 (2%) | view | |
| 6 | x 8 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 743:748 (<1%)819:824 (<1%)886:891 (<1%)959:964 (<1%)1032:1037 (<1%)1110:1115 (<1%)1217:1222 (<1%)1276:1281 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 456:463 (1%)719:726 (1%)980:987 (<1%)837:844 (1%)1154:1161 (<1%)1246:1253 (<1%)1486:1493 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 736:742 (<1%)812:818 (<1%)879:885 (<1%)952:958 (<1%)1025:1031 (<1%)1103:1109 (<1%)1210:1216 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 740:745 (<1%)816:821 (<1%)883:888 (<1%)956:961 (<1%)1029:1034 (<1%)1107:1112 (<1%)1214:1219 (<1%) | view | |
| 6 | x 7 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 311:316 (<1%)1275:1280 (<1%)410:415 (<1%)748:753 (<1%)1223:1228 (<1%)1261:1266 (<1%)1284:1289 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 737:743 (<1%)813:819 (<1%)880:886 (<1%)953:959 (<1%)1026:1032 (<1%)1104:1110 (<1%)1211:1217 (<1%) | view | |
| 6 | x 7 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 332:337 (<1%)431:436 (<1%)548:553 (<1%)769:774 (<1%)834:839 (<1%)1174:1179 (<1%)1244:1249 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 738:744 (<1%)814:820 (<1%)881:887 (<1%)954:960 (<1%)1027:1033 (<1%)1105:1111 (<1%)1212:1218 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 748:754 (<1%)824:830 (<1%)891:897 (<1%)964:970 (<1%)1037:1043 (<1%)1115:1121 (<1%)1222:1228 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1301:1306 (<1%)1344:1349 (<1%)1429:1434 (<1%)1463:1468 (<1%)1575:1580 (<1%)1629:1634 (<1%)1664:1669 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1300:1305 (<1%)1343:1348 (<1%)1428:1433 (<1%)1462:1467 (<1%)1574:1579 (<1%)1628:1633 (<1%)1663:1668 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 747:752 (<1%)823:828 (<1%)890:895 (<1%)963:968 (<1%)1036:1041 (<1%)1114:1119 (<1%)1221:1226 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 733:738 (<1%)809:814 (<1%)876:881 (<1%)949:954 (<1%)1022:1027 (<1%)1100:1105 (<1%)1207:1212 (<1%) | view | |
| 6 | x 7 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 310:315 (<1%)1274:1279 (<1%)409:414 (<1%)747:752 (<1%)1222:1227 (<1%)1260:1265 (<1%)1283:1288 (<1%) | view | |
| 6 | x 7 | src/ir/mem2regsrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 1015:1022 (<1%)926:933 (<1%)760:767 (1%)1107:1114 (<1%)1205:1212 (<1%)1307:1314 (<1%)1423:1430 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 735:741 (<1%)811:817 (<1%)878:884 (<1%)951:957 (<1%)1024:1030 (<1%)1102:1108 (<1%)1209:1215 (<1%) | view | |
| 6 | x 7 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 734:740 (<1%)810:816 (<1%)877:883 (<1%)950:956 (<1%)1023:1029 (<1%)1101:1107 (<1%)1208:1214 (<1%) | view | |
| 6 | x 7 | src/ir/loweringsrc/ir/loweringsrc/ir/loweringsrc/ir/loweringsrc/ir/loweringsrc/ir/loweringsrc/ir/lowering | 8:13 (4%)17:22 (<1%)7:12 (<1%)13:18 (2%)11:16 (1%)13:18 (<1%)10:15 (3%) | view | |
| 6 | x 6 | src/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encoder | 483:488 (<1%)758:763 (<1%)933:938 (<1%)962:967 (<1%)991:996 (<1%)1048:1053 (<1%) | view | |
| 6 | x 6 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 919:924 (<1%)666:671 (<1%)715:720 (<1%)795:800 (<1%)832:837 (<1%)918:923 (<1%) | view | |
| 6 | x 6 | src/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encodersrc/backend/arm/assembler/encoder | 484:489 (<1%)759:764 (<1%)934:939 (<1%)963:968 (<1%)992:997 (<1%)1049:1054 (<1%) | view | |
| 6 | x 6 | src/ir/loweringsrc/ir/loweringsrc/passessrc/ir/loweringsrc/ir/mem2regsrc/passes | 533:538 (<1%)45:50 (2%)355:360 (1%)392:397 (<1%)977:982 (<1%)1704:1709 (<1%) | view | |
| 6 | x 6 | src/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encodersrc/backend/x86/assembler/encoder | 164:170 (<1%)204:210 (<1%)358:364 (<1%)388:394 (<1%)890:897 (<1%)951:958 (<1%) | view | |
| 6 | x 6 | src/backend/i686/codegensrc/backend/i686/codegensrc/backend/i686/codegensrc/backend/i686/codegensrc/backend/i686/codegensrc/backend/i686/codegen | 671:676 (<1%)687:692 (<1%)703:708 (<1%)719:724 (<1%)738:743 (<1%)770:775 (<1%) | view | |
| 6 | x 6 | src/backend/arm/assemblersrc/backend/riscv/assemblersrc/backend/riscv/assemblersrc/backend/riscv/assemblersrc/backend/riscv/assemblersrc/backend/riscv/assembler | 715:720 (1%)1296:1301 (<1%)1314:1319 (<1%)1358:1363 (<1%)1371:1376 (<1%)1384:1389 (<1%) | view | |
| 6 | x 6 | src/ir/mem2regsrc/passessrc/passessrc/passessrc/passessrc/passes | 1036:1043 (<1%)955:962 (<1%)789:796 (1%)1138:1145 (<1%)1228:1235 (<1%)1452:1459 (<1%) | view | |
| 6 | x 6 | src/passessrc/passessrc/passessrc/passessrc/passessrc/passes | 428:435 (1%)678:685 (1%)928:935 (<1%)762:769 (1%)1109:1116 (<1%)1425:1432 (<1%) | view |
Duplicated Units
The list of top 7 duplicated units.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 23 | x 2 | src/backend/x86/assemblersrc/backend/riscv/assembler | 1392:1416 615:640 | view | |
| 18 | x 2 | src/backend/x86/assemblersrc/backend/arm/assembler | 755:775 2313:2332 | view | |
| 10 | x 2 | src/backend/i686/codegensrc/backend/x86/codegen/peephole/passes | 1798:1812 236:247 | view | |
| 7 | x 2 | src/frontend/semasrc/ir/lowering | 1087:1095 651:661 | view | |
| 7 | x 2 | src/backend/arm/codegensrc/backend/riscv/codegen | 212:220 218:226 | view | |
| 7 | x 2 | src/backend/arm/codegensrc/backend/riscv/codegen | 290:298 315:323 | view | |
| 7 | x 2 | src/backend/arm/codegensrc/backend/riscv/codegen | 300:308 325:333 | view |
About This Analysis
- 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...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."