mirror of
https://github.com/facebook/zstd.git
synced 2025-08-05 19:15:58 +03:00
Add Additional Flags to PGO Build
In GCC, we can add a couple more flags to give us confidence that the profile data is actually being found and used. Also, my system for example doesn't have a binary installed under the name `llvm-profdata`, but it does have, e.g., `llvm-profdata-13`, etc. So this commit adds a variable that can be overridden.
This commit is contained in:
@@ -231,9 +231,12 @@ zstd-dll : zstd
|
|||||||
|
|
||||||
## zstd-pgo: zstd executable optimized with PGO.
|
## zstd-pgo: zstd executable optimized with PGO.
|
||||||
.PHONY: zstd-pgo
|
.PHONY: zstd-pgo
|
||||||
|
zstd-pgo : LLVM_PROFDATA?=llvm-profdata
|
||||||
|
zstd-pgo : PROF_GENERATE_FLAGS=-fprofile-generate $(if $(findstring gcc,$(CC)),-fprofile-dir=.)
|
||||||
|
zstd-pgo : PROF_USE_FLAGS=-fprofile-use $(if $(findstring gcc,$(CC)),-fprofile-dir=. -Werror=missing-profile -Wno-error=coverage-mismatch)
|
||||||
zstd-pgo :
|
zstd-pgo :
|
||||||
$(MAKE) clean HASH_DIR=$(HASH_DIR)
|
$(MAKE) clean HASH_DIR=$(HASH_DIR)
|
||||||
$(MAKE) zstd HASH_DIR=$(HASH_DIR) MOREFLAGS=-fprofile-generate
|
$(MAKE) zstd HASH_DIR=$(HASH_DIR) MOREFLAGS="$(PROF_GENERATE_FLAGS)"
|
||||||
./zstd -b19i1 $(PROFILE_WITH)
|
./zstd -b19i1 $(PROFILE_WITH)
|
||||||
./zstd -b16i1 $(PROFILE_WITH)
|
./zstd -b16i1 $(PROFILE_WITH)
|
||||||
./zstd -b9i2 $(PROFILE_WITH)
|
./zstd -b9i2 $(PROFILE_WITH)
|
||||||
@@ -245,8 +248,8 @@ ifndef BUILD_DIR
|
|||||||
else
|
else
|
||||||
$(RM) zstd $(BUILD_DIR)/zstd $(BUILD_DIR)/*.o
|
$(RM) zstd $(BUILD_DIR)/zstd $(BUILD_DIR)/*.o
|
||||||
endif
|
endif
|
||||||
case $(CC) in *clang*) if ! [ -e default.profdata ]; then llvm-profdata merge -output=default.profdata default*.profraw; fi ;; esac
|
case $(CC) in *clang*) if ! [ -e default.profdata ]; then $(LLVM_PROFDATA) merge -output=default.profdata default*.profraw; fi ;; esac
|
||||||
$(MAKE) zstd HASH_DIR=$(HASH_DIR) MOREFLAGS=-fprofile-use
|
$(MAKE) zstd HASH_DIR=$(HASH_DIR) MOREFLAGS="$(PROF_USE_FLAGS)"
|
||||||
|
|
||||||
## zstd-small: minimal target, supporting only zstd compression and decompression. no bench. no legacy. no other format.
|
## zstd-small: minimal target, supporting only zstd compression and decompression. no bench. no legacy. no other format.
|
||||||
CLEAN += zstd-small zstd-frugal
|
CLEAN += zstd-small zstd-frugal
|
||||||
|
Reference in New Issue
Block a user