summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrew Trick <atrick@apple.com>2013-03-14 21:21:50 +0000
committerAndrew Trick <atrick@apple.com>2013-03-14 21:21:50 +0000
commit1754aca83af1658c832706889c0e2933f8dfa8ee (patch)
treeb4633b142e8d512c7a2bbb327a3bc1f5b6dc30b5 /include
parent0cc52c67dbc2e073e3f7f34e05e3e7cd17ba9745 (diff)
downloadllvm-1754aca83af1658c832706889c0e2933f8dfa8ee.tar.gz
llvm-1754aca83af1658c832706889c0e2933f8dfa8ee.tar.bz2
llvm-1754aca83af1658c832706889c0e2933f8dfa8ee.tar.xz
MachineModel: Add a ProcResGroup class.
This allows abitrary groups of processor resources. Using something in a subset automatically counts againts the superset. Currently, this only works if the superset is also a ProcResGroup as opposed to a SuperUnit. This allows SandyBridge to be expressed naturally, which will be checked in shortly. def SBPort01 : ProcResGroup<[SBPort0, SBPort1]>; def SBPort15 : ProcResGroup<[SBPort1, SBPort5]>; def SBPort23 : ProcResGroup<[SBPort2, SBPort3]>; def SBPort015 : ProcResGroup<[SBPort0, SBPort1, SBPort5]>; git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177112 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetSchedule.td5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetSchedule.td b/include/llvm/Target/TargetSchedule.td
index b7920bae8a..660d2c48b6 100644
--- a/include/llvm/Target/TargetSchedule.td
+++ b/include/llvm/Target/TargetSchedule.td
@@ -133,6 +133,11 @@ def EponymousProcResourceKind : ProcResourceKind;
class ProcResource<int num> : ProcResourceKind,
ProcResourceUnits<EponymousProcResourceKind, num>;
+class ProcResGroup<list<ProcResource> resources> : ProcResourceKind {
+ list<ProcResource> Resources = resources;
+ SchedMachineModel SchedModel = ?;
+}
+
// A target architecture may define SchedReadWrite types and associate
// them with instruction operands.
class SchedReadWrite;