diff options
author | Andrew Trick <atrick@apple.com> | 2013-03-14 21:21:50 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2013-03-14 21:21:50 +0000 |
commit | 1754aca83af1658c832706889c0e2933f8dfa8ee (patch) | |
tree | b4633b142e8d512c7a2bbb327a3bc1f5b6dc30b5 /include | |
parent | 0cc52c67dbc2e073e3f7f34e05e3e7cd17ba9745 (diff) | |
download | llvm-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.td | 5 |
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; |