Chris Bieneman <be...@apple.com> writes: > beanz updated this revision to Diff 43192. > beanz added a comment. > > One more dependency hookup fix, this one makes it so that stage2 > doesn't depend on the stage2-instrumented compiler-rt, and avoids > building it when you invoke the 'stage2' target.
Please update the cache file names to better match the updated target naming scheme, but otherwise this LGTM. > > http://reviews.llvm.org/D15584 > > Files: > CMakeLists.txt > cmake/caches/PGO-stage2.cmake > cmake/caches/PGO-stage3.cmake > cmake/caches/PGO.cmake > > Index: cmake/caches/PGO.cmake > =================================================================== > --- /dev/null > +++ cmake/caches/PGO.cmake > @@ -0,0 +1,17 @@ > +set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "") > +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") > +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "") > + > +set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") > +set(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED ON CACHE BOOL "") > +set(CLANG_BOOTSTRAP_TARGETS > + generate-profdata > + stage2 > + stage2-check-all > + stage2-check-llvm > + stage2-check-clang > + stage2-test-suite CACHE STRING "") > + > +set(CLANG_BOOTSTRAP_CMAKE_ARGS > + -C ${CMAKE_CURRENT_LIST_DIR}/PGO-stage2.cmake > + CACHE STRING "") > Index: cmake/caches/PGO-stage3.cmake > =================================================================== > --- /dev/null > +++ cmake/caches/PGO-stage3.cmake > @@ -0,0 +1,2 @@ > +set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "") > +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "") > Index: cmake/caches/PGO-stage2.cmake > =================================================================== > --- /dev/null > +++ cmake/caches/PGO-stage2.cmake > @@ -0,0 +1,9 @@ > +set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "") > +set(CLANG_ENABLE_BOOTSTRAP ON CACHE BOOL "") > +set(LLVM_BUILD_EXTERNAL_COMPILER_RT ON CACHE BOOL "") > + > +set(CLANG_BOOTSTRAP_TARGETS check-all check-llvm check-clang test-suite > CACHE STRING "") > + > +set(CLANG_BOOTSTRAP_CMAKE_ARGS > + -C ${CMAKE_CURRENT_LIST_DIR}/PGO-stage3.cmake > + CACHE STRING "") > Index: CMakeLists.txt > =================================================================== > --- CMakeLists.txt > +++ CMakeLists.txt > @@ -631,11 +631,19 @@ > > string(REGEX MATCH "stage([0-9]*)" MATCHED_STAGE "${CLANG_STAGE}") > if(MATCHED_STAGE) > - math(EXPR STAGE_NUM "${MATCHED_STAGE} + 1") > - set(NEXT_CLANG_STAGE stage${STAGE_NUM}) > + if(NOT LLVM_BUILD_INSTRUMENTED) > + math(EXPR STAGE_NUM "${CMAKE_MATCH_1} + 1") > + set(NEXT_CLANG_STAGE stage${STAGE_NUM}) > + else() > + set(NEXT_CLANG_STAGE stage${CMAKE_MATCH_1}) > + endif() > else() > set(NEXT_CLANG_STAGE bootstrap) > endif() > + > + if(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED) > + set(NEXT_CLANG_STAGE ${NEXT_CLANG_STAGE}-instrumented) > + endif() > message(STATUS "Setting next clang stage to: ${NEXT_CLANG_STAGE}") > > > @@ -681,6 +689,26 @@ > set(RUNTIME_DEP compiler-rt) > endif() > > + set(COMPILER_OPTIONS > + -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++ > + -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang > + -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang) > + > + if(BOOTSTRAP_LLVM_BUILD_INSTRUMENTED) > + set(PGO_DEP llvm-profdata) > + set(PGO_OPT -DLLVM_PROFDATA=${LLVM_RUNTIME_OUTPUT_INTDIR}/llvm-profdata) > + endif() > + > + if(LLVM_BUILD_INSTRUMENTED) > + set(PGO_DEP generate-profdata) > + set(PGO_OPT > -DLLVM_PROFDATA_FILE=${CMAKE_CURRENT_BINARY_DIR}/utils/perf-training/clang.profdata) > + set(COMPILER_OPTIONS > + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} > + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} > + -DCMAKE_ASM_COMPILER=${CMAKE_ASM_COMPILER}) > + set(RUNTIME_DEP) # Don't set runtime dependencies > + endif() > + > # Find all variables that start with BOOTSTRAP_ and populate a variable > with > # them. > get_cmake_property(variableNames VARIABLES) > @@ -703,7 +731,7 @@ > endforeach() > > ExternalProject_Add(${NEXT_CLANG_STAGE} > - DEPENDS clang ${LTO_DEP} ${RUNTIME_DEP} > + DEPENDS clang ${LTO_DEP} ${RUNTIME_DEP} ${PGO_DEP} > PREFIX ${NEXT_CLANG_STAGE} > SOURCE_DIR ${CMAKE_SOURCE_DIR} > STAMP_DIR ${STAMP_DIR} > @@ -715,11 +743,9 @@ > -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} > ${CLANG_BOOTSTRAP_CMAKE_ARGS} > ${PASSTHROUGH_VARIABLES} > - -DCMAKE_CXX_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang++ > - -DCMAKE_C_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang > - -DCMAKE_ASM_COMPILER=${LLVM_RUNTIME_OUTPUT_INTDIR}/clang > - -DCLANG_STAGE=${NEXT_CLANG_STAGE} > - ${LTO_LIBRARY} ${LTO_AR} ${LTO_RANLIB} ${verbose} > + -DCLANG_STAGE=${NEXT_CLANG_STAGE} > + ${COMPILER_OPTIONS} > + ${LTO_LIBRARY} ${LTO_AR} ${LTO_RANLIB} ${verbose} ${PGO_OPT} > INSTALL_COMMAND "" > STEP_TARGETS configure build > ${cmake_3_4_USES_TERMINAL_OPTIONS} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits