Added PGO for windows builds

This commit is contained in:
mauro-balades
2024-08-31 22:51:35 +02:00
parent 27d0d6805f
commit 2cbf882258
4 changed files with 42 additions and 42 deletions

View File

@@ -186,28 +186,28 @@ jobs:
name: zen.source.tar.gz
path: ./zen.source.tar.gz
#windows-step-1:
# name: Windows build step 1 (PGO build)
# uses: ./.github/workflows/windows-alpha-build.yml
# needs: [build-data]
# permissions:
# contents: write
# secrets: inherit
# with:
# build-version: ${{ needs.build-data.outputs.version }}
# generate-gpo: true
# profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
windows-step-1:
name: Windows build step 1 (PGO build)
uses: ./.github/workflows/windows-alpha-build.yml
needs: [build-data]
permissions:
contents: write
secrets: inherit
with:
build-version: ${{ needs.build-data.outputs.version }}
generate-gpo: true
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
#windows-step-2:
# name: Windows build step 2 (Generate profile data)
# uses: ./.github/workflows/windows-profile-build.yml
# permissions:
# contents: write
# secrets: inherit
# needs: [windows-step-1, build-data]
# with:
# build-version: ${{ needs.build-data.outputs.version }}
# profile-data-path-archive: zen.win64-pgo-stage-1.zip
windows-step-2:
name: Windows build step 2 (Generate profile data)
uses: ./.github/workflows/windows-profile-build.yml
permissions:
contents: write
secrets: inherit
needs: [windows-step-1, build-data]
with:
build-version: ${{ needs.build-data.outputs.version }}
profile-data-path-archive: zen.win64-pgo-stage-1.zip
windows-step-3:
name: Windows build step 3 (build with profile data)
@@ -215,7 +215,7 @@ jobs:
permissions:
contents: write
secrets: inherit
needs: [build-data]
needs: [build-data, windows-step-2]
with:
build-version: ${{ needs.build-data.outputs.version }}
generate-gpo: false

View File

@@ -54,9 +54,8 @@ if test "$ZEN_RELEASE"; then
ac_add_options --disable-default-browser-agent
if ! test "$ZEN_DISABLE_LTO"; then
export MOZ_LTO=1
ac_add_options MOZ_LTO=1
ac_add_options --enable-lto=full,cross
export MOZ_LTO=cross,thin
ac_add_options --enable-lto=cross,thin
fi
ac_add_options --enable-jemalloc

View File

@@ -35,7 +35,7 @@ if test "$ZEN_RELEASE"; then
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1"
else
@@ -44,7 +44,7 @@ if test "$ZEN_RELEASE"; then
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1"
fi

View File

@@ -36,7 +36,7 @@ if test "$SURFER_COMPAT" = "true"; then
export CFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
export CPPFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
export CXXFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
export CXXFLAGS="-flto=thin -mtune=haswell -march=x86-64 -O2 -Qvec -w"
export LDFLAGS="-Wl,-O2"
export RUSTFLAGS="-C codegen-units=1 -Ctarget-cpu=x86-64"
else
@@ -45,24 +45,25 @@ else
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
export CXXFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
export CXXFLAGS="-O2 -flto=thin -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
fi
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
export VERBOSE=1
#if test "$ZEN_GA_GENERATE_PROFILE"; then
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
# ac_add_options --enable-profile-generate=cross
#else
# ac_add_options --enable-profile-use=cross
# if test "$SURFER_COMPAT" = "true"; then
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-generic.profdata
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-generic.log
# else
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-specific.profdata
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-specific.log
# fi
#fi
if test "$ZEN_GA_GENERATE_PROFILE"; then
export CXXFLAGS="$CXXFLAGS -fprofile-generate -mllvm -enable-name-compression=false -mllvm -pgo-temporal-instrumentation -fprofile-update=atomic"
mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
ac_add_options --enable-profile-generate=cross
else
ac_add_options --enable-profile-use=cross
if test "$SURFER_COMPAT" = "true"; then
ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-generic.profdata
ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-generic.log
else
ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-specific.profdata
ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-specific.log
fi
fi