mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-11 11:34:02 +00:00
[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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208230 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
40b514dc28
commit
905e33545c
@ -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…
x
Reference in New Issue
Block a user