[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