[polly] r309727 - Update to isl-0.18-809-gd5b4535

Tobias Grosser via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 1 12:37:50 PDT 2017


Author: grosser
Date: Tue Aug  1 12:37:50 2017
New Revision: 309727

URL: http://llvm.org/viewvc/llvm-project?rev=309727&view=rev
Log:
Update to isl-0.18-809-gd5b4535

This fixes some undefined behavior in the isl schedule tree code.

Modified:
    polly/trunk/lib/External/isl/GIT_HEAD_ID
    polly/trunk/lib/External/isl/Makefile.am
    polly/trunk/lib/External/isl/Makefile.in
    polly/trunk/lib/External/isl/configure
    polly/trunk/lib/External/isl/configure.ac
    polly/trunk/lib/External/isl/doc/user.pod
    polly/trunk/lib/External/isl/isl_flow.c
    polly/trunk/lib/External/isl/isl_scheduler.c
    polly/trunk/lib/External/isl/schedule.c

Modified: polly/trunk/lib/External/isl/GIT_HEAD_ID
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/GIT_HEAD_ID?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/GIT_HEAD_ID (original)
+++ polly/trunk/lib/External/isl/GIT_HEAD_ID Tue Aug  1 12:37:50 2017
@@ -1 +1 @@
-isl-0.18-800-g4018f45
+isl-0.18-809-gd5b4535

Modified: polly/trunk/lib/External/isl/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/Makefile.am?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/Makefile.am (original)
+++ polly/trunk/lib/External/isl/Makefile.am Tue Aug  1 12:37:50 2017
@@ -12,9 +12,9 @@ noinst_PROGRAMS = isl_test isl_polyhedro
 	isl_polyhedron_minimize isl_polytope_scan \
 	isl_polyhedron_detect_equalities isl_cat \
 	isl_closure isl_bound isl_schedule isl_codegen isl_test_int \
-	isl_flow isl_flow_cmp
+	isl_flow isl_flow_cmp isl_schedule_cmp
 TESTS = isl_test codegen_test.sh pip_test.sh bound_test.sh isl_test_int \
-	flow_test.sh
+	flow_test.sh schedule_test.sh
 
 if IMATH_FOR_MP
 
@@ -221,6 +221,11 @@ isl_schedule_LDADD = libisl.la @MP_LIBS@
 isl_schedule_SOURCES = \
 	schedule.c
 
+isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
+isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
+isl_schedule_cmp_SOURCES = \
+	schedule_cmp.c
+
 isl_flow_LDFLAGS = @MP_LDFLAGS@
 isl_flow_LDADD = libisl.la @MP_LIBS@
 isl_flow_SOURCES = \

Modified: polly/trunk/lib/External/isl/Makefile.in
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/Makefile.in?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/Makefile.in (original)
+++ polly/trunk/lib/External/isl/Makefile.in Tue Aug  1 12:37:50 2017
@@ -97,9 +97,11 @@ noinst_PROGRAMS = isl_test$(EXEEXT) isl_
 	isl_polyhedron_detect_equalities$(EXEEXT) isl_cat$(EXEEXT) \
 	isl_closure$(EXEEXT) isl_bound$(EXEEXT) isl_schedule$(EXEEXT) \
 	isl_codegen$(EXEEXT) isl_test_int$(EXEEXT) isl_flow$(EXEEXT) \
-	isl_flow_cmp$(EXEEXT) $(am__EXEEXT_1)
+	isl_flow_cmp$(EXEEXT) isl_schedule_cmp$(EXEEXT) \
+	$(am__EXEEXT_1)
 TESTS = isl_test$(EXEEXT) codegen_test.sh pip_test.sh bound_test.sh \
-	isl_test_int$(EXEEXT) flow_test.sh $(am__EXEEXT_1)
+	isl_test_int$(EXEEXT) flow_test.sh schedule_test.sh \
+	$(am__EXEEXT_1)
 @IMATH_FOR_MP_TRUE at am__append_1 = isl_test_imath
 @IMATH_FOR_MP_TRUE at am__append_2 = isl_test_imath
 @IMATH_FOR_MP_TRUE@@SMALL_INT_OPT_TRUE at am__append_3 = isl_int_sioimath.h \
@@ -139,7 +141,7 @@ am__CONFIG_DISTCLEAN_FILES = config.stat
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = isl_config.h
 CONFIG_CLEAN_FILES = isl_srcdir.c bound_test.sh codegen_test.sh \
-	pip_test.sh flow_test.sh
+	pip_test.sh flow_test.sh schedule_test.sh
 CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -324,6 +326,13 @@ isl_schedule_DEPENDENCIES = libisl.la
 isl_schedule_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(isl_schedule_LDFLAGS) $(LDFLAGS) -o $@
+am_isl_schedule_cmp_OBJECTS = schedule_cmp.$(OBJEXT)
+isl_schedule_cmp_OBJECTS = $(am_isl_schedule_cmp_OBJECTS)
+isl_schedule_cmp_DEPENDENCIES = libisl.la
+isl_schedule_cmp_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(AM_CFLAGS) $(CFLAGS) $(isl_schedule_cmp_LDFLAGS) $(LDFLAGS) \
+	-o $@
 isl_test_SOURCES = isl_test.c
 isl_test_OBJECTS = isl_test.$(OBJEXT)
 isl_test_DEPENDENCIES = libisl.la
@@ -383,8 +392,8 @@ SOURCES = $(libisl_la_SOURCES) $(isl_bou
 	$(isl_polyhedron_detect_equalities_SOURCES) \
 	$(isl_polyhedron_minimize_SOURCES) \
 	$(isl_polyhedron_sample_SOURCES) $(isl_polytope_scan_SOURCES) \
-	$(isl_schedule_SOURCES) isl_test.c isl_test_imath.c \
-	isl_test_int.c
+	$(isl_schedule_SOURCES) $(isl_schedule_cmp_SOURCES) isl_test.c \
+	isl_test_imath.c isl_test_int.c
 DIST_SOURCES = $(am__libisl_la_SOURCES_DIST) $(isl_bound_SOURCES) \
 	$(isl_cat_SOURCES) $(isl_closure_SOURCES) \
 	$(isl_codegen_SOURCES) $(isl_flow_SOURCES) \
@@ -392,8 +401,8 @@ DIST_SOURCES = $(am__libisl_la_SOURCES_D
 	$(isl_polyhedron_detect_equalities_SOURCES) \
 	$(isl_polyhedron_minimize_SOURCES) \
 	$(isl_polyhedron_sample_SOURCES) $(isl_polytope_scan_SOURCES) \
-	$(isl_schedule_SOURCES) isl_test.c isl_test_imath.c \
-	isl_test_int.c
+	$(isl_schedule_SOURCES) $(isl_schedule_cmp_SOURCES) isl_test.c \
+	isl_test_imath.c isl_test_int.c
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
 	ctags-recursive dvi-recursive html-recursive info-recursive \
 	install-data-recursive install-dvi-recursive \
@@ -642,9 +651,9 @@ TEST_LOG_COMPILE = $(TEST_LOG_COMPILER)
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/bound_test.sh.in \
 	$(srcdir)/codegen_test.sh.in $(srcdir)/flow_test.sh.in \
 	$(srcdir)/isl_config.h.in $(srcdir)/isl_srcdir.c.in \
-	$(srcdir)/pip_test.sh.in AUTHORS ChangeLog README compile \
-	config.guess config.sub depcomp install-sh ltmain.sh missing \
-	test-driver
+	$(srcdir)/pip_test.sh.in $(srcdir)/schedule_test.sh.in AUTHORS \
+	ChangeLog README compile config.guess config.sub depcomp \
+	install-sh ltmain.sh missing test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -1008,6 +1017,11 @@ isl_schedule_LDADD = libisl.la @MP_LIBS@
 isl_schedule_SOURCES = \
 	schedule.c
 
+isl_schedule_cmp_LDFLAGS = @MP_LDFLAGS@
+isl_schedule_cmp_LDADD = libisl.la @MP_LIBS@
+isl_schedule_cmp_SOURCES = \
+	schedule_cmp.c
+
 isl_flow_LDFLAGS = @MP_LDFLAGS@
 isl_flow_LDADD = libisl.la @MP_LIBS@
 isl_flow_SOURCES = \
@@ -1261,6 +1275,8 @@ pip_test.sh: $(top_builddir)/config.stat
 	cd $(top_builddir) && $(SHELL) ./config.status $@
 flow_test.sh: $(top_builddir)/config.status $(srcdir)/flow_test.sh.in
 	cd $(top_builddir) && $(SHELL) ./config.status $@
+schedule_test.sh: $(top_builddir)/config.status $(srcdir)/schedule_test.sh.in
+	cd $(top_builddir) && $(SHELL) ./config.status $@
 
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
@@ -1369,6 +1385,10 @@ isl_schedule$(EXEEXT): $(isl_schedule_OB
 	@rm -f isl_schedule$(EXEEXT)
 	$(AM_V_CCLD)$(isl_schedule_LINK) $(isl_schedule_OBJECTS) $(isl_schedule_LDADD) $(LIBS)
 
+isl_schedule_cmp$(EXEEXT): $(isl_schedule_cmp_OBJECTS) $(isl_schedule_cmp_DEPENDENCIES) $(EXTRA_isl_schedule_cmp_DEPENDENCIES) 
+	@rm -f isl_schedule_cmp$(EXEEXT)
+	$(AM_V_CCLD)$(isl_schedule_cmp_LINK) $(isl_schedule_cmp_OBJECTS) $(isl_schedule_cmp_LDADD) $(LIBS)
+
 isl_test$(EXEEXT): $(isl_test_OBJECTS) $(isl_test_DEPENDENCIES) $(EXTRA_isl_test_DEPENDENCIES) 
 	@rm -f isl_test$(EXEEXT)
 	$(AM_V_CCLD)$(isl_test_LINK) $(isl_test_OBJECTS) $(isl_test_LDADD) $(LIBS)
@@ -1486,6 +1506,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/polytope_scan.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/print.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/schedule.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/schedule_cmp.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at imath_wrap/$(DEPDIR)/gmp_compat.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at imath_wrap/$(DEPDIR)/imath.Plo at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at imath_wrap/$(DEPDIR)/imrat.Plo at am__quote@
@@ -1896,6 +1917,13 @@ flow_test.sh.log: flow_test.sh
 	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
+schedule_test.sh.log: schedule_test.sh
+	@p='schedule_test.sh'; \
+	b='schedule_test.sh'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
 isl_test_imath.log: isl_test_imath$(EXEEXT)
 	@p='isl_test_imath$(EXEEXT)'; \

Modified: polly/trunk/lib/External/isl/configure
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/configure?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/configure (original)
+++ polly/trunk/lib/External/isl/configure Tue Aug  1 12:37:50 2017
@@ -198,6 +198,7 @@ test -x / || exit 1"
   as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
   eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
   test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
 
   test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
     ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
@@ -205,8 +206,7 @@ test -x / || exit 1"
     ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
     PATH=/empty FPATH=/empty; export PATH FPATH
     test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
+      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
   if (eval "$as_required") 2>/dev/null; then :
   as_have_required=yes
 else
@@ -687,9 +687,9 @@ DUMPBIN
 LD
 FGREP
 EGREP
-GREP
 SED
 LIBTOOL
+GREP
 HAVE_CXX11
 CXX11FLAGS
 PRTDIAG
@@ -6601,6 +6601,69 @@ CXX11FLAGS=${CXX#$ac_save_CXX}
 CXX="$ac_save_CXX"
 CXXCPP="$ac_save_CXXCPP"
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
 case `pwd` in
   *\ * | *\	*)
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -6777,69 +6840,6 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
 if ${ac_cv_path_EGREP+:} false; then :
@@ -17943,6 +17943,75 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 # Only expand once:
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+     for ac_i in 1 2 3 4 5 6 7; do
+       ac_script="$ac_script$as_nl$ac_script"
+     done
+     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+     { ac_script=; unset ac_script;}
+     if test -z "$SED"; then
+  ac_path_SED_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+  # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo '' >> "conftest.nl"
+    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_SED_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_SED="$ac_path_SED"
+      ac_path_SED_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_SED_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_SED"; then
+    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+  fi
+else
+  ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+  rm -f conftest.sed
+
 
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
@@ -20023,6 +20092,8 @@ ac_config_files="$ac_config_files pip_te
 
 ac_config_files="$ac_config_files flow_test.sh"
 
+ac_config_files="$ac_config_files schedule_test.sh"
+
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -21219,6 +21290,7 @@ do
     "codegen_test.sh") CONFIG_FILES="$CONFIG_FILES codegen_test.sh" ;;
     "pip_test.sh") CONFIG_FILES="$CONFIG_FILES pip_test.sh" ;;
     "flow_test.sh") CONFIG_FILES="$CONFIG_FILES flow_test.sh" ;;
+    "schedule_test.sh") CONFIG_FILES="$CONFIG_FILES schedule_test.sh" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
@@ -23221,6 +23293,7 @@ fi ; rm conftest.sed # DONE generate $pk
     "codegen_test.sh":F) chmod +x codegen_test.sh ;;
     "pip_test.sh":F) chmod +x pip_test.sh ;;
     "flow_test.sh":F) chmod +x flow_test.sh ;;
+    "schedule_test.sh":F) chmod +x schedule_test.sh ;;
 
   esac
 done # for ac_tag

Modified: polly/trunk/lib/External/isl/configure.ac
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/configure.ac?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/configure.ac (original)
+++ polly/trunk/lib/External/isl/configure.ac Tue Aug  1 12:37:50 2017
@@ -36,7 +36,9 @@ CXX11FLAGS=${CXX#$ac_save_CXX}
 CXX="$ac_save_CXX"
 CXXCPP="$ac_save_CXXCPP"
 
+AC_PROG_GREP
 AC_PROG_LIBTOOL
+AC_PROG_SED
 
 AC_CHECK_PROG(PERL, perl, perl, [])
 AC_CHECK_PROG(PDFLATEX, pdflatex, pdflatex, [])
@@ -138,6 +140,7 @@ AC_CONFIG_FILES([bound_test.sh], [chmod
 AC_CONFIG_FILES([codegen_test.sh], [chmod +x codegen_test.sh])
 AC_CONFIG_FILES([pip_test.sh], [chmod +x pip_test.sh])
 AC_CONFIG_FILES([flow_test.sh], [chmod +x flow_test.sh])
+AC_CONFIG_FILES([schedule_test.sh], [chmod +x schedule_test.sh])
 AC_CONFIG_COMMANDS_POST([
 	dnl pass on arguments to subdir configures, but don't
 	dnl add them to config.status

Modified: polly/trunk/lib/External/isl/doc/user.pod
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/doc/user.pod?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/doc/user.pod (original)
+++ polly/trunk/lib/External/isl/doc/user.pod Tue Aug  1 12:37:50 2017
@@ -721,6 +721,11 @@ The following binary properties are defi
 	isl_bool isl_val_abs_eq(__isl_keep isl_val *v1,
 		__isl_keep isl_val *v2);
 
+Comparisons to NaN always return false.
+That is, a NaN is not considered to hold any relative position
+with respect to any value.  In particular, a NaN
+is neither considered to be equal to nor to be different from
+any value (including another NaN).
 The function C<isl_val_abs_eq> checks whether its two arguments
 are equal in absolute value.
 

Modified: polly/trunk/lib/External/isl/isl_flow.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_flow.c?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_flow.c (original)
+++ polly/trunk/lib/External/isl/isl_flow.c Tue Aug  1 12:37:50 2017
@@ -366,7 +366,6 @@ static int access_sort_cmp(const void *p
 error:
 	sort_info->error = 1;
 	return 0;
-
 }
 
 /* Sort the must source accesses in their textual order.
@@ -721,30 +720,30 @@ static int can_precede_at_level(int shar
  * If temp_rel[j] is empty, then there can be no improvement and
  * we return immediately.
  *
- * This function returns 0 in case it was executed successfully and
- * -1 in case of errors during the execution of this function.
+ * This function returns isl_stat_ok in case it was executed successfully and
+ * isl_stat_error in case of errors during the execution of this function.
  */
-static int intermediate_sources(__isl_keep isl_access_info *acc,
+static isl_stat intermediate_sources(__isl_keep isl_access_info *acc,
 	struct isl_map **temp_rel, int j, int sink_level)
 {
 	int k, level;
 	int depth = 2 * isl_map_dim(acc->source[j].map, isl_dim_in) + 1;
 
 	if (isl_map_plain_is_empty(temp_rel[j]))
-		return 0;
+		return isl_stat_ok;
 
 	for (k = j - 1; k >= 0; --k) {
 		int plevel, plevel2;
 		plevel = acc->level_before(acc->source[k].data, acc->sink.data);
 		if (plevel < 0)
-			return -1;
+			return isl_stat_error;
 		if (!can_precede_at_level(plevel, sink_level))
 			continue;
 
 		plevel2 = acc->level_before(acc->source[j].data,
 						acc->source[k].data);
 		if (plevel2 < 0)
-			return -1;
+			return isl_stat_error;
 
 		for (level = sink_level; level <= depth; ++level) {
 			struct isl_map *T;
@@ -767,7 +766,7 @@ static int intermediate_sources(__isl_ke
 		}
 	}
 
-	return 0;
+	return isl_stat_ok;
 }
 
 /* Compute all iterations of may source j that precedes the sink at the given
@@ -1180,14 +1179,14 @@ static __isl_give isl_flow *compute_val_
 			must_rel[j] = isl_map_union_disjoint(must_rel[j], T);
 			mustdo = rest;
 
-			if (intermediate_sources(acc, must_rel, j, level))
+			if (intermediate_sources(acc, must_rel, j, level) < 0)
 				goto error;
 
 			T = last_source(acc, maydo, j, level, &rest);
 			may_rel[j] = isl_map_union_disjoint(may_rel[j], T);
 			maydo = rest;
 
-			if (intermediate_sources(acc, may_rel, j, level))
+			if (intermediate_sources(acc, may_rel, j, level) < 0)
 				goto error;
 
 			if (isl_set_plain_is_empty(mustdo) &&
@@ -1204,9 +1203,9 @@ static __isl_give isl_flow *compute_val_
 			if (!can_precede_at_level(plevel, level))
 				continue;
 
-			if (intermediate_sources(acc, must_rel, j, level))
+			if (intermediate_sources(acc, must_rel, j, level) < 0)
 				goto error;
-			if (intermediate_sources(acc, may_rel, j, level))
+			if (intermediate_sources(acc, may_rel, j, level) < 0)
 				goto error;
 		}
 

Modified: polly/trunk/lib/External/isl/isl_scheduler.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/isl_scheduler.c?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/isl_scheduler.c (original)
+++ polly/trunk/lib/External/isl/isl_scheduler.c Tue Aug  1 12:37:50 2017
@@ -308,8 +308,9 @@ static int is_conditional_validity(struc
  *	rows in the node schedules
  * n_total_row is the current number of rows in the node schedules
  * band_start is the starting row in the node schedules of the current band
- * root is set if this graph is the original dependence graph,
- *	without any splitting
+ * root is set to the the original dependence graph from which this graph
+ *	is derived through splitting.  If this graph is not the result of
+ *	splitting, then the root field points to the graph itself.
  *
  * sorted contains a list of node indices sorted according to the
  *	SCC to which a node belongs
@@ -357,7 +358,7 @@ struct isl_sched_graph {
 	int n_total_row;
 	int band_start;
 
-	int root;
+	struct isl_sched_graph *root;
 
 	struct isl_sched_edge *edge;
 	int n_edge;
@@ -420,6 +421,14 @@ static struct isl_sched_node *graph_find
 	return entry ? entry->data : NULL;
 }
 
+/* Is "node" a node in "graph"?
+ */
+static int is_node(struct isl_sched_graph *graph,
+	struct isl_sched_node *node)
+{
+	return node && node >= &graph->node[0] && node < &graph->node[graph->n];
+}
+
 static int edge_has_src_and_dst(const void *entry, const void *val)
 {
 	const struct isl_sched_edge *edge = entry;
@@ -660,7 +669,7 @@ static void graph_free(isl_ctx *ctx, str
 			isl_map_free(graph->node[i].sched_map);
 			isl_mat_free(graph->node[i].indep);
 			isl_mat_free(graph->node[i].vmap);
-			if (graph->root)
+			if (graph->root == graph)
 				free(graph->node[i].coincident);
 			isl_multi_val_free(graph->node[i].sizes);
 			isl_basic_set_free(graph->node[i].bounds);
@@ -1321,7 +1330,7 @@ static isl_stat graph_init(struct isl_sc
 
 	if (compute_max_row(graph, sc) < 0)
 		return isl_stat_error;
-	graph->root = 1;
+	graph->root = graph;
 	graph->n = 0;
 	domain = isl_schedule_constraints_get_domain(sc);
 	domain = isl_union_set_intersect_params(domain,
@@ -3502,6 +3511,7 @@ static int extract_sub_graph(isl_ctx *ct
 			++n_edge;
 	if (graph_alloc(ctx, sub, n, n_edge) < 0)
 		return -1;
+	sub->root = graph->root;
 	if (copy_nodes(sub, graph, node_pred, data) < 0)
 		return -1;
 	if (graph_init_table(ctx, sub) < 0)
@@ -3864,6 +3874,10 @@ static void isl_carry_clear(struct isl_c
  * If so, return that node.
  * Otherwise, "space" was constructed by construct_compressed_id and
  * contains a user pointer pointing to the node in the tuple id.
+ * However, this node belongs to the original dependence graph.
+ * If "graph" is a subgraph of this original dependence graph,
+ * then the node with the same space still needs to be looked up
+ * in the current graph.
  */
 static struct isl_sched_node *graph_find_compressed_node(isl_ctx *ctx,
 	struct isl_sched_graph *graph, __isl_keep isl_space *space)
@@ -3885,9 +3899,11 @@ static struct isl_sched_node *graph_find
 	if (!node)
 		return NULL;
 
-	if (!(node >= &graph->node[0] && node < &graph->node[graph->n]))
+	if (!is_node(graph->root, node))
 		isl_die(ctx, isl_error_internal,
 			"space points to invalid node", return NULL);
+	if (graph != graph->root)
+		node = graph_find_node(ctx, graph, node->space);
 
 	return node;
 }

Modified: polly/trunk/lib/External/isl/schedule.c
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/External/isl/schedule.c?rev=309727&r1=309726&r2=309727&view=diff
==============================================================================
--- polly/trunk/lib/External/isl/schedule.c (original)
+++ polly/trunk/lib/External/isl/schedule.c Tue Aug  1 12:37:50 2017
@@ -10,6 +10,7 @@
  * prints a schedule that satisfies those constraints.
  */
 
+#include <stdlib.h>
 #include <isl/options.h>
 #include <isl/schedule.h>
 
@@ -37,5 +38,5 @@ int main(int argc, char **argv)
 
 	isl_ctx_free(ctx);
 
-	return 0;
+	return p ? EXIT_SUCCESS : EXIT_FAILURE;
 }




More information about the llvm-commits mailing list