@@ -142,7 +142,7 @@ static Interval<int> getLiveIntervals(Value value, Liveness &liveness,
142142}
143143
144144static void updateMap (MemoryBitMap &memoryMap, Interval<int > liveInterval,
145- std::map <int , TMemChunk> &intervalLiverangeEnd) {
145+ std::multimap <int , TMemChunk> &intervalLiverangeEnd) {
146146 int start = liveInterval.start ();
147147 // Add any dead liverange to the list of free intervals.
148148 for (auto it = intervalLiverangeEnd.begin ();
@@ -247,7 +247,7 @@ allocateTMem(Operation *parentOp,
247247 int totalMemorySize = 0 ;
248248 MemoryBitMap memoryMap;
249249 Liveness liveness (parentOp);
250- std::map <int , TMemChunk> intervalLiverangeEnd;
250+ std::multimap <int , TMemChunk> intervalLiverangeEnd;
251251 DenseMap<TMEMAllocOp, TMemChunk> allocChunks;
252252 // Implement a linear scan first fit algorithm. We expect that fragmentation
253253 // won't be a problem, if it is this should be revisited.
@@ -283,7 +283,7 @@ allocateTMem(Operation *parentOp,
283283 allocChunks.insert ({alloc, chunkAllocated});
284284 // currently naively constraint allocs based on the first one we find.
285285 rowIdConstraints.addConstraints (alloc, chunkAllocated.startRow );
286- intervalLiverangeEnd[ liveInterval.end ()] = chunkAllocated;
286+ intervalLiverangeEnd. insert ({ liveInterval.end (), chunkAllocated}) ;
287287 int colOffset = chunkAllocated.startCol ;
288288 int rowOffset = chunkAllocated.startRow * 16 ;
289289
0 commit comments