summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2019-10-23 06:40:45 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2019-10-22 21:40:45 -0700
commit8808207ddf711a63a67ead632f6dd7457bc22616 (patch)
treea4f497ae21f61df39d8be7806e19970741336825
parenta942d2dd3d76216d51b85e2bc0a4675fd8523dc7 (diff)
downloadspack-8808207ddf711a63a67ead632f6dd7457bc22616.tar.gz
spack-8808207ddf711a63a67ead632f6dd7457bc22616.tar.bz2
spack-8808207ddf711a63a67ead632f6dd7457bc22616.tar.xz
spack-8808207ddf711a63a67ead632f6dd7457bc22616.zip
Fixed optimization flags support for old GCC versions (#13362)
These changes update our gcc microarchitecture descriptions based on manuals found here https://gcc.gnu.org/onlinedocs/ and assuming that new architectures are not added during patch releases.
-rw-r--r--lib/spack/llnl/util/cpu/microarchitectures.json38
-rw-r--r--lib/spack/spack/test/architecture.py2
-rw-r--r--lib/spack/spack/test/concretize.py4
-rw-r--r--lib/spack/spack/test/modules/lmod.py2
4 files changed, 24 insertions, 22 deletions
diff --git a/lib/spack/llnl/util/cpu/microarchitectures.json b/lib/spack/llnl/util/cpu/microarchitectures.json
index 28734e1da9..6873fc9676 100644
--- a/lib/spack/llnl/util/cpu/microarchitectures.json
+++ b/lib/spack/llnl/util/cpu/microarchitectures.json
@@ -56,7 +56,7 @@
"flags": "-march={name} -mtune=generic"
},
{
- "versions": "4.0:4.1.2",
+ "versions": ":4.1.2",
"name": "x86-64",
"flags": "-march={name} -mtune={name}"
}
@@ -84,7 +84,7 @@
],
"compilers": {
"gcc": {
- "versions": "4:",
+ "versions": "4.0.4:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -110,7 +110,7 @@
],
"compilers": {
"gcc": {
- "versions": "4:",
+ "versions": "4.3.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -260,7 +260,7 @@
"flags": "-march={name} -mtune={name}"
},
{
- "versions": ":4.8.5",
+ "versions": "4.6:4.8.5",
"name": "core-avx-i",
"flags": "-march={name} -mtune={name}"
}
@@ -312,7 +312,7 @@
"flags": "-march={name} -mtune={name}"
},
{
- "versions": ":4.8.5",
+ "versions": "4.8:4.8.5",
"name": "core-avx2",
"flags": "-march={name} -mtune={name}"
}
@@ -404,7 +404,7 @@
],
"compilers": {
"gcc": {
- "versions": "5.3:",
+ "versions": "6.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -502,7 +502,7 @@
"compilers": {
"gcc": {
"name": "skylake-avx512",
- "versions": "5.3:",
+ "versions": "6.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -556,7 +556,7 @@
],
"compilers": {
"gcc": {
- "versions": "8:",
+ "versions": "8.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -606,7 +606,7 @@
],
"compilers": {
"gcc": {
- "versions": "9:",
+ "versions": "9.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -671,7 +671,7 @@
"compilers": {
"gcc": {
"name": "icelake-client",
- "versions": "8:",
+ "versions": "8.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": [
@@ -716,7 +716,7 @@
"compilers": {
"gcc": {
"name": "bdver1",
- "versions": "4.6:",
+ "versions": "4.7:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -897,7 +897,7 @@
"compilers": {
"gcc": {
"name": "znver1",
- "versions": "6:",
+ "versions": "6.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -948,7 +948,7 @@
"compilers": {
"gcc": {
"name": "znver2",
- "versions": "9:",
+ "versions": "9.0:",
"flags": "-march={name} -mtune={name}"
},
"clang": {
@@ -972,7 +972,7 @@
"compilers": {
"gcc": {
"name": "powerpc64",
- "versions": "4:",
+ "versions": ":",
"flags": "-mcpu={name} -mtune={name}"
},
"clang": {
@@ -989,7 +989,7 @@
"features": [],
"compilers": {
"gcc": {
- "versions": "4.5:",
+ "versions": "4.4:",
"flags": "-mcpu={name} -mtune={name}"
},
"clang": {
@@ -1032,7 +1032,7 @@
"features": [],
"compilers": {
"gcc": {
- "versions": "6:",
+ "versions": "6.0:",
"flags": "-mcpu={name} -mtune={name}"
},
"clang": {
@@ -1050,7 +1050,7 @@
"compilers": {
"gcc": {
"name": "powerpc64le",
- "versions": "4:",
+ "versions": "4.8:",
"flags": "-mcpu={name} -mtune={name}"
},
"clang": {
@@ -1095,7 +1095,7 @@
"compilers": {
"gcc": {
"name": "power9",
- "versions": "6:",
+ "versions": "6.0:",
"flags": "-mcpu={name} -mtune={name}"
},
"clang": {
@@ -1112,7 +1112,7 @@
"features": [],
"compilers": {
"gcc": {
- "versions": "4:",
+ "versions": "4.8.0:",
"flags": "-march=armv8-a -mtune=generic"
},
"clang": {
diff --git a/lib/spack/spack/test/architecture.py b/lib/spack/spack/test/architecture.py
index 35980d8a86..30aba65214 100644
--- a/lib/spack/spack/test/architecture.py
+++ b/lib/spack/spack/test/architecture.py
@@ -173,7 +173,7 @@ def test_arch_spec_container_semantic(item, architecture_str):
@pytest.mark.parametrize('compiler_spec,target_name,expected_flags', [
# Check compilers with version numbers from a single toolchain
- ('gcc@4.7.2', 'haswell', '-march=core-avx2 -mtune=core-avx2'),
+ ('gcc@4.7.2', 'ivybridge', '-march=core-avx-i -mtune=core-avx-i'),
# Check mixed toolchains
('clang@8.0.0', 'broadwell', ''),
# Check clang compilers with 'apple' suffix
diff --git a/lib/spack/spack/test/concretize.py b/lib/spack/spack/test/concretize.py
index f0c8e93bcf..592b515dbf 100644
--- a/lib/spack/spack/test/concretize.py
+++ b/lib/spack/spack/test/concretize.py
@@ -584,11 +584,13 @@ class TestConcretize(object):
Spec(spec).concretized()
@pytest.mark.parametrize('spec, best_achievable', [
+ ('mpileaks%gcc@4.4.7', 'core2'),
('mpileaks%gcc@4.8', 'haswell'),
- ('mpileaks%gcc@5.3.0', 'skylake_avx512'),
+ ('mpileaks%gcc@5.3.0', 'broadwell'),
# Apple's clang always falls back to x86-64 for now
('mpileaks%clang@9.1.0-apple', 'x86_64')
])
+ @pytest.mark.regression('13361')
def test_adjusting_default_target_based_on_compiler(
self, spec, best_achievable, current_host
):
diff --git a/lib/spack/spack/test/modules/lmod.py b/lib/spack/spack/test/modules/lmod.py
index e480d22601..34ba63c373 100644
--- a/lib/spack/spack/test/modules/lmod.py
+++ b/lib/spack/spack/test/modules/lmod.py
@@ -264,7 +264,7 @@ class TestLmod(object):
assert writer.conf.core_compilers
@pytest.mark.parametrize('spec_str', [
- 'mpileaks target=haswell',
+ 'mpileaks target=nocona',
'mpileaks target=core2',
'mpileaks target=x86_64',
])