diff options
author | Eric Wong <normalperson@yhbt.net> | 2012-03-20 00:38:56 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2012-03-20 00:38:56 +0000 |
commit | 31f53913059adc8adfe5477811b347e85f2e1d48 (patch) | |
tree | d8ed70a8bd591c9da8562663d73cdd8096646ee0 | |
parent | ef2eec33717bd2b21b130c65f524702875eb0535 (diff) | |
download | cmogstored-31f53913059adc8adfe5477811b347e85f2e1d48.tar.gz |
The results are currently _completely_ unbenchmarked, so I have no idea if I'm using PGO correctly, yet...
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | build-aux/coverage.mk | 12 | ||||
-rw-r--r-- | build-aux/pgo.mk | 27 |
3 files changed, 34 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am index cd49495..3228c08 100644 --- a/Makefile.am +++ b/Makefile.am @@ -196,6 +196,7 @@ MAINTAINERCLEANFILES = $(dist_man_MANS) include $(top_srcdir)/build-aux/coverage.mk include $(top_srcdir)/build-aux/release.mk include $(top_srcdir)/build-aux/sparse.mk +include $(top_srcdir)/build-aux/pgo.mk $(top_srcdir)/.version: echo $(VERSION) > $@-t && mv $@-t $@ diff --git a/build-aux/coverage.mk b/build-aux/coverage.mk index cf87d24..1b464af 100644 --- a/build-aux/coverage.mk +++ b/build-aux/coverage.mk @@ -9,12 +9,12 @@ cov_src = cmogstored.c $(mog_src) $(RL_MAIN) # this doesn't work in out-of-tree builds, yet... cover_db = $(top_srcdir)/cover_db -coverage_junk = *.gcov *.gcda *.gcno -CLEANFILES += $(coverage_junk) -CLEANFILES += $(addprefix bsd/, $(coverage_junk)) -CLEANFILES += $(addprefix lib/, $(coverage_junk)) -CLEANFILES += $(addprefix nostd/, $(coverage_junk)) -CLEANFILES += $(addprefix test/, $(coverage_junk)) +COVERAGE_JUNK = *.gcov *.gcda *.gcno +CLEANFILES += $(COVERAGE_JUNK) +CLEANFILES += $(addprefix bsd/, $(COVERAGE_JUNK)) +CLEANFILES += $(addprefix lib/, $(COVERAGE_JUNK)) +CLEANFILES += $(addprefix nostd/, $(COVERAGE_JUNK)) +CLEANFILES += $(addprefix test/, $(COVERAGE_JUNK)) coverage-clean: $(MAKE) clean diff --git a/build-aux/pgo.mk b/build-aux/pgo.mk new file mode 100644 index 0000000..26a0a9d --- /dev/null +++ b/build-aux/pgo.mk @@ -0,0 +1,27 @@ +# profile-guided optimization snippets +# This isn't tested or verified for correctness at all, yet. +# Help is greatly appreciated. + +PGO_DIR = $(top_builddir) +pgo_gen_cflags = $(CFLAGS) -O0 -fprofile-arcs -fprofile-generate=$(PGO_DIR) +pgo_gen_ldflags = $(LDFLAGS) -O0 -lgcov + +pgo_build_cflags = $(CFLAGS) -fprofile-use=$(PGO_DIR) -fprofile-correction + +PGO_CHECK = check +pgo-gen: export CCACHE_DISABLE=t +pgo-gen: + $(MAKE) clean + $(MAKE) CFLAGS="$(pgo_gen_cflags)" LDFLAGS="$(pgo_gen_ldflags)" + $(MAKE) CFLAGS="$(pgo_gen_cflags)" LDFLAGS="$(pgo_gen_ldflags)" \ + -j1 $(PGO_CHECK) + +pgo-build: export CCACHE_DISABLE=t +pgo-build: pgo-gen + $(MAKE) clean COVERAGE_JUNK= + git ls-files -o + $(MAKE) CFLAGS="$(pgo_build_cflags)" + +pgo-install: export CCACHE_DISABLE=t +pgo-install: pgo-build + $(MAKE) CFLAGS="$(pgo_build_cflags)" install |