1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00

[CodeGenSchedule][NFC] Always emit ProcResourceUnits.

Summary:
Right now only the ProcResourceUnits that are directly referenced by
instructions are emitted. This change emits all of them, so that
analysis passes can use the information.
This has no functional impact. It typically adds a few entries (e.g. 4
for X86/haswell) to the generated ProcRes table.

Reviewers: gchatelet

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D42903

llvm-svn: 324228
This commit is contained in:
Clement Courbet 2018-02-05 12:23:51 +00:00
parent 4f2f540e75
commit 06256b141d

View File

@ -1564,6 +1564,14 @@ void CodeGenSchedModels::collectProcResources() {
if (!is_contained(PM.ProcResourceDefs, PRG))
PM.ProcResourceDefs.push_back(PRG);
}
// Add ProcResourceUnits unconditionally.
for (Record *PRU : Records.getAllDerivedDefinitions("ProcResourceUnits")) {
if (!PRU->getValueInit("SchedModel")->isComplete())
continue;
CodeGenProcModel &PM = getProcModel(PRU->getValueAsDef("SchedModel"));
if (!is_contained(PM.ProcResourceDefs, PRU))
PM.ProcResourceDefs.push_back(PRU);
}
// Finalize each ProcModel by sorting the record arrays.
for (CodeGenProcModel &PM : ProcModels) {
std::sort(PM.WriteResDefs.begin(), PM.WriteResDefs.end(),