diff options
| author | Andrew Trick <atrick@apple.com> | 2012-06-05 03:44:40 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2012-06-05 03:44:40 +0000 |
| commit | fc992996f751e0941951b6d08d8f1e80ebec1385 (patch) | |
| tree | 9205e39624f5c786dee5160b882d65c7865e45b2 /lib/Target/Hexagon | |
| parent | 4eb4e5eb224b3d737558bcda8a0a369cc9d800e6 (diff) | |
| download | external_llvm-fc992996f751e0941951b6d08d8f1e80ebec1385.zip external_llvm-fc992996f751e0941951b6d08d8f1e80ebec1385.tar.gz external_llvm-fc992996f751e0941951b6d08d8f1e80ebec1385.tar.bz2 | |
misched: Added MultiIssueItineraries.
This allows a subtarget to explicitly specify the issue width and
other properties without providing pipeline stage details for every
instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157979 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Hexagon')
| -rw-r--r-- | lib/Target/Hexagon/HexagonSchedule.td | 5 | ||||
| -rw-r--r-- | lib/Target/Hexagon/HexagonScheduleV4.td | 6 | ||||
| -rw-r--r-- | lib/Target/Hexagon/HexagonSubtarget.cpp | 3 |
3 files changed, 9 insertions, 5 deletions
diff --git a/lib/Target/Hexagon/HexagonSchedule.td b/lib/Target/Hexagon/HexagonSchedule.td index c488796..b4df678 100644 --- a/lib/Target/Hexagon/HexagonSchedule.td +++ b/lib/Target/Hexagon/HexagonSchedule.td @@ -41,7 +41,10 @@ def HexagonItineraries : InstrItinData<SYS , [InstrStage<1, [LSUNIT]>]>, InstrItinData<MARKER , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]>, InstrItinData<PSEUDO , [InstrStage<1, [LUNIT, LSUNIT, MUNIT, SUNIT]>]> - ]>; + ]> { + // Max issue per cycle == bundle width. + let IssueWidth = 4; +} //===----------------------------------------------------------------------===// // V4 Machine Info + diff --git a/lib/Target/Hexagon/HexagonScheduleV4.td b/lib/Target/Hexagon/HexagonScheduleV4.td index 1d82dbb..8d6f7b2 100644 --- a/lib/Target/Hexagon/HexagonScheduleV4.td +++ b/lib/Target/Hexagon/HexagonScheduleV4.td @@ -52,7 +52,11 @@ def HexagonItinerariesV4 : InstrItinData<MARKER , [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>]>, InstrItinData<PREFIX , [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>]>, InstrItinData<PSEUDO , [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>]> - ]>; + ]> { + // Max issue per cycle == bundle width. + let IssueWidth = 4; +} + //===----------------------------------------------------------------------===// // Hexagon V4 Resource Definitions - diff --git a/lib/Target/Hexagon/HexagonSubtarget.cpp b/lib/Target/Hexagon/HexagonSubtarget.cpp index 8744b7b..ce81a78 100644 --- a/lib/Target/Hexagon/HexagonSubtarget.cpp +++ b/lib/Target/Hexagon/HexagonSubtarget.cpp @@ -61,9 +61,6 @@ HexagonSubtarget::HexagonSubtarget(StringRef TT, StringRef CPU, StringRef FS): // Initialize scheduling itinerary for the specified CPU. InstrItins = getInstrItineraryForCPU(CPUString); - // Max issue per cycle == bundle width. - InstrItins.IssueWidth = 4; - if (EnableMemOps) UseMemOps = true; else |
