[LLVMdev] Representing 2 FUs mapped to same slot in Tablegen
Pankaj Gode
godepankaj at yahoo.com
Thu Jul 10 06:14:51 PDT 2014
Hi All,
I have a query regarding, how should one represent mapping of functional units to same slot in Tablegen ?
For example, if my Functional units are defined in TargetSchedule.td, as:
def fu0 : FuncUnit;
def fu1 : FuncUnit;
def f_fu0 : FuncUnit;
def f_fu1 : FuncUnit;
def myprocItineraries:
ProcessorItineraries<[fu0, fu1, f_fu0, f_fu1], [], [
...
]>;
def myProcModel : SchedMachineModel {
let IssueWidth = 2;
...
}
I could not find a way to represent that, in 'Issue Slot 0', I want to use either 'fu0 or f_fu0', while scheduling.
I would need this when, for example I want to use f_fu0 for some operation in slot0, instead of fu0.
I understand that ProcessorItineraries<[fu0, fu1, f_fu0, f_fu1] ...
allows me to specify that instruction scheduled in issue slot 0 will be executed on fu0 and instruction to execute on f_fu0 can be scheduled in slot 2 only.
While scheduling an operation, I would be using InstructionItineraries to check whether the operation can be executed on which FuncUnit,
but I would need extra logic to maintain that operation executing on 'fu0 or f_fu0' can be scheduled in slot 0.
Thus, specifying the processor itineraries as above will be a wrong representation my this case.
Or, should I be specifying this information somewhere
Or, it is fine to take care of this while scheduling ?
Please correct me if I have wrong understanding.
Regards,
Pankaj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140710/adbf2966/attachment.html>
More information about the llvm-dev
mailing list