forked from OSchip/llvm-project
[x86] Make the 'x86-64' cpu, what I see as and many use as the generic
default architecture for reasonable modern x86 processors, actually be modern. This processor model should essentially be "tuned" for modern x86 chips as much as possible without undue penalties on any specific architecture. Previously we weren't even using the nice scheduling models. There are a few other tweaks needed here, but this change at least I have benchmarked across a decent swatch of chips (intel's clovertown, westmere, and sandybridge; amd's istanbul) and seen no significant regressions. If anyone has suggested ways to test this, just let me know. Somewhat alarmingly, no existing tests failed. llvm-svn: 208230
This commit is contained in:
parent
d70cc604af
commit
32908d7a35
|
@ -195,8 +195,7 @@ def : Proc<"pentium3m", [FeatureSSE1, FeatureSlowBTMem]>;
|
|||
def : Proc<"pentium-m", [FeatureSSE2, FeatureSlowBTMem]>;
|
||||
def : Proc<"pentium4", [FeatureSSE2]>;
|
||||
def : Proc<"pentium4m", [FeatureSSE2, FeatureSlowBTMem]>;
|
||||
def : Proc<"x86-64", [FeatureSSE2, Feature64Bit, FeatureSlowBTMem,
|
||||
FeatureFastUAMem]>;
|
||||
|
||||
// Intel Core Duo.
|
||||
def : ProcessorModel<"yonah", SandyBridgeModel,
|
||||
[FeatureSSE3, FeatureSlowBTMem]>;
|
||||
|
@ -343,6 +342,20 @@ def : Proc<"winchip2", [Feature3DNow]>;
|
|||
def : Proc<"c3", [Feature3DNow]>;
|
||||
def : Proc<"c3-2", [FeatureSSE1]>;
|
||||
|
||||
// We also provide a generic 64-bit specific x86 processor model which tries to
|
||||
// be good for modern chips without enabling instruction set encodings past the
|
||||
// basic SSE2 and 64-bit ones. It disables slow things from any mainstream and
|
||||
// modern 64-bit x86 chip, and enables features that are generally beneficial.
|
||||
//
|
||||
// We currently use the Sandy Bridge model as the default scheduling model as
|
||||
// we use it across Nehalem, Westmere, Sandy Bridge, and Ivy Bridge which
|
||||
// covers a huge swath of x86 processors. If there are specific scheduling
|
||||
// knobs which need to be tuned differently for AMD chips, we might consider
|
||||
// forming a common base for them.
|
||||
def : ProcessorModel<"x86-64", SandyBridgeModel,
|
||||
[FeatureSSE2, Feature64Bit, FeatureSlowBTMem,
|
||||
FeatureFastUAMem]>;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Register File Description
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue