Page MenuHomePhabricator

[MachinePipeliner] Fix risky iterator usage R++, --R

Authored by jsji on Jun 18 2019, 8:54 PM.



When we calculateResMII, we use two loops, one with iterator


to check whether we can reserve the resource,
then later in another loop, we use


Trying to move back iterator to do reservation.

This is risky, as after several iterator R++,
--R may not move back to point to the same Resource at all,
so we may actually test with one Resource, but reserve in another Resources,
hence overbooking some Resource.

The can cause wrong MII being calculated.

Diff Detail


Event Timeline

jsji created this revision.Jun 18 2019, 8:54 PM
Herald added a project: Restricted Project. · View Herald TranscriptJun 18 2019, 8:55 PM
jsji added a comment.Jun 25 2019, 8:35 AM

Ping... Any comments or feedback, especially for Hexagon? @bcahoon

bcahoon accepted this revision.Jun 25 2019, 12:22 PM

Looks good to me. Thanks for the fix!


This revision is now accepted and ready to land.Jun 25 2019, 12:22 PM
This revision was automatically updated to reflect the committed changes.