Some fails of simplify_using_context_assign in CLooG's testsuite

Hi,
Many thanks for the implementation of simplify_using_context_assign. Using the attached patch on top of cloog-ppl, I got some segfaults in the code of simplify_using_context_assign:
diff -u ref_check.txt check_2008_08_21_22_00_44 --- ref_check.txt 2008-08-02 17:36:07.000000000 -0500 +++ check_2008_08_21_22_00_44 2008-08-21 22:01:18.000000000 -0500 @@ -135,6 +135,7 @@ Verify file cholesky cholesky passed Verify file cholesky2 +/bin/bash: line 2: 19236 Segmentation fault ../cloog ./$x.cloog > ttemp cholesky2 passed Verify file classen classen passed @@ -197,12 +198,15 @@ Verify file logopar logopar passed Verify file lu +/bin/bash: line 2: 19763 Segmentation fault ../cloog ./$x.cloog > ttemp lu passed Verify file lu2 +/bin/bash: line 2: 19785 Segmentation fault ../cloog ./$x.cloog > ttemp lu2 passed Verify file lub lub passed Verify file lux +/bin/bash: line 2: 19819 Segmentation fault ../cloog ./$x.cloog > ttemp lux passed Verify file min-1-1 min-1-1 passed @@ -283,12 +287,14 @@ Verify file ./reservoir/mg-interp2 ./reservoir/mg-interp2 passed Verify file ./reservoir/mg-interp +/bin/bash: line 2: 20499 Segmentation fault ../cloog ./$x.cloog > ttemp ./reservoir/mg-interp passed Verify file ./reservoir/mg-psinv ./reservoir/mg-psinv passed Verify file ./reservoir/mg-resid ./reservoir/mg-resid passed Verify file ./reservoir/mg-rprj3 +/bin/bash: line 2: 20550 Segmentation fault ../cloog ./$x.cloog > ttemp ./reservoir/mg-rprj3 passed Verify file ./reservoir/pingali1 ./reservoir/pingali1 passed @@ -310,6 +316,7 @@ ./reservoir/two passed --- Testing FORTRAN files... Verify file dartef +[CLooG]ERROR: unbounded loops not allowed in FORTRAN. dartef passed Verify file iftestf iftestf passed
I tried to debug it but I'm sure somebody more familiar with the code of PPL could jump in to help.
From a first look over the changes to the testsuite of CLooG, the
redundant checks in loops seem to disappear now. Thanks again,
Sebastian Pop -- AMD - GNU Tools

Sebastian Pop wrote:
Using the attached patch on top of cloog-ppl, I got some segfaults in the code of simplify_using_context_assign:
Hi Sebastian,
perhaps you forgot the attachment? Cheers,
Roberto

On Fri, Aug 22, 2008 at 12:58 AM, Roberto Bagnara bagnara@cs.unipr.it wrote:
perhaps you forgot the attachment?
Hmm..., nop: it is attached to my previous outgoing email. Seems like the ppl-devel list refused it. Attached again, but only the interesting part of it: ppl/domain.c
Sebastian Pop -- AMD - GNU Tools

Sebastian Pop wrote:
On Fri, Aug 22, 2008 at 12:58 AM, Roberto Bagnara bagnara@cs.unipr.it wrote:
perhaps you forgot the attachment?
Hmm..., nop: it is attached to my previous outgoing email. Seems like the ppl-devel list refused it. Attached again, but only the interesting part of it: ppl/domain.c
Got it now, but not before. Thanks,
Roberto

Hi Sebastian.
Sebastian Pop wrote:
Hi,
Many thanks for the implementation of simplify_using_context_assign. Using the attached patch on top of cloog-ppl, I got some segfaults in the code of simplify_using_context_assign:
[...]
I tried to debug it but I'm sure somebody more familiar with the code of PPL could jump in to help.
Just to tell you that I just tried cloog `make check' on my machine and everything is working fine.
_However_ I had the PPL compiled for debugging, which may make a difference. I am now recompiling everything with optimizations turned on and assertions turned off. I will let you know if I find anything interesting.
Ciao, Enea.

Enea Zaffanella wrote:
Just to tell you that I just tried cloog `make check' on my machine and everything is working fine.
No, I was wrong, the problem is there even with assertions on. Now I have a small testcase, so I am confident we will fix it.
Ciao, Enea.

Enea Zaffanella wrote:
Enea Zaffanella wrote:
Just to tell you that I just tried cloog `make check' on my machine and everything is working fine.
No, I was wrong, the problem is there even with assertions on. Now I have a small testcase, so I am confident we will fix it.
Sebastian,
would you please try and apply the following simple patch?
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/ppl/src/Polyhedron_public.cc.diff?...
Let me know if this is enough to get rid of segmentation faults (or assertion failures, depending on configuration).
Note that I am still working to complete the correction, since the current code fails to simplify a few constraints that (to my eyes) should be redundant in the given context.
Ciao, Enea.

Hi Sebastian.
I (should) have solved the precision problem in my last commit:
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/ppl/src/Polyhedron_public.cc.diff?...
Now all of our tests behave as expected (here included the test I extracted from the cloog failure you reported).
I have run cloog `make check', obtaining a lot of output due to differences of "obtained" wrt "expected" results ... I hope this is mainly due to the expected results being out of date.
Please, keep us informed of any problem you might notice.
Ciao, Enea.

Hi,
On Fri, Aug 22, 2008 at 6:37 AM, Enea Zaffanella zaffanella@cs.unipr.it wrote:
would you please try and apply the following simple patch?
http://www.cs.unipr.it/cgi-bin/cvsweb.cgi/ppl/src/Polyhedron_public.cc.diff?...
Let me know if this is enough to get rid of segmentation faults (or assertion failures, depending on configuration).
Excellent! Thanks for the quick fix, this fixes the segfaults that I saw. I committed the change to the cloog-ppl.
I have run cloog `make check', obtaining a lot of output due to differences of "obtained" wrt "expected" results ... I hope this is mainly due to the expected results being out of date.
This is normal, as the testsuite of CLooG is not very stable for these changes in the polyhedral operations...
I should probably use ppl-cvs instead of applying patches by hand... will then try with head and update the testsuite of CLooG.
Many thanks again, Sebastian

Sebastian Pop wrote:
I should probably use ppl-cvs instead of applying patches by hand... will then try with head and update the testsuite of CLooG.
PPL CVS HEAD is not in good shape due to the fact that I am reorganizing the Prolog interfaces. I will prepare a new snapshot and upload it to the usual place. Cheers,
Roberto
participants (3)
-
Enea Zaffanella
-
Roberto Bagnara
-
Sebastian Pop