Files
scylladb/scripts/refresh-pgo-profiles.sh
Avi Kivity 0ae22a09d4 LICENSE: Update to version 1.1
Updated terms of non-commercial use (must be a never-customer).
2026-04-12 19:46:33 +03:00

34 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
#
# Copyright (C) 2023-present ScyllaDB
#
#
# SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.1
#
set -eu
trap 'echo "error $? in $0 line $LINENO"' ERR
SCRIPT_PATH="$(realpath "$0")"
PROJECT_BASE="$(realpath "$(dirname "$0")"/..)"
WORKING_DIR="$(realpath "$PWD")"
if [ "$PROJECT_BASE" != "$WORKING_DIR" ]; then
echo "Error: $SCRIPT_PATH should be ran with $PROJECT_BASE instead of $WORKING_DIR as the working directory" >&2
exit 1
fi
BUILD_PATH=build/release-cs-pgo/profiles/merged.profdata
TARGET_PATH=pgo/profiles/$(uname -m)/profile.profdata.xz
./configure.py --mode=release --pgo --cspgo --use-profile=
# ninja "$BUILD_PATH" would avoid a build step, but let's do it voluntarily
# to check that the profile doesn't cause any compilation problems.
ninja build/release/scylla
# Profiles are stored in version control, so we want very strong compression.
mkdir -p "$(dirname "$TARGET_PATH")"
xz --compress -9 --stdout "$BUILD_PATH" >"$TARGET_PATH"
echo "Profile $TARGET_PATH regenerated. You can now stage, commit, and push it."