Testing scripts: https://github.com/nathanchance/tc-build/tree/14611ae3d6280907f18bbb0b07eccca854aba285/benchmark
Total runtime: 4d 20h 38m 10s
LLVM build times (7 runs)
All ./build-llvm.py
invocations were run with --check-targets clang lld llvm --no-ccache --no-update
.
Command
Mean [s]
Min [s]
Max [s]
Relative
./build-llvm.py --build-stage1-only
542.569 ± 0.933
541.578
544.256
1.00
./build-llvm.py
811.556 ± 1.178
809.899
812.746
1.50 ± 0.00
./build-llvm.py --lto=thin
2687.647 ± 3.812
2683.183
2693.010
4.95 ± 0.01
./build-llvm.py --lto=full
7148.708 ± 75.290
7045.807
7223.985
13.18 ± 0.14
./build-llvm.py --pgo
3005.483 ± 7.151
2999.534
3019.566
5.54 ± 0.02
./build-llvm.py --lto=thin --pgo
4967.305 ± 10.972
4948.391
4982.013
9.16 ± 0.03
./build-llvm.py --lto=full --pgo
6484.316 ± 24.973
6448.183
6523.901
11.95 ± 0.05
arm32 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
96.802 ± 0.078
96.627
97.013
1.08 ± 0.00
LLVM (1 stage)
115.212 ± 0.080
115.079
115.378
1.29 ± 0.00
LLVM (2 stage)
114.679 ± 0.100
114.469
115.013
1.28 ± 0.00
LLVM (ThinLTO)
110.278 ± 0.086
110.115
110.448
1.23 ± 0.00
LLVM (LTO)
109.705 ± 0.090
109.521
109.932
1.23 ± 0.00
LLVM (PGO)
93.988 ± 0.098
93.733
94.168
1.05 ± 0.00
LLVM (PGO + ThinLTO)
89.496 ± 0.079
89.325
89.688
1.00
LLVM (PGO + LTO)
90.288 ± 0.082
90.112
90.442
1.01 ± 0.00
arm64 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
138.002 ± 0.117
137.697
138.248
1.00
LLVM (1 stage)
183.506 ± 0.190
183.209
184.096
1.33 ± 0.00
LLVM (2 stage)
183.226 ± 0.172
182.871
183.707
1.33 ± 0.00
LLVM (ThinLTO)
174.654 ± 0.145
174.429
174.989
1.27 ± 0.00
LLVM (LTO)
174.250 ± 0.138
174.031
174.609
1.26 ± 0.00
LLVM (PGO)
152.818 ± 0.164
152.498
153.273
1.11 ± 0.00
LLVM (PGO + ThinLTO)
145.098 ± 3.463
143.652
161.880
1.05 ± 0.03
LLVM (PGO + LTO)
146.300 ± 3.237
144.262
157.799
1.06 ± 0.02
powerpc ppc44x_defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
29.974 ± 0.395
29.582
31.943
1.09 ± 0.02
LLVM (1 stage)
34.156 ± 0.370
33.335
34.710
1.24 ± 0.02
LLVM (2 stage)
34.137 ± 0.333
33.244
34.618
1.24 ± 0.02
LLVM (ThinLTO)
32.875 ± 0.325
32.039
33.332
1.19 ± 0.02
LLVM (LTO)
32.515 ± 0.340
31.781
32.963
1.18 ± 0.02
LLVM (PGO)
28.827 ± 0.273
28.060
29.235
1.05 ± 0.01
LLVM (PGO + ThinLTO)
27.530 ± 0.278
26.811
27.970
1.00
LLVM (PGO + LTO)
27.697 ± 0.284
27.023
28.151
1.01 ± 0.01
powerpc powernv_defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
87.717 ± 0.235
87.014
88.053
1.02 ± 0.01
LLVM (1 stage)
106.545 ± 0.565
105.047
107.567
1.24 ± 0.01
LLVM (2 stage)
106.184 ± 0.522
104.563
106.829
1.24 ± 0.01
LLVM (ThinLTO)
101.995 ± 0.556
100.544
103.097
1.19 ± 0.01
LLVM (LTO)
101.899 ± 0.448
100.200
102.553
1.19 ± 0.01
LLVM (PGO)
90.041 ± 0.419
88.888
90.765
1.05 ± 0.01
LLVM (PGO + ThinLTO)
85.667 ± 0.375
84.417
86.191
1.00
LLVM (PGO + LTO)
86.823 ± 0.583
84.185
87.490
1.01 ± 0.01
x86_64 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
59.964 ± 0.096
59.772
60.172
1.00
LLVM (1 stage)
81.672 ± 0.157
81.235
82.122
1.36 ± 0.00
LLVM (2 stage)
79.080 ± 0.118
78.842
79.342
1.32 ± 0.00
LLVM (ThinLTO)
78.675 ± 0.137
78.345
78.939
1.31 ± 0.00
LLVM (LTO)
78.241 ± 0.104
78.012
78.434
1.30 ± 0.00
LLVM (PGO)
69.520 ± 0.122
69.028
69.859
1.16 ± 0.00
LLVM (PGO + ThinLTO)
66.697 ± 0.107
66.417
66.934
1.11 ± 0.00
LLVM (PGO + LTO)
66.812 ± 0.119
66.562
67.090
1.11 ± 0.00
Total runtime: 4d 20h 55m 39s
LLVM build times (7 runs)
All ./build-llvm.py
invocations were run with --check-targets clang lld llvm --no-ccache --no-update
.
Command
Mean [s]
Min [s]
Max [s]
Relative
./build-llvm.py --build-stage1-only
543.944 ± 1.284
542.578
546.155
1.00
./build-llvm.py
811.632 ± 1.069
810.241
813.303
1.49 ± 0.00
./build-llvm.py --lto=thin
2697.264 ± 6.473
2691.280
2710.341
4.96 ± 0.02
./build-llvm.py --lto=full
7149.724 ± 70.788
7032.389
7238.756
13.14 ± 0.13
./build-llvm.py --pgo
3013.860 ± 8.327
3002.389
3024.829
5.54 ± 0.02
./build-llvm.py --lto=thin --pgo
4966.329 ± 8.547
4951.493
4975.028
9.13 ± 0.03
./build-llvm.py --lto=full --pgo
6493.604 ± 48.256
6418.230
6556.303
11.94 ± 0.09
arm32 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
96.886 ± 0.092
96.690
97.192
1.08 ± 0.00
LLVM (1 stage)
115.009 ± 0.069
114.860
115.217
1.29 ± 0.00
LLVM (2 stage)
114.704 ± 0.076
114.593
114.877
1.28 ± 0.00
LLVM (ThinLTO)
110.251 ± 0.083
110.048
110.431
1.23 ± 0.00
LLVM (LTO)
109.660 ± 0.088
109.467
109.854
1.23 ± 0.00
LLVM (PGO)
93.913 ± 0.106
93.685
94.135
1.05 ± 0.00
LLVM (PGO + ThinLTO)
89.463 ± 0.096
89.286
89.684
1.00
LLVM (PGO + LTO)
90.241 ± 0.096
90.075
90.510
1.01 ± 0.00
arm64 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
138.027 ± 0.146
137.758
138.822
1.00
LLVM (1 stage)
185.463 ± 1.223
184.418
190.713
1.34 ± 0.01
LLVM (2 stage)
185.103 ± 0.672
184.418
188.927
1.34 ± 0.01
LLVM (ThinLTO)
177.006 ± 0.876
175.965
180.042
1.28 ± 0.01
LLVM (LTO)
176.554 ± 0.540
175.870
178.127
1.28 ± 0.00
LLVM (PGO)
155.981 ± 1.228
154.678
159.984
1.13 ± 0.01
LLVM (PGO + ThinLTO)
148.719 ± 1.591
146.683
154.314
1.08 ± 0.01
LLVM (PGO + LTO)
150.446 ± 1.573
148.065
154.260
1.09 ± 0.01
powerpc ppc44x_defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
29.967 ± 0.286
29.592
31.157
1.09 ± 0.01
LLVM (1 stage)
34.102 ± 0.359
33.230
34.795
1.24 ± 0.02
LLVM (2 stage)
34.074 ± 0.356
33.304
34.541
1.24 ± 0.02
LLVM (ThinLTO)
32.776 ± 0.382
31.910
33.356
1.19 ± 0.02
LLVM (LTO)
32.451 ± 0.370
31.582
33.021
1.18 ± 0.02
LLVM (PGO)
28.737 ± 0.293
28.078
29.109
1.04 ± 0.01
LLVM (PGO + ThinLTO)
27.565 ± 0.218
26.921
27.898
1.00
LLVM (PGO + LTO)
27.632 ± 0.239
26.987
28.067
1.00 ± 0.01
powerpc powernv_defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
87.667 ± 0.268
86.914
88.063
1.02 ± 0.01
LLVM (1 stage)
106.222 ± 0.752
103.445
107.379
1.23 ± 0.01
LLVM (2 stage)
106.156 ± 0.510
104.187
107.021
1.23 ± 0.01
LLVM (ThinLTO)
101.956 ± 0.473
100.367
102.902
1.18 ± 0.01
LLVM (LTO)
101.660 ± 0.578
99.741
102.486
1.18 ± 0.01
LLVM (PGO)
90.003 ± 0.347
89.018
90.471
1.04 ± 0.01
LLVM (PGO + ThinLTO)
86.251 ± 0.370
84.899
86.874
1.00 ± 0.01
LLVM (PGO + LTO)
86.190 ± 0.364
84.707
86.725
1.00
x86_64 defconfig (56 runs)
Command
Mean [s]
Min [s]
Max [s]
Relative
GCC 10.2.0
59.981 ± 0.101
59.615
60.241
1.00
LLVM (1 stage)
81.578 ± 0.122
81.326
81.812
1.36 ± 0.00
LLVM (2 stage)
79.037 ± 0.186
78.116
79.394
1.32 ± 0.00
LLVM (ThinLTO)
78.608 ± 0.096
78.416
78.830
1.31 ± 0.00
LLVM (LTO)
78.231 ± 0.127
77.958
78.478
1.30 ± 0.00
LLVM (PGO)
69.543 ± 0.078
69.334
69.685
1.16 ± 0.00
LLVM (PGO + ThinLTO)
64.461 ± 0.092
64.181
64.637
1.07 ± 0.00
LLVM (PGO + LTO)
67.042 ± 0.116
66.761
67.398
1.12 ± 0.00