[LLVMdev] Instruction Scheduling - migration from v3.1 to v3.2
Martin J. O'Riordan
Martin.ORiordan at movidius.com
Fri Apr 26 03:53:00 PDT 2013
I am migrating the llvm/clang derived compiler for our processor from the
v3.1 to v3.2 codebase. This has mostly gone well except that instruction
latency scheduling is no longer happening.
The people who implemented this previously sub-classed 'ScheduleDAGInstrs'
and implemented the virtual methods 'computeLatency' and
'computeOperandLatency'. However, these methods have been removed from
'ScheduleDAG' and 'ScheduleDAGInstrs' so are no longer invoked on our
implementation. Instead, the correct approach seems to implement a
sub-class of 'TargetSchedModel'.
When I had a look at how other targets dealt with this transition I found
that none of them had implemented the latency scheduler the way we had, so I
couldn't just mimic a strategy used by other targets moving from v3.1 to
v3.2. Unfortunately the people who implemented the existing solution are no
longer with the organization so I am trying to determine how to fix this
without their experience.
Is there any preferred or recommended approach for rewriting our existing
implementation to fit the 'TargetSchedModel' mechanism?
Martin J. ORiordan http://www.movidius.com
Movidius Ltd. martin.oriordan at movidius.com
19 Mountjoy Square, Dublin 1, Ireland
More information about the llvm-dev