From 5e65996facfdaca8d2411afdf1c4e4064dd59a83 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Mon, 19 Mar 2018 19:00:35 +0000 Subject: [PATCH] [X86] Remove OUT32rr/OUT8rr/OUT32ri/OUT8ri from Sandybridge scheduler model. PR35590 was already filed for this information being wrong. It's probably better to default to WriteSystem behavior instead of using something completely wrong. llvm-svn: 327882 --- llvm/lib/Target/X86/X86SchedSandyBridge.td | 4 ---- llvm/test/CodeGen/X86/schedule-x86_64.ll | 16 ++++++++-------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index d1b58a8106d3..664b4d4f34d0 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -1010,8 +1010,6 @@ def SBWriteResGroup25 : SchedWriteRes<[SBPort015]> { let ResourceCycles = [3]; } def: InstRW<[SBWriteResGroup25], (instregex "LEAVE64")>; -def: InstRW<[SBWriteResGroup25], (instregex "OUT32rr")>; -def: InstRW<[SBWriteResGroup25], (instregex "OUT8rr")>; def: InstRW<[SBWriteResGroup25], (instregex "XADD(8|16|32|64)rr")>; def SBWriteResGroup25_2 : SchedWriteRes<[SBPort5,SBPort05]> { @@ -1091,8 +1089,6 @@ def SBWriteResGroup29_2 : SchedWriteRes<[SBPort5,SBPort015]> { let NumMicroOps = 4; let ResourceCycles = [1,3]; } -def: InstRW<[SBWriteResGroup29_2], (instregex "OUT32ir")>; -def: InstRW<[SBWriteResGroup29_2], (instregex "OUT8ir")>; def: InstRW<[SBWriteResGroup29_2], (instregex "PAUSE")>; def SBWriteResGroup29_3 : SchedWriteRes<[SBPort05,SBPort015]> { diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll index 1a8019515838..a99992d6e924 100644 --- a/llvm/test/CodeGen/X86/schedule-x86_64.ll +++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll @@ -9226,12 +9226,12 @@ define void @test_out() optsize { ; GENERIC-LABEL: test_out: ; GENERIC: # %bb.0: ; GENERIC-NEXT: #APP -; GENERIC-NEXT: outb %al, $7 # sched: [4:1.33] +; GENERIC-NEXT: outb %al, $7 # sched: [100:0.33] ; GENERIC-NEXT: outw %ax, $7 # sched: [100:0.33] -; GENERIC-NEXT: outl %eax, $7 # sched: [4:1.33] -; GENERIC-NEXT: outb %al, %dx # sched: [3:1.00] +; GENERIC-NEXT: outl %eax, $7 # sched: [100:0.33] +; GENERIC-NEXT: outb %al, %dx # sched: [100:0.33] ; GENERIC-NEXT: outw %ax, %dx # sched: [100:0.33] -; GENERIC-NEXT: outl %eax, %dx # sched: [3:1.00] +; GENERIC-NEXT: outl %eax, %dx # sched: [100:0.33] ; GENERIC-NEXT: #NO_APP ; GENERIC-NEXT: retq # sched: [1:1.00] ; @@ -9262,12 +9262,12 @@ define void @test_out() optsize { ; SANDY-LABEL: test_out: ; SANDY: # %bb.0: ; SANDY-NEXT: #APP -; SANDY-NEXT: outb %al, $7 # sched: [4:1.33] +; SANDY-NEXT: outb %al, $7 # sched: [100:0.33] ; SANDY-NEXT: outw %ax, $7 # sched: [100:0.33] -; SANDY-NEXT: outl %eax, $7 # sched: [4:1.33] -; SANDY-NEXT: outb %al, %dx # sched: [3:1.00] +; SANDY-NEXT: outl %eax, $7 # sched: [100:0.33] +; SANDY-NEXT: outb %al, %dx # sched: [100:0.33] ; SANDY-NEXT: outw %ax, %dx # sched: [100:0.33] -; SANDY-NEXT: outl %eax, %dx # sched: [3:1.00] +; SANDY-NEXT: outl %eax, %dx # sched: [100:0.33] ; SANDY-NEXT: #NO_APP ; SANDY-NEXT: retq # sched: [1:1.00] ;