[Bug tree-optimization/93084] [10 regression] Infinite loop in ipa-cp when building clang with LTO+PGO
Jan Hubicka
hubicka@ucw.cz
Mon Dec 30 11:01:00 GMT 2019
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93084
>
> --- Comment #6 from fxue at gcc dot gnu.org ---
> Could you share how you build clang with PGO, and train workload?
It needs a lot of patience. If you have patch I can try it since I
still have the train data and corresponding gcc tree.
I do the following. Pretty much imitating what
utils/collect_and_build_with_pgo.py does.
First I build instrumented compiler and train it on testsuite (it takes
a long time and probably could be omitted)
cmake -G Ninja /aux/hubicka/llvm \
-DCLANG_TABLEGEN=/aux/hubicka/llvm/out/stage1/bin/clang-tblgen \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/aux/hubicka/trunk-install/bin/g++ \
-DCMAKE_C_COMPILER=/aux/hubicka/trunk-install/bin/gcc \
-DCMAKE_INSTALL_PREFIX=/aux/hubicka/llvm10-install-gccfdolto \
-DLLVM_BINUTILS_INCDIR=/aux/hubicka/binutils-install/include/ \
-DLLVM_BUILD_RUNTIME=No \
-DLLVM_TABLEGEN=/aux/hubicka/llvm/out/stage1/bin/llvm-tblgen \
-DLLVM_TARGETS_TO_BUILD=X86 \
-DCMAKE_RANLIB=/aux/hubicka/trunk-install/bin/gcc-ranlib \
-DCMAKE_AR=/aux/hubicka/trunk-install/bin/gcc-ar \
-DCMAKE_C_FLAGS="-O2 -flto=auto -flifetime-dse=1 -fno-semantic-interposition -fprofile-generate" \
-DCMAKE_CXX_FLAGS="-O2 -flto=auto -flifetime-dse=1 -fno-semantic-interposition -fprofile-generate" \
-DLLVM_PARALLEL_LINK_JOBS=1
ninja clang lld
ninja check-llvm check-clang
next I do train build in new directory.
cmake -G Ninja /aux/hubicka/llvm \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_COMPILER=/aux/hubicka/llvm/out/instrumented-gcc/bin/clang++ \
-DCMAKE_C_COMPILER=/aux/hubicka/llvm/out/instrumented-gcc/bin/clang
ninja all
then I tar gcda files collected in the first build directory
cd /aux/hubicka/llvm/instrumented-gcc/
tar czvf ../clang-profile.tgz `find . -name "*.gcda"`
and do final build supplying the gcda files.
tar xzvf ../clang-profile.tgz
cmake -G Ninja /aux/hubicka/llvm \
-DCLANG_TABLEGEN=/aux/hubicka/llvm/out/stage1/bin/clang-tblgen \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-Wno-backend-plugin \
-DLLVM_TABLEGEN=/aux/hubicka/llvm/out/stage1/bin/llvm-tblgen \
-DCMAKE_RANLIB=/aux/hubicka/trunk-install/bin/gcc-ranlib \
-DCMAKE_AR=/aux/hubicka/trunk-install/bin/gcc-ar \
-DCMAKE_C_FLAGS="-O2 -fno-semantic-interposition -fprofile-use -Wno-missing-profile -flto=auto -flifetime-dse=1 -fprofile-correction -Wno-error" \
-DCMAKE_CXX_FLAGS="-O2 -fno-semantic-interposition -fprofile-use -Wno-missing-profile -flifetime-dse=1 -flto=auto -fprofile-correction -Wno-error" \
-DLLVM_TARGETS_TO_BUILD=X86 \
-DCMAKE_CXX_COMPILER=/aux/hubicka/trunk-install/bin/g++ \
-DCMAKE_C_COMPILER=/aux/hubicka/trunk-install/bin/gcc \
-DLLVM_BINUTILS_INCDIR=/aux/hubicka/binutils-install/include/ \
-DLLVM_PARALLEL_LINK_JOBS=1
ninja all
More information about the Gcc-bugs
mailing list