diff options
author | Hal Finkel <hfinkel@anl.gov> | 2012-06-18 21:08:18 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2012-06-18 21:08:18 +0000 |
commit | e877c4f9c7b4e4142f33a29e6cd1a07262525a12 (patch) | |
tree | ecbb5ae6ebaa572c5715be2b35512d9921317c74 /lib | |
parent | 0ed5cf4fc1f6d7947687114c9d0cbe0d1ba1d883 (diff) | |
download | llvm-e877c4f9c7b4e4142f33a29e6cd1a07262525a12.tar.gz llvm-e877c4f9c7b4e4142f33a29e6cd1a07262525a12.tar.bz2 llvm-e877c4f9c7b4e4142f33a29e6cd1a07262525a12.tar.xz |
Allow up to 64 functional units per processor itinerary.
This patch changes the type used to hold the FU bitset from unsigned to uint64_t.
This will be needed for some upcoming PowerPC itineraries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158679 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/DFAPacketizer.cpp | 4 | ||||
-rw-r--r-- | lib/CodeGen/ScoreboardHazardRecognizer.cpp | 10 | ||||
-rw-r--r-- | lib/Target/CellSPU/SPUNopFiller.cpp | 2 | ||||
-rw-r--r-- | lib/Target/Hexagon/HexagonVLIWPacketizer.cpp | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/lib/CodeGen/DFAPacketizer.cpp b/lib/CodeGen/DFAPacketizer.cpp index ff2f11353a..d4775775c0 100644 --- a/lib/CodeGen/DFAPacketizer.cpp +++ b/lib/CodeGen/DFAPacketizer.cpp @@ -66,7 +66,7 @@ void DFAPacketizer::ReadTable(unsigned int state) { bool DFAPacketizer::canReserveResources(const llvm::MCInstrDesc *MID) { unsigned InsnClass = MID->getSchedClass(); const llvm::InstrStage *IS = InstrItins->beginStage(InsnClass); - unsigned FuncUnits = IS->getUnits(); + uint64_t FuncUnits = IS->getUnits(); UnsignPair StateTrans = UnsignPair(CurrentState, FuncUnits); ReadTable(CurrentState); return (CachedTable.count(StateTrans) != 0); @@ -78,7 +78,7 @@ bool DFAPacketizer::canReserveResources(const llvm::MCInstrDesc *MID) { void DFAPacketizer::reserveResources(const llvm::MCInstrDesc *MID) { unsigned InsnClass = MID->getSchedClass(); const llvm::InstrStage *IS = InstrItins->beginStage(InsnClass); - unsigned FuncUnits = IS->getUnits(); + uint64_t FuncUnits = IS->getUnits(); UnsignPair StateTrans = UnsignPair(CurrentState, FuncUnits); ReadTable(CurrentState); assert(CachedTable.count(StateTrans) != 0); diff --git a/lib/CodeGen/ScoreboardHazardRecognizer.cpp b/lib/CodeGen/ScoreboardHazardRecognizer.cpp index 7110b7566a..d22398f58c 100644 --- a/lib/CodeGen/ScoreboardHazardRecognizer.cpp +++ b/lib/CodeGen/ScoreboardHazardRecognizer.cpp @@ -95,9 +95,9 @@ void ScoreboardHazardRecognizer::Scoreboard::dump() const { last--; for (unsigned i = 0; i <= last; i++) { - unsigned FUs = (*this)[i]; + uint64_t FUs = (*this)[i]; dbgs() << "\t"; - for (int j = 31; j >= 0; j--) + for (int j = 63; j >= 0; j--) dbgs() << ((FUs & (1 << j)) ? '1' : '0'); dbgs() << '\n'; } @@ -144,7 +144,7 @@ ScoreboardHazardRecognizer::getHazardType(SUnit *SU, int Stalls) { break; } - unsigned freeUnits = IS->getUnits(); + uint64_t freeUnits = IS->getUnits(); switch (IS->getReservationKind()) { case InstrStage::Required: // Required FUs conflict with both reserved and required ones @@ -196,7 +196,7 @@ void ScoreboardHazardRecognizer::EmitInstruction(SUnit *SU) { assert(((cycle + i) < RequiredScoreboard.getDepth()) && "Scoreboard depth exceeded!"); - unsigned freeUnits = IS->getUnits(); + uint64_t freeUnits = IS->getUnits(); switch (IS->getReservationKind()) { case InstrStage::Required: // Required FUs conflict with both reserved and required ones @@ -209,7 +209,7 @@ void ScoreboardHazardRecognizer::EmitInstruction(SUnit *SU) { } // reduce to a single unit - unsigned freeUnit = 0; + uint64_t freeUnit = 0; do { freeUnit = freeUnits; freeUnits = freeUnit & (freeUnit - 1); diff --git a/lib/Target/CellSPU/SPUNopFiller.cpp b/lib/Target/CellSPU/SPUNopFiller.cpp index 7c58041e3b..150959777d 100644 --- a/lib/Target/CellSPU/SPUNopFiller.cpp +++ b/lib/Target/CellSPU/SPUNopFiller.cpp @@ -138,7 +138,7 @@ SPUNopFiller::SPUOpPlace SPUNopFiller::getOpPlacement( MachineInstr &instr ) { int sc = instr.getDesc().getSchedClass(); const InstrStage *stage = IID->beginStage(sc); - unsigned FUs = stage->getUnits(); + uint64_t FUs = stage->getUnits(); SPUOpPlace retval; switch( FUs ) { diff --git a/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp b/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp index a03ed03365..7f1658d37d 100644 --- a/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp +++ b/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp @@ -3183,7 +3183,7 @@ bool HexagonPacketizerList::ignorePseudoInstruction(MachineInstr *MI, unsigned SchedClass = TID.getSchedClass(); const InstrStage* IS = ResourceTracker->getInstrItins()->beginStage(SchedClass); - unsigned FuncUnits = IS->getUnits(); + uint64_t FuncUnits = IS->getUnits(); return !FuncUnits; } |