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:
parent
a942d2dd3d
commit
8808207ddf
@ -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": {
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
):
|
):
|
||||||
|
@ -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',
|
||||||
])
|
])
|
||||||
|
Loading…
Reference in New Issue
Block a user