[llvm-commits] [polly] r146557 - /polly/trunk/lib/ScheduleOptimizer.cpp

Tobias Grosser grosser at fim.uni-passau.de
Wed Dec 14 00:58:43 PST 2011


Author: grosser
Date: Wed Dec 14 02:58:43 2011
New Revision: 146557

URL: http://llvm.org/viewvc/llvm-project?rev=146557&view=rev
Log:
Scheduler: Try to maximize the band depth

Previously the scheduler was splitting bands at the level at which it detected
that the splitting of the band is necessary. This may introduce an additional
level of bands, that can be avoided by backtracking and splitting on a higher
level. Additional splits reduce the number of loops that can be tiled, such that
avoiding splits and maximizing the band depth seems preferable.

As a first data point we looked at 2mm and 3mm from the polybench test suite.
For both maximizing the tilable bands results in a significant (5-10x)
performance improvement.

This patch enables the isl scheduler option to maximize the band depth.

Modified:
    polly/trunk/lib/ScheduleOptimizer.cpp

Modified: polly/trunk/lib/ScheduleOptimizer.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/ScheduleOptimizer.cpp?rev=146557&r1=146556&r2=146557&view=diff
==============================================================================
--- polly/trunk/lib/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/ScheduleOptimizer.cpp Wed Dec 14 02:58:43 2011
@@ -436,6 +436,7 @@
   isl_schedule *schedule;
 
   isl_options_set_schedule_max_constant_term(S.getIslCtx(), CONSTANT_BOUND);
+  isl_options_set_schedule_maximize_band_depth(S.getIslCtx(), 1);
   schedule  = isl_union_set_compute_schedule(domain, validity, proximity);
 
   DEBUG(dbgs() << "Computed schedule: ");





More information about the llvm-commits mailing list