diff options
| author | Tobias Grosser <tobias@grosser.es> | 2017-08-01 19:37:50 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2017-08-01 19:37:50 +0000 |
| commit | e327eebccb4c6a92bfb22d2ac383691f7e988235 (patch) | |
| tree | 85500ed73b4f46ef00174f2a6ed34b7d0bf2fd33 /polly/lib/External | |
| parent | f73a10d2df5df39f63685aaf48e134e18cbfea6e (diff) | |
| download | bcm5719-llvm-e327eebccb4c6a92bfb22d2ac383691f7e988235.tar.gz bcm5719-llvm-e327eebccb4c6a92bfb22d2ac383691f7e988235.zip | |
Update to isl-0.18-809-gd5b4535
This fixes some undefined behavior in the isl schedule tree code.
llvm-svn: 309727
Diffstat (limited to 'polly/lib/External')
| -rw-r--r-- | polly/lib/External/isl/GIT_HEAD_ID | 2 | ||||
| -rw-r--r-- | polly/lib/External/isl/Makefile.am | 9 | ||||
| -rw-r--r-- | polly/lib/External/isl/Makefile.in | 48 | ||||
| -rwxr-xr-x | polly/lib/External/isl/configure | 205 | ||||
| -rw-r--r-- | polly/lib/External/isl/configure.ac | 3 | ||||
| -rw-r--r-- | polly/lib/External/isl/doc/user.pod | 5 | ||||
| -rw-r--r-- | polly/lib/External/isl/isl_flow.c | 23 | ||||
| -rw-r--r-- | polly/lib/External/isl/isl_scheduler.c | 28 | ||||
| -rw-r--r-- | polly/lib/External/isl/schedule.c | 3 |
9 files changed, 228 insertions, 98 deletions
diff --git a/polly/lib/External/isl/GIT_HEAD_ID b/polly/lib/External/isl/GIT_HEAD_ID index 1501c6a37f8..0594cbdd66c 100644 --- a/polly/lib/External/isl/GIT_HEAD_ID +++ b/polly/lib/External/isl/GIT_HEAD_ID @@ -1 +1 @@ -isl-0.18-800-g4018f45 +isl-0.18-809-gd5b4535 diff --git a/polly/lib/External/isl/Makefile.am b/polly/lib/External/isl/Makefile.am index 934ff8d8742..4000277d3d4 100644 --- a/polly/lib/External/isl/Makefile.am +++ b/polly/lib/External/isl/Makefile.am @@ -12,9 +12,9 @@ noinst_PROGRAMS = isl_test isl_polyhedron_sample isl_pip \ 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 = \ diff --git a/polly/lib/External/isl/Makefile.in b/polly/lib/External/isl/Makefile.in index 88c9e05b889..3ea3a2fda0c 100644 --- a/polly/lib/External/isl/Makefile.in +++ b/polly/lib/External/isl/Makefile.in @@ -97,9 +97,11 @@ noinst_PROGRAMS = isl_test$(EXEEXT) isl_polyhedron_sample$(EXEEXT) \ 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@am__append_1 = isl_test_imath @IMATH_FOR_MP_TRUE@am__append_2 = isl_test_imath @IMATH_FOR_MP_TRUE@@SMALL_INT_OPT_TRUE@am__append_3 = isl_int_sioimath.h \ @@ -139,7 +141,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 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_bound_SOURCES) $(isl_cat_SOURCES) \ $(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_DIST) $(isl_bound_SOURCES) \ $(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_TEST_LOG_FLAGS) \ 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.status $(srcdir)/pip_test.sh.in 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_OBJECTS) $(isl_schedule_DEPENDENCIES) $(EX @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@./$(DEPDIR)/polytope_scan.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schedule.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/schedule_cmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@imath_wrap/$(DEPDIR)/gmp_compat.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@imath_wrap/$(DEPDIR)/imath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@imath_wrap/$(DEPDIR)/imrat.Plo@am__quote@ @@ -1897,6 +1918,13 @@ flow_test.sh.log: flow_test.sh --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)'; \ b='isl_test_imath'; \ diff --git a/polly/lib/External/isl/configure b/polly/lib/External/isl/configure index fae3b4b9f58..d208abcf80d 100755 --- a/polly/lib/External/isl/configure +++ b/polly/lib/External/isl/configure @@ -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_test.sh" 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 $pkgconfig_uninstalled "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 diff --git a/polly/lib/External/isl/configure.ac b/polly/lib/External/isl/configure.ac index 2a4f160d701..5de7b5aa4b8 100644 --- a/polly/lib/External/isl/configure.ac +++ b/polly/lib/External/isl/configure.ac @@ -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 +x bound_test.sh]) 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 diff --git a/polly/lib/External/isl/doc/user.pod b/polly/lib/External/isl/doc/user.pod index 88cb4f7723b..760fcbf80da 100644 --- a/polly/lib/External/isl/doc/user.pod +++ b/polly/lib/External/isl/doc/user.pod @@ -721,6 +721,11 @@ The following binary properties are defined on pairs of C<isl_val>s. 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. diff --git a/polly/lib/External/isl/isl_flow.c b/polly/lib/External/isl/isl_flow.c index 21872b2e1a2..37a29b0d9c6 100644 --- a/polly/lib/External/isl/isl_flow.c +++ b/polly/lib/External/isl/isl_flow.c @@ -366,7 +366,6 @@ static int access_sort_cmp(const void *p1, const void *p2, void *user) 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 shared_level, int target_level) * 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_keep isl_access_info *acc, } } - 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_based_dependences( 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_based_dependences( 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; } diff --git a/polly/lib/External/isl/isl_scheduler.c b/polly/lib/External/isl/isl_scheduler.c index b89fa1ee194..9a93c30711c 100644 --- a/polly/lib/External/isl/isl_scheduler.c +++ b/polly/lib/External/isl/isl_scheduler.c @@ -308,8 +308,9 @@ static int is_conditional_validity(struct isl_sched_edge *edge) * 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_node(isl_ctx *ctx, 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, struct isl_sched_graph *graph) 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_sched_graph *graph, 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 *ctx, struct isl_sched_graph *graph, ++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_carry *carry) * 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_compressed_node(isl_ctx *ctx, 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; } diff --git a/polly/lib/External/isl/schedule.c b/polly/lib/External/isl/schedule.c index 797f086efe0..2373914c1e4 100644 --- a/polly/lib/External/isl/schedule.c +++ b/polly/lib/External/isl/schedule.c @@ -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; } |

