diff options
| author | Andrew Trick <atrick@apple.com> | 2013-06-15 04:50:06 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2013-06-15 04:50:06 +0000 |
| commit | 40c4f380715c5cec14dde5cefca9930a601fa962 (patch) | |
| tree | 545961be58ffc92b4e056471cd93cb3fa916c323 /llvm/utils/TableGen/CodeGenSchedule.cpp | |
| parent | 18dc3da85598c99155e549a067f6e6c1bced19a9 (diff) | |
| download | bcm5719-llvm-40c4f380715c5cec14dde5cefca9930a601fa962.tar.gz bcm5719-llvm-40c4f380715c5cec14dde5cefca9930a601fa962.zip | |
Support BufferSize on ProcResGroup for unified MOp schedulers.
And add Sandybridge/Haswell resource buffers.
llvm-svn: 184034
Diffstat (limited to 'llvm/utils/TableGen/CodeGenSchedule.cpp')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenSchedule.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenSchedule.cpp b/llvm/utils/TableGen/CodeGenSchedule.cpp index 8015e34c64a..85eee5fde93 100644 --- a/llvm/utils/TableGen/CodeGenSchedule.cpp +++ b/llvm/utils/TableGen/CodeGenSchedule.cpp @@ -1476,6 +1476,19 @@ void CodeGenSchedModels::collectProcResources() { Record *ModelDef = (*RAI)->getValueAsDef("SchedModel"); addReadAdvance(*RAI, getProcModel(ModelDef).Index); } + // Add ProcResGroups that are defined within this processor model, which may + // not be directly referenced but may directly specify a buffer size. + RecVec ProcResGroups = Records.getAllDerivedDefinitions("ProcResGroup"); + for (RecIter RI = ProcResGroups.begin(), RE = ProcResGroups.end(); + RI != RE; ++RI) { + if (!(*RI)->getValueInit("SchedModel")->isComplete()) + continue; + CodeGenProcModel &PM = getProcModel((*RI)->getValueAsDef("SchedModel")); + RecIter I = std::find(PM.ProcResourceDefs.begin(), + PM.ProcResourceDefs.end(), *RI); + if (I == PM.ProcResourceDefs.end()) + PM.ProcResourceDefs.push_back(*RI); + } // Finalize each ProcModel by sorting the record arrays. for (unsigned PIdx = 0, PEnd = ProcModels.size(); PIdx != PEnd; ++PIdx) { CodeGenProcModel &PM = ProcModels[PIdx]; |

