summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hows <howsdav@gmail.com>2017-10-25 22:53:35 +1100
committerTodd Gamblin <tgamblin@llnl.gov>2017-10-25 13:53:35 +0200
commit05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8 (patch)
tree014fd71cabc52b37ed849ea013b07a36b26c342d
parentce8a698b48a0c5f4b096167fd5a1e398f6ee4ad6 (diff)
downloadspack-05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8.tar.gz
spack-05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8.tar.bz2
spack-05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8.tar.xz
spack-05b3178ca4e51925ab5ddfb3cdcf092a1fb10cd8.zip
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.
-rw-r--r--var/spack/repos/builtin/packages/zlib/package.py4
1 files changed, 4 insertions, 0 deletions
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 = []