Merge "Add a new x86(_64) arch variant "goldmont-without-xsaves"" into main am: 80abaa85e8

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2875215

Change-Id: Ibca4e4d47526837773107d7c57d282e59ebd2e51
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Vladimír Marko
2024-01-05 12:59:51 +00:00
committed by Automerger Merge Worker
5 changed files with 52 additions and 19 deletions

View File

@@ -34,6 +34,11 @@ var archVariants = map[ArchType][]string{
"broadwell",
"goldmont",
"goldmont-plus",
// Target arch is goldmont, but without xsaves support.
// This ensures efficient execution on a broad range of Intel/AMD CPUs used
// in Chromebooks, including those lacking xsaves support.
// (e.g. Kaby Lake, Gemini Lake, Alder Lake and AMD Zen series)
"goldmont-without-xsaves",
"haswell",
"icelake",
"ivybridge",
@@ -52,6 +57,7 @@ var archVariants = map[ArchType][]string{
"broadwell",
"goldmont",
"goldmont-plus",
"goldmont-without-xsaves",
"haswell",
"icelake",
"ivybridge",
@@ -197,6 +203,15 @@ var androidArchFeatureMap = map[ArchType]map[string][]string{
"popcnt",
"movbe",
},
"goldmont-without-xsaves": {
"ssse3",
"sse4",
"sse4_1",
"sse4_2",
"aes_ni",
"popcnt",
"movbe",
},
"haswell": {
"ssse3",
"sse4",
@@ -358,6 +373,14 @@ var androidArchFeatureMap = map[ArchType]map[string][]string{
"aes_ni",
"popcnt",
},
"goldmont-without-xsaves": {
"ssse3",
"sse4",
"sse4_1",
"sse4_2",
"aes_ni",
"popcnt",
},
"haswell": {
"ssse3",
"sse4",

View File

@@ -49,6 +49,10 @@ var (
"goldmont-plus": []string{
"-march=goldmont-plus",
},
"goldmont-without-xsaves": []string{
"-march=goldmont",
"-mno-xsaves",
},
"haswell": []string{
"-march=core-avx2",
},

View File

@@ -56,6 +56,10 @@ var (
"goldmont-plus": []string{
"-march=goldmont-plus",
},
"goldmont-without-xsaves": []string{
"-march=goldmont",
"-mno-xsaves",
},
"haswell": []string{
"-march=core-avx2",
},

View File

@@ -28,15 +28,16 @@ var (
x86_64LinkFlags = []string{}
x86_64ArchVariantRustFlags = map[string][]string{
"": []string{},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
"": []string{},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"goldmont-without-xsaves": []string{"-C target-cpu=goldmont", "-C target-feature=-xsaves"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
//TODO: Add target-cpu=stoneyridge when rustc supports it.
"stoneyridge": []string{""},
"tremont": []string{"-C target-cpu=tremont"},

View File

@@ -26,16 +26,17 @@ var (
x86LinkFlags = []string{}
x86ArchVariantRustFlags = map[string][]string{
"": []string{},
"atom": []string{"-C target-cpu=atom"},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
"": []string{},
"atom": []string{"-C target-cpu=atom"},
"broadwell": []string{"-C target-cpu=broadwell"},
"goldmont": []string{"-C target-cpu=goldmont"},
"goldmont-plus": []string{"-C target-cpu=goldmont-plus"},
"goldmont-without-xsaves": []string{"-C target-cpu=goldmont", "-C target-feature=-xsaves"},
"haswell": []string{"-C target-cpu=haswell"},
"ivybridge": []string{"-C target-cpu=ivybridge"},
"sandybridge": []string{"-C target-cpu=sandybridge"},
"silvermont": []string{"-C target-cpu=silvermont"},
"skylake": []string{"-C target-cpu=skylake"},
//TODO: Add target-cpu=stoneyridge when rustc supports it.
"stoneyridge": []string{""},
"tremont": []string{"-C target-cpu=tremont"},