summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/Target/X86/X86ScheduleSLM.td8
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86ScheduleSLM.td b/llvm/lib/Target/X86/X86ScheduleSLM.td
index 6a2a998b5ff..fb0999b59ca 100644
--- a/llvm/lib/Target/X86/X86ScheduleSLM.td
+++ b/llvm/lib/Target/X86/X86ScheduleSLM.td
@@ -23,16 +23,11 @@ def SLMModel : SchedMachineModel {
// For small loops, expand by a small factor to hide the backedge cost.
let LoopMicroOpBufferSize = 10;
-
- // FIXME: SSE4 is unimplemented. This flag is set to allow
- // the scheduler to assign a default model to unrecognized opcodes.
- let CompleteModel = 0;
}
let SchedModel = SLMModel in {
// Silvermont has 5 reservation stations for micro-ops
-
def IEC_RSV0 : ProcResource<1>;
def IEC_RSV1 : ProcResource<1>;
def FPC_RSV0 : ProcResource<1> { let BufferSize = 1; }
@@ -78,6 +73,9 @@ def : WriteRes<WriteLoad, [MEC_RSV]> { let Latency = 3; }
def : WriteRes<WriteMove, [IEC_RSV01]>;
def : WriteRes<WriteZero, []>;
+// Treat misc copies as a move.
+def : InstRW<[WriteMove], (instrs COPY)>;
+
defm : SMWriteResPair<WriteALU, IEC_RSV01, 1>;
defm : SMWriteResPair<WriteIMul, IEC_RSV1, 3>;
defm : SMWriteResPair<WriteShift, IEC_RSV0, 1>;
OpenPOWER on IntegriCloud