File tree Expand file tree Collapse file tree 1 file changed +5
-1
lines changed
Expand file tree Collapse file tree 1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -1464,6 +1464,7 @@ Fetch::handleIEWSignals()
14641464 }
14651465
14661466 auto &incoming = fromIEW->iewInfo ->resolvedCFIs ;
1467+ const bool had_pending_resolve = !resolveQueue.empty ();
14671468 uint8_t enqueueSize = fromIEW->iewInfo ->resolvedCFIs .size ();
14681469 uint8_t enqueueCount = 0 ;
14691470
@@ -1497,7 +1498,10 @@ Fetch::handleIEWSignals()
14971498
14981499 fetchStats.resolveQueueOccupancy .sample (resolveQueue.size ());
14991500
1500- if (!resolveQueue.empty ()) {
1501+ // Process only entries that were already pending before this cycle.
1502+ // This preserves a cycle of separation between IEW producing resolved CFIs
1503+ // and fetch consuming them as predictor resolved updates.
1504+ if (had_pending_resolve && !resolveQueue.empty ()) {
15011505 auto &entry = resolveQueue.front ();
15021506 unsigned int stream_id = entry.resolvedFTQId ;
15031507 dbpbtb->prepareResolveUpdateEntries (stream_id);
You can’t perform that action at this time.
0 commit comments