MachineModel: Add a ProcResGroup class.
authorAndrew Trick <atrick@apple.com>
Thu, 14 Mar 2013 21:21:50 +0000 (21:21 +0000)
committerAndrew Trick <atrick@apple.com>
Thu, 14 Mar 2013 21:21:50 +0000 (21:21 +0000)
commit1754aca83af1658c832706889c0e2933f8dfa8ee
treeb4633b142e8d512c7a2bbb327a3bc1f5b6dc30b5
parent0cc52c67dbc2e073e3f7f34e05e3e7cd17ba9745
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
include/llvm/Target/TargetSchedule.td
utils/TableGen/CodeGenSchedule.cpp
utils/TableGen/SubtargetEmitter.cpp