Merge pull request #5012 from sjackman/skylake
-march=native is default. Hardware::CPU: Add Skylake [Linux]
This commit is contained in:
commit
b65e68ce90
@ -1,7 +1,7 @@
|
||||
# @private
|
||||
module CompilerConstants
|
||||
GNU_GCC_VERSIONS = %w[4.3 4.4 4.5 4.6 4.7 4.8 4.9 5 6 7 8].freeze
|
||||
GNU_GCC_REGEXP = /^gcc-(4\.[3-9]|[5-8])$/
|
||||
GNU_GCC_VERSIONS = %w[4.4 4.5 4.6 4.7 4.8 4.9 5 6 7 8].freeze
|
||||
GNU_GCC_REGEXP = /^gcc-(4\.[4-9]|[5-8])$/
|
||||
COMPILER_SYMBOL_MAP = {
|
||||
"gcc" => :gcc,
|
||||
"gcc-4.0" => :gcc_4_0,
|
||||
@ -71,7 +71,6 @@ class CompilerFailure
|
||||
create(:gcc_4_0),
|
||||
create(:gcc_4_2),
|
||||
create(:clang) { build 425 },
|
||||
create(gcc: "4.3"),
|
||||
create(gcc: "4.4"),
|
||||
create(gcc: "4.5"),
|
||||
create(gcc: "4.6"),
|
||||
@ -80,7 +79,6 @@ class CompilerFailure
|
||||
create(:clang) { build 600 },
|
||||
create(:gcc_4_0),
|
||||
create(:gcc_4_2),
|
||||
create(gcc: "4.3"),
|
||||
create(gcc: "4.4"),
|
||||
create(gcc: "4.5"),
|
||||
create(gcc: "4.6"),
|
||||
|
||||
@ -7,7 +7,7 @@ module Stdenv
|
||||
|
||||
# @private
|
||||
SAFE_CFLAGS_FLAGS = "-w -pipe".freeze
|
||||
DEFAULT_FLAGS = "-march=core2 -msse4".freeze
|
||||
DEFAULT_FLAGS = "-march=native".freeze
|
||||
|
||||
# @private
|
||||
def setup_build_environment(formula = nil)
|
||||
@ -108,7 +108,7 @@ module Stdenv
|
||||
|
||||
def gcc_4_2
|
||||
super
|
||||
set_cpu_cflags
|
||||
set_cpu_cflags "-march=core2 -msse4"
|
||||
end
|
||||
|
||||
GNU_GCC_VERSIONS.each do |n|
|
||||
@ -124,7 +124,7 @@ module Stdenv
|
||||
# Clang mistakenly enables AES-NI on plain Nehalem
|
||||
map = Hardware::CPU.optimization_flags
|
||||
map = map.merge(nehalem: "-march=native -Xclang -target-feature -Xclang -aes")
|
||||
set_cpu_cflags "-march=native", map
|
||||
set_cpu_cflags DEFAULT_FLAGS, map
|
||||
end
|
||||
|
||||
def minimal_optimization
|
||||
|
||||
@ -235,7 +235,7 @@ module Superenv
|
||||
Hardware::CPU.optimization_flags.fetch(arch)
|
||||
elsif Hardware::CPU.intel? && !Hardware::CPU.sse4?
|
||||
Hardware::CPU.optimization_flags.fetch(Hardware.oldest_cpu)
|
||||
elsif compiler == :clang
|
||||
elsif ![:gcc_4_0, :gcc_4_2].include?(compiler)
|
||||
"-march=native"
|
||||
# This is mutated elsewhere, so return an empty string in this case
|
||||
else
|
||||
|
||||
@ -11,8 +11,11 @@ module Hardware
|
||||
return :dunno unless intel?
|
||||
|
||||
# See https://software.intel.com/en-us/articles/intel-architecture-and-processor-identification-with-cpuid-model-and-family-numbers
|
||||
# and https://github.com/llvm-mirror/llvm/blob/master/lib/Support/Host.cpp
|
||||
# and https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures#Roadmap
|
||||
cpu_family = cpuinfo[/^cpu family\s*: ([0-9]+)/, 1].to_i
|
||||
cpu_model = cpuinfo[/^model\s*: ([0-9]+)/, 1].to_i
|
||||
unknown = :"unknown_0x#{cpu_family.to_s(16)}_0x#{cpu_model.to_s(16)}"
|
||||
case cpu_family
|
||||
when 0x06
|
||||
case cpu_model
|
||||
@ -36,12 +39,10 @@ module Hardware
|
||||
:haswell
|
||||
when 0x3d, 0x47, 0x4f, 0x56
|
||||
:broadwell
|
||||
when 0x5e
|
||||
when 0x4e, 0x55, 0x5e, 0x8e, 0x9e
|
||||
:skylake
|
||||
when 0x8e
|
||||
:kabylake
|
||||
else
|
||||
:dunno
|
||||
unknown
|
||||
end
|
||||
when 0x0f
|
||||
case cpu_model
|
||||
@ -50,10 +51,10 @@ module Hardware
|
||||
when 0x03, 0x04
|
||||
:prescott
|
||||
else
|
||||
:dunno
|
||||
unknown
|
||||
end
|
||||
else
|
||||
:dunno
|
||||
unknown
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@ module Hardware
|
||||
core: "-march=prescott",
|
||||
armv6: "-march=armv6",
|
||||
armv8: "-march=armv8-a",
|
||||
dunno: "-march=native",
|
||||
}.freeze
|
||||
|
||||
def optimization_flags
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user