From 84b24d34d2d08e97b77066aabea9828b816acb0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 14 Nov 2020 14:38:19 +0100 Subject: [PATCH] install: small rewording and restructuring of PGO instructions --- INSTALL.md | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 68624428..a426196f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -163,29 +163,25 @@ build. #### Profile Guided Optimization First, make sure you have configured a [release](#release-build) build -directory, but: +directory, but add these to the `CFLAGS`: -If using Clang, make sure to add `-Wno-ignored-optimization-argument --Wno-profile-instr-out-of-date` to `CFLAGS`. +* Clang: `-Wno-ignored-optimization-argument -Wno-profile-instr-out-of-date` +* GCC: `-Wno-missing-profile` -If using GCC, make sure to add `-Wno-missing-profile` to `CFLAGS`. - -Then, tell meson we want to _generate_ profile data, and build: +Then, tell meson we want to _generate_ profiling data, and build: ```sh meson configure -Db_pgo=generate ninja ``` -Next, we need to execute the intermediate build of foot, and run a -payload inside it that will exercise the performance critical code -paths. +Next, we need to actually generate the profiling data. There are two ways to do this: a [partial PGO build using a PGO helper](#partial-pgo) binary, or a [full PGO build](#full-pgo) by -running an intermediate foot binary. The latter has slightly better -results (i.e. results in a faster binary), but must be run in a -Wayland session. +running the real foot binary. The latter has slightly better results +(i.e. results in a faster binary), but must be run in a Wayland +session. ##### Partial PGO @@ -246,6 +242,7 @@ ninja Continue reading in [Running the new build](#running-the-new-build) + ### Debug build ```sh @@ -253,6 +250,7 @@ meson --buildtype=debug ../.. ninja ``` + ### Running the new build You can now run it directly from the build directory: