[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