Index: include/llvm/MC/MCSchedule.h =================================================================== --- include/llvm/MC/MCSchedule.h +++ include/llvm/MC/MCSchedule.h @@ -202,6 +202,18 @@ struct MCSchedModel { // IssueWidth is the maximum number of instructions that may be scheduled in // the same per-cycle group. + // + // The abstract pipeline is built around the notion of an "issue point". This + // is merely a reference point for counting machine cycles. IssueWidth is + // meant to be a hard in-order constraint (we sometimes call this kind of + // constraint a "hazard"). In the GenericScheduler strategy, no more than + // IssueWidth micro-ops can ever be scheduled in a particular cycle. + // + // In practice, IssueWidth is useful to model to the bottleneck between the + // decoder (after micro-op expansion) and the out-of-order reservation + // stations. If the total number of reservation stations is also a bottleneck, + // or if any other pipeline stage has a bandwidth limitation, then that can be + // naturally modeled by adding an out-of-order processor resource. unsigned IssueWidth; static const unsigned DefaultIssueWidth = 1;