[llvm-commits] Patch for review: Speeding up ScheduleDAG computations

Roman Levenstein romix.llvm at googlemail.com
Thu Feb 28 12:53:41 PST 2008


Hi Bill,

2008/2/28, Bill Wendling <isanbard at gmail.com>:
> On Thu, Feb 28, 2008 at 6:15 AM, Roman Levenstein
>  <romix.llvm at googlemail.com> wrote:
>  > Hi,
>  >
>  >  I've implemented some improvements related to the computation of
>  >  heights, depths and priorities and latencies of SUnits.
>  >
>  >  The basic idea is that all these algorithms are computing the longest
>  >  paths from the root node or to the exit node. Therefore I changed the
>  >  existing implementation that uses and iterative and potentially
>  >  exponential algorithm to a well-known graph algorithm based on dynamic
>  >  programming. It has a linear run-time.
>  >
>  >  Tests on very big  input files with tens of thousends of instructions
>  >  in a BB, e.g. big4.bc use-case from Duraid's testsuit, indicate huge
>  >  speed-ups (up to 2x) compared to the current version,
>  >
>  >  Please review and tell if it is OK for submission.
>  >
>
> Hi Roman,
>
>  (I haven't looked at the patch yet.) Did you run the llvm-test suite
>  with your patch?

No, I haven't done it yet, since I had no time. But I'll do it tomorrow.

What I did so far was computing the corresponding values (height,
depth, priority) with the old algorithm and with the new algorithm and
then comparing them to check if they are equal.  I did it on some
use-cases involving huge MBBs. The speedup was really significant,
e.g. the overall compilation took 10-15 seconds less (out of 35-40
sec) on those examples. Also the profiler shows that the number of
iterations done by those algorithms was reduced by several orders of
magniute.

- Roman



More information about the llvm-commits mailing list