[llvm-dev] Build polly-amd64-linux Failure

Michael Kruse via llvm-dev llvm-dev at lists.llvm.org
Wed May 10 08:49:02 PDT 2017


Hi Tobias,

the assert was a good hint. This line causes it:

assert(!Result ||
           isl_set_is_equal(give(isl_map_domain(Result.copy())).keep(),
                            Domain.keep()) == isl_bool_true);

isl_set_is_equal calls isl_map_normalize which does not do a
copy-on-write, hence modifies the original argument. Not sure whether
this is a bug or feature in isl.

This fixes the problem:

   /// Get the domain of @p Stmt.
   isl::set getDomainFor(ScopStmt *Stmt) const {
-    return give(Stmt->getDomain());
+    return give(isl_set_remove_redundancies( Stmt->getDomain()));
   }


The redundancy is inherited from the statement's domain

       Stmt_reduction_inc
            Domain :=
                { Stmt_reduction_inc[i0, i1] : 2 <= i0 <= 3 and 0 <=
i1 <= -2 + i0 };

I am currently waiting the current compilation failure to be fixed,
before I commit.

Michael


2017-05-09 17:52 GMT+02:00 Tobias Grosser <tobias at grosser.es>:
> On Tue, May 9, 2017, at 05:08 PM, Michael Kruse via llvm-dev wrote:
>> 2017-05-06 16:46 GMT+02:00 Tobias Grosser <tobias at grosser.es>:
>> > On Sat, May 6, 2017, at 04:28 PM, llvm.buildmaster at lab.llvm.org wrote:
>> >> The Buildbot has detected a failed build on builder polly-amd64-linux
>> >> while building polly.
>> >> Full details are available at:
>> >>  http://lab.llvm.org:8011/builders/polly-amd64-linux/builds/6539
>> >>
>> >> Buildbot URL: http://lab.llvm.org:8011/
>> >>
>> >> Buildslave for this Build: grosser1
>> >>
>> >> Build Reason: scheduler
>> >> Build Source Stamp: [branch trunk] 302339
>> >> Blamelist: meinersbur
>> >
>> > Hi Michael,
>> >
>> > the recent commit caused a failure:
>> >
>> > /home/grosser/buildslave/polly-amd64-linux/llvm.src/tools/polly/test/DeLICM/reduction_overapproximate.ll:102:16:
>> > error: expected string not found in input
>> > ; APPROX-NEXT: new: { Stmt_reduction_inc[i0, i1] -> MemRef_A[2] : i0 <=
>> > 3 and 0 <= i1 <= -2 + i0 };
>> >                ^
>> > <stdin>:62:2: note: scanning from here
>> >  new: { Stmt_reduction_inc[i0, i1] -> MemRef_A[2] : 2 <= i0 <= 3 and 0
>> >  <= i1 <= -2 + i0 };
>> >
>> > I have no idea where it comes from. On my machine (and my earlier tests)
>> > show no issues. Any ideas?
>>
>> No idea either. It worked reliably on the machines I tested with. I am
>> not even sure how to debug this difference.
>
> The sets we obtain are semantically identical, but have a different
> representation. So it does not seem to be a correctness issue. Still, it
> would be good if we can resolve this at some point.
>
> Maybe open a bug report for now that we don't forget.
>
> My first shot would be to compile a Release - no asserts of Polly and
> see if the same results are obtained. My guess is that some of your
> ASSERT statements cause isl to simplify constraints on the way, which
> may not happen in a release build. If this is indeed the case, I do not
> have a good answer how to address this.
>
> Best,
> Tobias



-- 
Tardyzentrismus verboten!


More information about the llvm-dev mailing list