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.
This commit is contained in:
Massimiliano Culpo 2019-10-23 06:40:45 +02:00 committed by Todd Gamblin
parent a942d2dd3d
commit 8808207ddf
4 changed files with 24 additions and 22 deletions

View File

@ -56,7 +56,7 @@
"flags": "-march={name} -mtune=generic" "flags": "-march={name} -mtune=generic"
}, },
{ {
"versions": "4.0:4.1.2", "versions": ":4.1.2",
"name": "x86-64", "name": "x86-64",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
} }
@ -84,7 +84,7 @@
], ],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "4:", "versions": "4.0.4:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -110,7 +110,7 @@
], ],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "4:", "versions": "4.3.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -260,7 +260,7 @@
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
{ {
"versions": ":4.8.5", "versions": "4.6:4.8.5",
"name": "core-avx-i", "name": "core-avx-i",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
} }
@ -312,7 +312,7 @@
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
{ {
"versions": ":4.8.5", "versions": "4.8:4.8.5",
"name": "core-avx2", "name": "core-avx2",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
} }
@ -404,7 +404,7 @@
], ],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "5.3:", "versions": "6.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -502,7 +502,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "skylake-avx512", "name": "skylake-avx512",
"versions": "5.3:", "versions": "6.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -556,7 +556,7 @@
], ],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "8:", "versions": "8.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -606,7 +606,7 @@
], ],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "9:", "versions": "9.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -671,7 +671,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "icelake-client", "name": "icelake-client",
"versions": "8:", "versions": "8.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": [ "clang": [
@ -716,7 +716,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "bdver1", "name": "bdver1",
"versions": "4.6:", "versions": "4.7:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -897,7 +897,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "znver1", "name": "znver1",
"versions": "6:", "versions": "6.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -948,7 +948,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "znver2", "name": "znver2",
"versions": "9:", "versions": "9.0:",
"flags": "-march={name} -mtune={name}" "flags": "-march={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -972,7 +972,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "powerpc64", "name": "powerpc64",
"versions": "4:", "versions": ":",
"flags": "-mcpu={name} -mtune={name}" "flags": "-mcpu={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -989,7 +989,7 @@
"features": [], "features": [],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "4.5:", "versions": "4.4:",
"flags": "-mcpu={name} -mtune={name}" "flags": "-mcpu={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -1032,7 +1032,7 @@
"features": [], "features": [],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "6:", "versions": "6.0:",
"flags": "-mcpu={name} -mtune={name}" "flags": "-mcpu={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -1050,7 +1050,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "powerpc64le", "name": "powerpc64le",
"versions": "4:", "versions": "4.8:",
"flags": "-mcpu={name} -mtune={name}" "flags": "-mcpu={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -1095,7 +1095,7 @@
"compilers": { "compilers": {
"gcc": { "gcc": {
"name": "power9", "name": "power9",
"versions": "6:", "versions": "6.0:",
"flags": "-mcpu={name} -mtune={name}" "flags": "-mcpu={name} -mtune={name}"
}, },
"clang": { "clang": {
@ -1112,7 +1112,7 @@
"features": [], "features": [],
"compilers": { "compilers": {
"gcc": { "gcc": {
"versions": "4:", "versions": "4.8.0:",
"flags": "-march=armv8-a -mtune=generic" "flags": "-march=armv8-a -mtune=generic"
}, },
"clang": { "clang": {

View File

@ -173,7 +173,7 @@ def test_arch_spec_container_semantic(item, architecture_str):
@pytest.mark.parametrize('compiler_spec,target_name,expected_flags', [ @pytest.mark.parametrize('compiler_spec,target_name,expected_flags', [
# Check compilers with version numbers from a single toolchain # 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 # Check mixed toolchains
('clang@8.0.0', 'broadwell', ''), ('clang@8.0.0', 'broadwell', ''),
# Check clang compilers with 'apple' suffix # Check clang compilers with 'apple' suffix

View File

@ -584,11 +584,13 @@ def test_noversion_pkg(self, spec):
Spec(spec).concretized() Spec(spec).concretized()
@pytest.mark.parametrize('spec, best_achievable', [ @pytest.mark.parametrize('spec, best_achievable', [
('mpileaks%gcc@4.4.7', 'core2'),
('mpileaks%gcc@4.8', 'haswell'), ('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 # Apple's clang always falls back to x86-64 for now
('mpileaks%clang@9.1.0-apple', 'x86_64') ('mpileaks%clang@9.1.0-apple', 'x86_64')
]) ])
@pytest.mark.regression('13361')
def test_adjusting_default_target_based_on_compiler( def test_adjusting_default_target_based_on_compiler(
self, spec, best_achievable, current_host self, spec, best_achievable, current_host
): ):

View File

@ -264,7 +264,7 @@ def no_op_set(*args, **kwargs):
assert writer.conf.core_compilers assert writer.conf.core_compilers
@pytest.mark.parametrize('spec_str', [ @pytest.mark.parametrize('spec_str', [
'mpileaks target=haswell', 'mpileaks target=nocona',
'mpileaks target=core2', 'mpileaks target=core2',
'mpileaks target=x86_64', 'mpileaks target=x86_64',
]) ])