From 05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8 Mon Sep 17 00:00:00 2001 From: David Hows Date: Wed, 25 Oct 2017 22:53:35 +1100 Subject: Zlib gets a 50-60% performance win when compiled with -O2 (#5838) Chasing a performance regression has lead me to this change, going from default optimization gives a significant performance win. The sweet spot for zlib is apparently `-O2`, both `-Ofast` and `-O3` are slightly worse (regression is about 3% compared with `-O2) in my testing. Happy to share my methodology with people so we can benchmark on a wider variety of systems. --- var/spack/repos/builtin/packages/zlib/package.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/var/spack/repos/builtin/packages/zlib/package.py b/var/spack/repos/builtin/packages/zlib/package.py index 11ae411e91..a642d64b57 100644 --- a/var/spack/repos/builtin/packages/zlib/package.py +++ b/var/spack/repos/builtin/packages/zlib/package.py @@ -45,6 +45,8 @@ class Zlib(Package): description='Produce position-independent code (for shared libs)') variant('shared', default=True, description='Enables the build of shared libraries.') + variant('optimize', default=True, + description='Enable -O2 for a more optimized lib') patch('w_patch.patch', when="@1.2.11%cce") @@ -58,6 +60,8 @@ class Zlib(Package): def setup_environment(self, spack_env, run_env): if '+pic' in self.spec: spack_env.append_flags('CFLAGS', self.compiler.pic_flag) + if '+optimize' in self.spec: + spack_env.append_flags('CFLAGS', '-O2') def install(self, spec, prefix): config_args = [] -- cgit v1.2.3-70-g09d2