Skip to content
This repository was archived by the owner on Feb 5, 2019. It is now read-only.

Commit 939bc92

Browse files
committed
Better comments to explain buffered/unbuffered processor resources.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206625 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent fe030f3 commit 939bc92

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

lib/CodeGen/ScheduleDAGInstrs.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -699,10 +699,14 @@ void ScheduleDAGInstrs::initSUnits() {
699699
// Assign the Latency field of SU using target-provided information.
700700
SU->Latency = SchedModel.computeInstrLatency(SU->getInstr());
701701

702-
// If this SUnit uses an unbuffered resource, mark it as such.
703-
// These resources are used for in-order execution pipelines within an
704-
// out-of-order core and are identified by BufferSize=1. BufferSize=0 is
705-
// used for dispatch/issue groups and is not considered here.
702+
// If this SUnit uses a reserved or unbuffered resource, mark it as such.
703+
//
704+
// Reserved resources block an instruction from issueing and stall the
705+
// entire pipeline. These are identified by BufferSize=0.
706+
//
707+
// Unbuffered resources prevent execution of subsequeny instructions that
708+
// require the same resources. This is used for in-order execution pipelines
709+
// within an out-of-order core. These are identified by BufferSize=1.
706710
if (SchedModel.hasInstrSchedModel()) {
707711
const MCSchedClassDesc *SC = getSchedClass(SU);
708712
for (TargetSchedModel::ProcResIter

0 commit comments

Comments
 (0)