From 6e33f489a18eb3a28b174e7ba55240e95c9c6e22 Mon Sep 17 00:00:00 2001 From: Hal Finkel Date: Fri, 29 Nov 2013 06:19:43 +0000 Subject: [PATCH] Fixup PPC440 load/store operand latencies The operand latencies for loads and stores in the PPC440 itinerary were wrong (the store operands are all inputs, and the "with update" (pre-increment) instructions need a latency for the additional output). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195948 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCSchedule440.td | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/lib/Target/PowerPC/PPCSchedule440.td b/lib/Target/PowerPC/PPCSchedule440.td index c8e620dd2dd..11d79f2be01 100644 --- a/lib/Target/PowerPC/PPCSchedule440.td +++ b/lib/Target/PowerPC/PPCSchedule440.td @@ -228,70 +228,70 @@ def PPC440Itineraries : ProcessorItineraries< InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [5, 1], + [5, 1, 1], [P440_GPR_Bypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [5, 1], + [5, 2, 1, 1], [P440_GPR_Bypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [4, 1], + [1, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [4, 1], + [2, 1, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1, 1], + [1, 1, 1], [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1, 1], + [2, 1, 1, 1], [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, @@ -305,28 +305,28 @@ def PPC440Itineraries : ProcessorItineraries< InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [5, 1, 1], + [5, 2, 1, 1], [NoBypass, P440_GPR_Bypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_IRACC], 0>, @@ -335,21 +335,21 @@ def PPC440Itineraries : ProcessorItineraries< InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>, InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<2, [P440_LWB]>], - [4, 1], + [2, 1, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_IRACC], 0>, @@ -358,7 +358,7 @@ def PPC440Itineraries : ProcessorItineraries< InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_IRACC], 0>, @@ -367,7 +367,7 @@ def PPC440Itineraries : ProcessorItineraries< InstrStage<1, [P440_AGEN]>, InstrStage<1, [P440_CRD]>, InstrStage<1, [P440_LWB]>], - [4, 1], + [4, 1, 1], [NoBypass, P440_GPR_Bypass]>, InstrItinData, InstrStage<1, [P440_LRACC]>,