0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-25 08:12:37 +01:00

configure: Add PROFILE_USE conditional and subst.

This commit is contained in:
Jason Volk 2022-07-27 11:28:14 -07:00
parent 1a386fd06f
commit c002e03242
3 changed files with 31 additions and 23 deletions

View file

@ -427,24 +427,29 @@ AC_ARG_ENABLE(profile, RB_HELP_STRING([--enable-profile], [Generate profile at r
profiling="no"
])
AM_CONDITIONAL([PROFILE], [[[[ "$profiling" = "yes" ]]]])
AC_MSG_CHECKING(whether to use a specific runtime profile)
AC_ARG_WITH(profile, RB_HELP_STRING([--with-profile[[[=$PWD]]]], [Path to profdata]),
[
profiling_use=$withval
AC_MSG_RESULT([yes, "$profiling_use"])
AC_SUBST(PROFILE_USE, $profiling_use)
dnl AM_COND_IF(CLANG,
dnl [
dnl RB_VAR_PREPEND([CXXFLAGS], [-fprofile-use="$profiling_use"])
dnl ])
profile_use=$withval
AC_MSG_RESULT([yes, "$profile_use"])
AC_SUBST(PROFILE_USE, $profile_use)
], [
AM_COND_IF([CLANG],
[
profile_use="yes"
AC_MSG_RESULT([yes, if default.profdata is found])
], [
profile_use="no"
AC_MSG_RESULT([no])
])
])
AM_CONDITIONAL([PROFILE], [[[[ "$profiling" = "yes" ]]]])
AM_CONDITIONAL([PROFILE_USE], [[[[ "$profile_use" != "no" ]] && [[ "$profiling" == "no" ]]]])
AM_COND_IF([PROFILE_USE],
[
dnl Provide the correct target to the Makefiles
AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata)
AM_COND_IF(CLANG14, [ AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata-14) ])
@ -453,6 +458,7 @@ AM_COND_IF(CLANG12, [ AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata-12) ])
AM_COND_IF(CLANG11, [ AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata-11) ])
AM_COND_IF(CLANG10, [ AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata-10) ])
AM_COND_IF(CLANG9, [ AC_PATH_PROG(LLVM_PROFDATA, llvm-profdata-9) ])
])
dnl
dnl Precompiled headers
@ -3003,7 +3009,7 @@ echo "Developer assertions .............. $assert ($assert_type)"
echo "Developer warnings ................ $warnings"
echo "Optimized compile ................. $optimize (-O$optimize_level)"
echo "Optimized linking ................. $lto"
echo "Optimized runtime ................. $profiling_use"
echo "Optimized runtime ................. $profile_use"
echo "Profiling runtime ................. $profiling"
echo "Precompile headers ................ $build_pch"
echo "Machine tuned ..................... $machine_tuning"

View file

@ -57,16 +57,16 @@ AM_CXXFLAGS += -fwhole-program-vtables
endif
endif
if !PROFILE
if CLANG
if PROFILE_USE
AM_CXXFLAGS += -fprofile-use
BUILT_SOURCES += default.profdata
CLEANFILES += default.profdata
endif
endif
if PROFILE
if CLANG
if PROFILE
AM_CXXFLAGS += -fprofile-generate
AM_LDFLAGS += -Wl,-fprofile-generate
#TODO: XXX

View file

@ -47,8 +47,8 @@ AM_CXXFLAGS += -fwhole-program-vtables
endif
endif
if !PROFILE
if CLANG
if PROFILE_USE
AM_CXXFLAGS += -fprofile-use
BUILT_SOURCES += default.profdata
CLEANFILES += default.profdata
@ -210,5 +210,7 @@ id.lo: CXXFLAGS += ${AM_CXXFLAGS} ${SPIRIT_UNIT_CXXFLAGS}
#
# LLVM PGO text to binary for -fprofile-use
if CLANG
default.profdata:
-$(LLVM_PROFDATA) merge -output=default.profdata default.proftext
endif