diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2010-04-07 18:19:32 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2010-04-07 18:19:32 +0000 |
commit | 0bdc6345e8525788412057f39bc07febbb5e244b (patch) | |
tree | f37903892f421e9955c25fb0b8a54c2bea022e22 /llvm/utils/TableGen/SubtargetEmitter.cpp | |
parent | 9a348a9572c1d325ce03634638f492b5853a44ec (diff) | |
download | bcm5719-llvm-0bdc6345e8525788412057f39bc07febbb5e244b.tar.gz bcm5719-llvm-0bdc6345e8525788412057f39bc07febbb5e244b.zip |
Initial support for different kinds of FU reservation.
llvm-svn: 100645
Diffstat (limited to 'llvm/utils/TableGen/SubtargetEmitter.cpp')
-rw-r--r-- | llvm/utils/TableGen/SubtargetEmitter.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/SubtargetEmitter.cpp b/llvm/utils/TableGen/SubtargetEmitter.cpp index 9ac652f7993..fb86a704c47 100644 --- a/llvm/utils/TableGen/SubtargetEmitter.cpp +++ b/llvm/utils/TableGen/SubtargetEmitter.cpp @@ -216,7 +216,7 @@ void SubtargetEmitter::FormItineraryStageString(Record *ItinData, // Next stage const Record *Stage = StageList[i]; - // Form string as ,{ cycles, u1 | u2 | ... | un, timeinc } + // Form string as ,{ cycles, u1 | u2 | ... | un, timeinc, kind } int Cycles = Stage->getValueAsInt("Cycles"); ItinString += " { " + itostr(Cycles) + ", "; @@ -233,6 +233,9 @@ void SubtargetEmitter::FormItineraryStageString(Record *ItinData, int TimeInc = Stage->getValueAsInt("TimeInc"); ItinString += ", " + itostr(TimeInc); + int Kind = Stage->getValueAsInt("Kind"); + ItinString += ", (llvm::InstrStage::ReservationKinds)" + itostr(Kind); + // Close off stage ItinString += " }"; if (++i < N) ItinString += ", "; @@ -278,7 +281,7 @@ void SubtargetEmitter::EmitStageAndOperandCycleData(raw_ostream &OS, // Begin stages table std::string StageTable = "static const llvm::InstrStage Stages[] = {\n"; - StageTable += " { 0, 0, 0 }, // No itinerary\n"; + StageTable += " { 0, 0, 0, llvm::InstrStage::Required }, // No itinerary\n"; // Begin operand cycle table std::string OperandCycleTable = "static const unsigned OperandCycles[] = {\n"; @@ -367,7 +370,7 @@ void SubtargetEmitter::EmitStageAndOperandCycleData(raw_ostream &OS, } // Closing stage - StageTable += " { 0, 0, 0 } // End itinerary\n"; + StageTable += " { 0, 0, 0, llvm::InstrStage::Required } // End itinerary\n"; StageTable += "};\n"; // Closing operand cycles |