Instruction Scheduling - migration from v3.1 to v3.2

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?