[llvm-commits] [polly] r152917 - in /polly/trunk: lib/ScheduleOptimizer.cpp test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll

Tobias Grosser grosser at fim.uni-passau.de
Fri Mar 16 04:51:42 PDT 2012


Author: grosser
Date: Fri Mar 16 06:51:41 2012
New Revision: 152917

URL: http://llvm.org/viewvc/llvm-project?rev=152917&view=rev
Log:
ScheduleOptimizer: Do not get dependences, if we do not calculate a schedule

This solves the 'isl_ctx freed, but some objects still reference it' problem
reported in PR12276.

Added:
    polly/trunk/test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll
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=152917&r1=152916&r2=152917&view=diff
==============================================================================
--- polly/trunk/lib/ScheduleOptimizer.cpp (original)
+++ polly/trunk/lib/ScheduleOptimizer.cpp Fri Mar 16 06:51:41 2012
@@ -447,13 +447,14 @@
   }
 
 
-  isl_union_map *Validity = D->getDependences(ValidityKinds);
-  isl_union_map *Proximity = D->getDependences(ProximityKinds);
   isl_union_set *Domain = S.getDomains();
 
   if (!Domain)
     return false;
 
+  isl_union_map *Validity = D->getDependences(ValidityKinds);
+  isl_union_map *Proximity = D->getDependences(ProximityKinds);
+
   // Simplify the dependences by removing the constraints introduced by the
   // domains. This can speed up the scheduling time significantly, as large
   // constant coefficients will be removed from the dependences. The

Added: polly/trunk/test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll?rev=152917&view=auto
==============================================================================
--- polly/trunk/test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll (added)
+++ polly/trunk/test/ScheduleOptimizer/2012-03-16-Empty-Domain.ll Fri Mar 16 06:51:41 2012
@@ -0,0 +1,17 @@
+; RUN: opt %loadPolly -polly-opt-isl -S %s
+target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32f64:64:64-f32:32:32-a0:0-n32"
+target triple = "hexagon-unknown-linux-gnu"
+
+define void @sdbout_label() nounwind {
+entry:
+  br label %for.cond
+
+for.cond:                                         ; preds = %for.cond, %entry
+  %0 = phi i32 [ 0, %entry ], [ %1, %for.cond ]
+  %1 = add nsw i32 %0, 1
+  %exitcond72 = icmp eq i32 %1, 7
+  br i1 %exitcond72, label %sw.epilog66, label %for.cond
+
+sw.epilog66:                                      ; preds = %for.cond
+  ret void
+}





More information about the llvm-commits mailing list