@@ -17,10 +17,13 @@ echo $TMPDIR
17
17
18
18
git clone --no-local " $LLVM_SRC "
19
19
20
+ LL=" llvm-project/llvm"
21
+ LCCC=" llvm-project/clang/cmake/caches/"
22
+
20
23
# Cmake configuration for benchmarking
21
- CMAKE_ARGS=" -S llvm-project/llvm -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=Native"
24
+ CMAKE_ARGS=" -S ${LL} -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=Native"
22
25
# Build different versions of Clang: baseline, +LTO, +PGO, +BOLT
23
- COMMON_CMAKE_ARGS=" -S llvm-project/llvm -GNinja -DCMAKE_BUILD_TYPE=Release
26
+ COMMON_CMAKE_ARGS=" -S ${LL} -GNinja -DCMAKE_BUILD_TYPE=Release
24
27
-DLLVM_ENABLE_PROJECTS=bolt;clang;lld -DLLVM_TARGETS_TO_BUILD=Native
25
28
-DBOOTSTRAP_LLVM_ENABLE_LLD=ON -DBOOTSTRAP_BOOTSTRAP_LLVM_ENABLE_LLD=ON
26
29
-DLLVM_CCACHE_BUILD=ON"
@@ -29,22 +32,23 @@ BASELINE_ARGS="$COMMON_CMAKE_ARGS -DCLANG_ENABLE_BOOTSTRAP=On
29
32
-DCLANG_BOOTSTRAP_TARGETS=clang"
30
33
# ThinLTO: Two-stage + LTO Clang build
31
34
LTO_ARGS=" $BASELINE_ARGS -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin"
32
- # Instrumentation PGO: Two-stage + PGO build
33
- PGO_ARGS=" $BASELINE_ARGS -DBOOTSTRAP_CLANG_BOOTSTRAP_TARGETS=clang
34
- -DCLANG_BOOTSTRAP_TARGETS=stage2-clang
35
- -C llvm-project/clang/cmake/caches/PGO.cmake"
35
+ # Base PGO flags
36
+ BASE_PGO_ARGS=" $BASELINE_ARGS -DBOOTSTRAP_CLANG_BOOTSTRAP_TARGETS=clang
37
+ -DCLANG_BOOTSTRAP_TARGETS=stage2-clang"
38
+ # Instrumentation PGO: Two-stage + PGO build, trained on hello-world
39
+ PGO_ARGS=" ${BASE_PGO_ARGS} -C ${LCCC} PGO.cmake"
40
+ # PGO with ThinLTO flag
41
+ BASE_LTO_PGO_ARGS=" -DPGO_INSTRUMENT_LTO=Thin"
36
42
# LTO+PGO: Two-stage + LTO + PGO
37
- LTO_PGO_ARGS=" -DPGO_INSTRUMENT_LTO=Thin $PGO_ARGS "
43
+ LTO_PGO_ARGS=" $BASE_LTO_PGO_ARGS $PGO_ARGS "
38
44
39
- BOLT_CMAKE=" llvm-project/clang/cmake/caches/BOLT.cmake"
40
- BOLT_PGO_CMAKE=" llvm-project/clang/cmake/caches/BOLT-PGO.cmake"
41
- BOLT_PASSTHRU_ARGS=" -DCLANG_BOOTSTRAP_CMAKE_ARGS=-C../../../../$BOLT_CMAKE
45
+ BOLT_PASSTHRU_ARGS=" -DCLANG_BOOTSTRAP_CMAKE_ARGS=-C../../../../${LCCC} BOLT.cmake
42
46
-DCLANG_BOOTSTRAP_TARGETS=clang-bolt"
43
47
44
48
BOLT_BASELINE_ARGS=" $BASELINE_ARGS $BOLT_PASSTHRU_ARGS "
45
49
BOLT_LTO_ARGS=" $LTO_ARGS $BOLT_PASSTHRU_ARGS "
46
- BOLT_PGO_ARGS=" $COMMON_CMAKE_ARGS -C $BOLT_PGO_CMAKE "
47
- BOLT_LTO_PGO_ARGS=" -DBOOTSTRAP_LLVM_ENABLE_LLD=ON -DPGO_INSTRUMENT_LTO=Thin $BOLT_PGO_ARGS "
50
+ BOLT_PGO_ARGS=" $COMMON_CMAKE_ARGS -C ${LCCC} BOLT-PGO.cmake "
51
+ BOLT_LTO_PGO_ARGS=" $BASE_LTO_PGO_ARGS $BOLT_PGO_ARGS "
48
52
49
53
build () {
50
54
for cfg in BASELINE LTO PGO LTO_PGO
0 commit comments