@@ -17,10 +17,13 @@ echo $TMPDIR
1717
1818git clone --no-local " $LLVM_SRC "
1919
20+ LL=" llvm-project/llvm"
21+ LCCC=" llvm-project/clang/cmake/caches/"
22+
2023# 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"
2225# 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
2427 -DLLVM_ENABLE_PROJECTS=bolt;clang;lld -DLLVM_TARGETS_TO_BUILD=Native
2528 -DBOOTSTRAP_LLVM_ENABLE_LLD=ON -DBOOTSTRAP_BOOTSTRAP_LLVM_ENABLE_LLD=ON
2629 -DLLVM_CCACHE_BUILD=ON"
@@ -29,22 +32,23 @@ BASELINE_ARGS="$COMMON_CMAKE_ARGS -DCLANG_ENABLE_BOOTSTRAP=On
2932 -DCLANG_BOOTSTRAP_TARGETS=clang"
3033# ThinLTO: Two-stage + LTO Clang build
3134LTO_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"
3642# 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 "
3844
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
4246 -DCLANG_BOOTSTRAP_TARGETS=clang-bolt"
4347
4448BOLT_BASELINE_ARGS=" $BASELINE_ARGS $BOLT_PASSTHRU_ARGS "
4549BOLT_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 "
4852
4953build () {
5054 for cfg in BASELINE LTO PGO LTO_PGO
0 commit comments