Sebastian tested CLooG-isl over the last couple of weeks in gcc and it
seems to be stable enough to be the cloog used in gcc/graphite for the
upcoming release. We therefore would like to ask, if it is possible to
create an official cloog 0.16 release in the next couple of weeks (6-12)
and maybe a cloog release candidate earlier.
As soon as there is a tar package we can put on the gcc ftp
infrastructure we can switch the default CLooG version in gcc trunk.
Are there any changes left you still want to push into this CLooG
release? I also heard once, you planned to call the release 1.0? What
is your general opinion about this?
Any comments highly appreciated
Tobi
Do you want your recent isl changes to go in?
If so, I would probably create an isl release first.
> release? I also heard once, you planned to call the release 1.0?
Cedric mentioned that, but I think the old interface should be
disabled before the 1.0 release. Speaking of which, is graphite
still using the old interface? If so, when are you planning on
changing that? I'd like to repeat that as far as I am concerned,
the old interface is not supported.
skimo
Would be nice. If we could release after the gdb pretty printing is in
that would be great.
>> release? I also heard once, you planned to call the release 1.0?
>
> Cedric mentioned that, but I think the old interface should be
> disabled before the 1.0 release. Speaking of which, is graphite
> still using the old interface? If so, when are you planning on
> changing that? I'd like to repeat that as far as I am concerned,
> the old interface is not supported.
We still use it, as we still support cloog-ppl. As soon as the cloog-isl
release is out we gonna switch to the new interface. So hopefully the
next gcc release will only use the new interface.
Cheers
Tobi
What about having a 0.16 release in the next couple of weeks as some
kind of pre release. We can than switch gcc officially to isl and ask
people to test. After this switch has settled we will move to the new
interface such that the next official gcc release will use the new
interface. Together with gcc 4.6 we can than release cloog 1.0?
What do you think about this?
@Sebastian: How much time do we have for the upcoming gcc 4.6 release?
Cheers
Tobi
Wouldn't you need to test the new interface too?
skimo
Sure. I hope we can do the testing with the 0.16 release. It still
already has the new interface. If this does not work out, we can still
stay with the old interface and target 4.7 for the new one. In any case
I agree with you that cloog 1.0 should be released with the new
interface only.
Tobi
From previous GCC releases, I would say that we still have about 2 more months.
Ok, then let's release 0.16 today and I will do the testing over the holidays.
I would need a tar.gz file of the release to upload on the
gcc/infrastructure ftp.
Thanks,
Sebastian
I am OK with this. Sven, do you think we can get the latest isl patches
in (those that where about pointer comparisons). No need to have the
pretty printer included.
Cheers
Tobi
Give me a couple of days do release a new isl version first.
skimo
Did you still want libtool version info (I suppose 1:0:0)
and a rename of libcloog-ppl to libcloog-parma?
skimo
Regards,
Johan Walters
There is no point generating code for loops without inner loops
and cloog_loop_specialize expects all loops to have one or more
inner loops.
Reported-by: Johan <jwal...@compaandesign.com>
Signed-off-by: Sven Verdoolaege <sk...@kotnet.org>
---
On Thu, Dec 23, 2010 at 01:39:13PM +0100, Johan wrote:
> I have found possibly a bug within cloog.
A segmentation fault is always a bug.
> The attached input file has 2 domains, the constraints of the 2nd are
> fully included in the 1st. This specific input crashes cloog. If I
> remove either one of the domains, all is well.
Thanks for the report. In future, please specify which version of CLooG
you are using. This patch should help.
skimo
source/loop.c | 29 +++++++++++++++++++++++++----
test/Makefile.am | 1 +
test/walters3.c | 8 ++++++++
test/walters3.cloog | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
test/walters3.good.c | 24 ++++++++++++++++++++++++
5 files changed, 107 insertions(+), 4 deletions(-)
create mode 100644 test/walters3.c
create mode 100644 test/walters3.cloog
create mode 100644 test/walters3.good.c
diff --git a/source/loop.c b/source/loop.c
index 1a73a7f..870dca6 100644
--- a/source/loop.c
+++ b/source/loop.c
@@ -626,14 +626,35 @@ CloogLoop *cloog_loop_restrict_all(CloogLoop *loop, CloogDomain *context)
return res;
}
+
+/**
+ * Restrict the domains of the inner loops of each loop l in the given
+ * list of loops to the domain of the loop l. If the domains of all
+ * inner loops of a given loop l turn out to be empty, then remove l
+ * from the list.
+ */
CloogLoop *cloog_loop_restrict_inner(CloogLoop *loop)
{
- CloogLoop *l;
+ CloogLoop *next;
+ CloogLoop *res;
+ CloogLoop **res_next = &res;
- for (l = loop; l; l = l->next)
- l->inner = cloog_loop_restrict_all(l->inner, l->domain);
+ for (; loop; loop = next) {
+ next = loop->next;
- return loop;
+ loop->inner = cloog_loop_restrict_all(loop->inner, loop->domain);
+ if (loop->inner) {
+ *res_next = loop;
+ res_next = &(*res_next)->next;
+ } else {
+ loop->next = NULL;
+ cloog_loop_free(loop);
+ }
+ }
+
+ *res_next = NULL;
+
+ return res;
}
/**
diff --git a/test/Makefile.am b/test/Makefile.am
index afd0316..e6682f2 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -127,6 +127,7 @@ FINITE_CLOOGTEST_C = \
vivien2 \
walters \
walters2 \
+ walters3 \
wavefront \
yosr \
yosr2 \
diff --git a/test/walters3.c b/test/walters3.c
new file mode 100644
index 0000000..fc922d6
--- /dev/null
+++ b/test/walters3.c
@@ -0,0 +1,8 @@
+/* Generated from ../../../git/cloog/test/walters3.cloog by CLooG 0.14.0-338-g99c7504 gmp bits in 0.00s. */
+for (j=2;j<=8;j++) {
+ if (j%2 == 0) {
+ S1(j,j/2,j/2);
+ S2(j,j/2,j/2);
+ }
+}
+S2(10,5,5);
diff --git a/test/walters3.cloog b/test/walters3.cloog
new file mode 100644
index 0000000..fb45ab0
--- /dev/null
+++ b/test/walters3.cloog
@@ -0,0 +1,49 @@
+# language: C
+c
+
+# parameters
+1 2
+1 1
+ 1
+
+
+2
+
+1
+15 5
+ 1 -1 0 0 10
+ 1 -1 0 0 8
+ 1 -1 0 2 1
+ 1 1 0 -2 0
+ 1 -1 0 2 0
+ 1 0 0 1 -1
+ 1 1 -2 0 0
+ 1 -1 2 0 1
+ 1 1 0 0 -1
+ 1 -1 0 0 10
+ 0 1 -2 0 0
+ 1 1 -2 0 0
+ 1 -1 2 0 1
+ 1 1 0 -2 0
+ 1 -1 0 2 1
+ 0 0 0
+
+
+
+1
+7 5
+ 1 1 0 0 -1
+ 1 -1 0 0 10
+ 0 1 -2 0 0
+ 1 1 -2 0 0
+ 1 -1 2 0 1
+ 1 1 0 -2 0
+ 1 -1 0 2 1
+ 0 0 0
+
+
+ 1
+ j a b
+ #-------- SCATTERING -------------
+ 0 # no scattering function
+
diff --git a/test/walters3.good.c b/test/walters3.good.c
new file mode 100644
index 0000000..45a1b33
--- /dev/null
+++ b/test/walters3.good.c
@@ -0,0 +1,24 @@
+/* Generated from ../../../git/cloog/test/walters3.cloog by CLooG 0.14.0-338-g99c7504 gmp bits in 0.00s. */
+extern void hash(int);
+
+/* Useful macros. */
+#define floord(n,d) (((n)<0) ? -((-(n)+(d)-1)/(d)) : (n)/(d))
+#define ceild(n,d) (((n)<0) ? -((-(n))/(d)) : ((n)+(d)-1)/(d))
+#define max(x,y) ((x) > (y) ? (x) : (y))
+#define min(x,y) ((x) < (y) ? (x) : (y))
+
+#define S1(j,a,b) { hash(1); hash(j); hash(a); hash(b); }
+#define S2(j,a,b) { hash(2); hash(j); hash(a); hash(b); }
+
+void test()
+{
+ /* Original iterators. */
+ int j, a, b;
+ for (j=2;j<=8;j++) {
+ if (j%2 == 0) {
+ S1(j,j/2,j/2);
+ S2(j,j/2,j/2);
+ }
+ }
+ S2(10,5,5);
+}
--
1.7.3.3.398.g0b0cd
I pushed out isl-0.05.
I'll wait for an answer to the questions I asked earlier
today before tagging cloog-0.16.
skimo
I did it anyway. cloog-0.16.0 is out.
Cedric, please copy it from http://www.kotnet.org/~skimo/cloog/
> and a rename of libcloog-ppl to libcloog-parma?
We can still decide that later when I create cloog-parma-0.16.0
skimo
Hi Sven,
great.
>> and a rename of libcloog-ppl to libcloog-parma?
>
> We can still decide that later when I create cloog-parma-0.16.0
I have no strong opinion about this. Or actually I do not know what I
want. I believe renaming libcloog-ppl to libcloog-parma will probably
change this name forever.
Maybe it's sufficient to bump the .so file version for the debian guys.
I believe 1:0:0 is what we want.
Thanks a lot
Tobi
I would prefer libcloog-ppl as PPL is the polyhedral backend.
Sebastian
It doesn't crash for me. It just (correctly) complains about
invalid input.
skimo
OK, so nothing changes. cloog-parma-0.16.0 pushed out too.
skimo
Thanks. I am testing the two packages right now and I will report
if I find something broken.
Sebastian
How is it working out? We're considering a 0.16.1 release.
skimo
Graphite with cloog-parma still has some problems, when cloog-isl does not:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47127
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47128
I will investigate these issues that seem to be related to graphite
and not to cloog.
Sebastian