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

Tobias Grosser grosser at fim.uni-passau.de
Mon Jan 30 11:38:47 PST 2012


Author: grosser
Date: Mon Jan 30 13:38:47 2012
New Revision: 149264

URL: http://llvm.org/viewvc/llvm-project?rev=149264&view=rev
Log:
Scheduling: Use original schedule if we cannot find a new one

After this we can now compile all polybench 2.0 kernels without any compiler
crash.

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=149264&r1=149263&r2=149264&view=diff
==============================================================================
--- polly/trunk/lib/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/ScheduleOptimizer.cpp Mon Jan 30 13:38:47 2012
@@ -32,6 +32,7 @@
 #include "isl/constraint.h"
 #include "isl/schedule.h"
 #include "isl/band.h"
+#include "isl/options.h"
 
 #define DEBUG_TYPE "polly-opt-isl"
 #include "llvm/Support/Debug.h"
@@ -460,7 +461,15 @@
 
   isl_options_set_schedule_max_constant_term(S.getIslCtx(), CONSTANT_BOUND);
   isl_options_set_schedule_maximize_band_depth(S.getIslCtx(), 1);
+
+  isl_options_set_on_error(S.getIslCtx(), ISL_ON_ERROR_CONTINUE);
   schedule  = isl_union_set_compute_schedule(domain, validity, proximity);
+  isl_options_set_on_error(S.getIslCtx(), ISL_ON_ERROR_ABORT);
+
+  // In cases the scheduler is not able to optimize the code, we just do not
+  // touch the schedule.
+  if (!schedule)
+    return false;
 
   DEBUG(dbgs() << "Computed schedule: ");
   DEBUG(dbgs() << stringFromIslObj(schedule));





More information about the llvm-commits mailing list