forked from OSchip/llvm-project
Update to isl-0.17.1-314-g3106e8d
This version includes an update for imath (isl-0.17.1-49-g2f1c129). It fixes the compilation under windows, which does not know ssize_t. In addition, isl-0.17.1-288-g0500299 changed the way isl_test finds the source directory. It now generates a file isl_srcdir.c at configure-time, containing the source path, to not require setting the environment variable "srcdir" at test-time. The cmake build system had to be modified to also generate that file. llvm-svn: 288811
This commit is contained in:
parent
21765cb15e
commit
1b8eb4104b
|
@ -165,6 +165,7 @@ configure_file("${ISL_BINARY_DIR}/include/isl/stdint.h.tmp"
|
|||
"${ISL_BINARY_DIR}/include/isl/stdint.h" COPYONLY)
|
||||
|
||||
configure_file("isl_config.h.cmake" "${ISL_BINARY_DIR}/isl_config.h")
|
||||
configure_file("isl_srcdir.c.cmake" "${ISL_BINARY_DIR}/isl_srcdir.c")
|
||||
|
||||
include_directories(BEFORE
|
||||
${ISL_BINARY_DIR}
|
||||
|
|
|
@ -1 +1 @@
|
|||
isl-0.17.1-284-gbb38638
|
||||
isl-0.17.1-314-g3106e8d
|
||||
|
|
|
@ -134,7 +134,8 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
|||
configure.lineno config.status.lineno
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = isl_config.h
|
||||
CONFIG_CLEAN_FILES = bound_test.sh codegen_test.sh pip_test.sh
|
||||
CONFIG_CLEAN_FILES = isl_srcdir.c bound_test.sh codegen_test.sh \
|
||||
pip_test.sh
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
|
@ -622,9 +623,9 @@ TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
|||
$(TEST_LOG_FLAGS)
|
||||
am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/bound_test.sh.in \
|
||||
$(srcdir)/codegen_test.sh.in $(srcdir)/isl_config.h.in \
|
||||
$(srcdir)/pip_test.sh.in AUTHORS ChangeLog README compile \
|
||||
config.guess config.sub depcomp install-sh ltmain.sh missing \
|
||||
test-driver
|
||||
$(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
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
|
@ -1215,6 +1216,8 @@ $(srcdir)/isl_config.h.in: $(am__configure_deps)
|
|||
|
||||
distclean-hdr:
|
||||
-rm -f isl_config.h stamp-h1
|
||||
isl_srcdir.c: $(top_builddir)/config.status $(srcdir)/isl_srcdir.c.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
bound_test.sh: $(top_builddir)/config.status $(srcdir)/bound_test.sh.in
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||
codegen_test.sh: $(top_builddir)/config.status $(srcdir)/codegen_test.sh.in
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
EXEEXT=@EXEEXT@
|
||||
srcdir=@srcdir@
|
||||
|
||||
BOUND_TESTS="\
|
||||
basicLinear2.pwqp \
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
# Attempt to guess a canonical system name.
|
||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2015 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2016-04-02'
|
||||
timestamp='2015-08-20'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -27,7 +27,7 @@ timestamp='2016-04-02'
|
|||
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
|
||||
#
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||
#
|
||||
# Please send patches to <config-patches@gnu.org>.
|
||||
|
||||
|
@ -50,7 +50,7 @@ version="\
|
|||
GNU config.guess ($timestamp)
|
||||
|
||||
Originally written by Per Bothner.
|
||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
Copyright 1992-2015 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
@ -237,10 +237,6 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:LibertyBSD:*:*)
|
||||
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
|
||||
echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
*:ekkoBSD:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
|
||||
exit ;;
|
||||
|
@ -272,42 +268,42 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
|
||||
case "$ALPHA_CPU_TYPE" in
|
||||
"EV4 (21064)")
|
||||
UNAME_MACHINE=alpha ;;
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"EV4.5 (21064)")
|
||||
UNAME_MACHINE=alpha ;;
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"LCA4 (21066/21068)")
|
||||
UNAME_MACHINE=alpha ;;
|
||||
UNAME_MACHINE="alpha" ;;
|
||||
"EV5 (21164)")
|
||||
UNAME_MACHINE=alphaev5 ;;
|
||||
UNAME_MACHINE="alphaev5" ;;
|
||||
"EV5.6 (21164A)")
|
||||
UNAME_MACHINE=alphaev56 ;;
|
||||
UNAME_MACHINE="alphaev56" ;;
|
||||
"EV5.6 (21164PC)")
|
||||
UNAME_MACHINE=alphapca56 ;;
|
||||
UNAME_MACHINE="alphapca56" ;;
|
||||
"EV5.7 (21164PC)")
|
||||
UNAME_MACHINE=alphapca57 ;;
|
||||
UNAME_MACHINE="alphapca57" ;;
|
||||
"EV6 (21264)")
|
||||
UNAME_MACHINE=alphaev6 ;;
|
||||
UNAME_MACHINE="alphaev6" ;;
|
||||
"EV6.7 (21264A)")
|
||||
UNAME_MACHINE=alphaev67 ;;
|
||||
UNAME_MACHINE="alphaev67" ;;
|
||||
"EV6.8CB (21264C)")
|
||||
UNAME_MACHINE=alphaev68 ;;
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.8AL (21264B)")
|
||||
UNAME_MACHINE=alphaev68 ;;
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.8CX (21264D)")
|
||||
UNAME_MACHINE=alphaev68 ;;
|
||||
UNAME_MACHINE="alphaev68" ;;
|
||||
"EV6.9A (21264/EV69A)")
|
||||
UNAME_MACHINE=alphaev69 ;;
|
||||
UNAME_MACHINE="alphaev69" ;;
|
||||
"EV7 (21364)")
|
||||
UNAME_MACHINE=alphaev7 ;;
|
||||
UNAME_MACHINE="alphaev7" ;;
|
||||
"EV7.9 (21364A)")
|
||||
UNAME_MACHINE=alphaev79 ;;
|
||||
UNAME_MACHINE="alphaev79" ;;
|
||||
esac
|
||||
# A Pn.n version is a patched version.
|
||||
# A Vn.n version is a released version.
|
||||
# A Tn.n version is a released field test version.
|
||||
# A Xn.n version is an unreleased experimental baselevel.
|
||||
# 1.2 uses "1.2" for uname -r.
|
||||
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
|
||||
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
|
||||
exitcode=$?
|
||||
trap '' 0
|
||||
|
@ -380,16 +376,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
exit ;;
|
||||
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||
eval $set_cc_for_build
|
||||
SUN_ARCH=i386
|
||||
SUN_ARCH="i386"
|
||||
# If there is a compiler, see if it is configured for 64-bit objects.
|
||||
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
||||
# This test works for both compilers.
|
||||
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
|
||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
SUN_ARCH=x86_64
|
||||
SUN_ARCH="x86_64"
|
||||
fi
|
||||
fi
|
||||
echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
|
||||
|
@ -414,7 +410,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||
exit ;;
|
||||
sun*:*:4.2BSD:*)
|
||||
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||
test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
|
||||
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
|
||||
case "`/bin/arch`" in
|
||||
sun3)
|
||||
echo m68k-sun-sunos${UNAME_RELEASE}
|
||||
|
@ -639,13 +635,13 @@ EOF
|
|||
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||
case "${sc_cpu_version}" in
|
||||
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
|
||||
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||
532) # CPU_PA_RISC2_0
|
||||
case "${sc_kernel_bits}" in
|
||||
32) HP_ARCH=hppa2.0n ;;
|
||||
64) HP_ARCH=hppa2.0w ;;
|
||||
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
|
||||
32) HP_ARCH="hppa2.0n" ;;
|
||||
64) HP_ARCH="hppa2.0w" ;;
|
||||
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
|
||||
esac ;;
|
||||
esac
|
||||
fi
|
||||
|
@ -684,11 +680,11 @@ EOF
|
|||
exit (0);
|
||||
}
|
||||
EOF
|
||||
(CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
||||
(CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
|
||||
test -z "$HP_ARCH" && HP_ARCH=hppa
|
||||
fi ;;
|
||||
esac
|
||||
if [ ${HP_ARCH} = hppa2.0w ]
|
||||
if [ ${HP_ARCH} = "hppa2.0w" ]
|
||||
then
|
||||
eval $set_cc_for_build
|
||||
|
||||
|
@ -701,12 +697,12 @@ EOF
|
|||
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
|
||||
# => hppa64-hp-hpux11.23
|
||||
|
||||
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||
if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||
grep -q __LP64__
|
||||
then
|
||||
HP_ARCH=hppa2.0w
|
||||
HP_ARCH="hppa2.0w"
|
||||
else
|
||||
HP_ARCH=hppa64
|
||||
HP_ARCH="hppa64"
|
||||
fi
|
||||
fi
|
||||
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
||||
|
@ -811,14 +807,14 @@ EOF
|
|||
echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||
exit ;;
|
||||
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
|
||||
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
|
||||
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
5000:UNIX_System_V:4.*:*)
|
||||
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
|
||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
|
||||
echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||
exit ;;
|
||||
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||
|
@ -900,7 +896,7 @@ EOF
|
|||
exit ;;
|
||||
*:GNU/*:*:*)
|
||||
# other systems with GNU libc and userland
|
||||
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
|
||||
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
|
||||
exit ;;
|
||||
i*86:Minix:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-minix
|
||||
|
@ -923,7 +919,7 @@ EOF
|
|||
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||
esac
|
||||
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
|
||||
if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
|
||||
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||
exit ;;
|
||||
arc:Linux:*:* | arceb:Linux:*:*)
|
||||
|
@ -969,9 +965,6 @@ EOF
|
|||
ia64:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||
exit ;;
|
||||
k1om:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||
exit ;;
|
||||
m32r*:Linux:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
|
||||
exit ;;
|
||||
|
@ -1127,7 +1120,7 @@ EOF
|
|||
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||
# the processor, so we play safe by assuming i586.
|
||||
# Note: whatever this is, it MUST be the same as what config.sub
|
||||
# prints for the "djgpp" host, or else GDB configure will decide that
|
||||
# prints for the "djgpp" host, or else GDB configury will decide that
|
||||
# this is a cross-build.
|
||||
echo i586-pc-msdosdjgpp
|
||||
exit ;;
|
||||
|
@ -1276,9 +1269,6 @@ EOF
|
|||
SX-8R:SUPER-UX:*:*)
|
||||
echo sx8r-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
SX-ACE:SUPER-UX:*:*)
|
||||
echo sxace-nec-superux${UNAME_RELEASE}
|
||||
exit ;;
|
||||
Power*:Rhapsody:*:*)
|
||||
echo powerpc-apple-rhapsody${UNAME_RELEASE}
|
||||
exit ;;
|
||||
|
@ -1292,9 +1282,9 @@ EOF
|
|||
UNAME_PROCESSOR=powerpc
|
||||
fi
|
||||
if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
|
||||
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
|
||||
if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
|
||||
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||
grep IS_64BIT_ARCH >/dev/null
|
||||
then
|
||||
case $UNAME_PROCESSOR in
|
||||
|
@ -1316,7 +1306,7 @@ EOF
|
|||
exit ;;
|
||||
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||
UNAME_PROCESSOR=`uname -p`
|
||||
if test "$UNAME_PROCESSOR" = x86; then
|
||||
if test "$UNAME_PROCESSOR" = "x86"; then
|
||||
UNAME_PROCESSOR=i386
|
||||
UNAME_MACHINE=pc
|
||||
fi
|
||||
|
@ -1347,7 +1337,7 @@ EOF
|
|||
# "uname -m" is not consistent, so use $cputype instead. 386
|
||||
# is converted to i386 for consistency with other x86
|
||||
# operating systems.
|
||||
if test "$cputype" = 386; then
|
||||
if test "$cputype" = "386"; then
|
||||
UNAME_MACHINE=i386
|
||||
else
|
||||
UNAME_MACHINE="$cputype"
|
||||
|
@ -1389,7 +1379,7 @@ EOF
|
|||
echo i386-pc-xenix
|
||||
exit ;;
|
||||
i*86:skyos:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
|
||||
echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
|
||||
exit ;;
|
||||
i*86:rdos:*:*)
|
||||
echo ${UNAME_MACHINE}-pc-rdos
|
||||
|
@ -1400,9 +1390,6 @@ EOF
|
|||
x86_64:VMkernel:*:*)
|
||||
echo ${UNAME_MACHINE}-unknown-esx
|
||||
exit ;;
|
||||
amd64:Isilon\ OneFS:*:*)
|
||||
echo x86_64-unknown-onefs
|
||||
exit ;;
|
||||
esac
|
||||
|
||||
cat >&2 <<EOF
|
||||
|
@ -1412,9 +1399,9 @@ This script, last modified $timestamp, has failed to recognize
|
|||
the operating system you are using. It is advised that you
|
||||
download the most up to date version of the config scripts from
|
||||
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
|
||||
and
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
|
||||
If the version you run ($0) is already up to date, please
|
||||
send the following data and any information you think might be
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#! /bin/sh
|
||||
# Configuration validation subroutine script.
|
||||
# Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
# Copyright 1992-2015 Free Software Foundation, Inc.
|
||||
|
||||
timestamp='2016-03-30'
|
||||
timestamp='2015-08-20'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
|
@ -33,7 +33,7 @@ timestamp='2016-03-30'
|
|||
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||
|
||||
# You can get the latest version of this script from:
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
|
||||
# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
|
||||
|
||||
# This file is supposed to be the same for all GNU packages
|
||||
# and recognize all the CPU types, system types and aliases
|
||||
|
@ -53,7 +53,8 @@ timestamp='2016-03-30'
|
|||
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||
|
||||
usage="\
|
||||
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
||||
Usage: $0 [OPTION] CPU-MFR-OPSYS
|
||||
$0 [OPTION] ALIAS
|
||||
|
||||
Canonicalize a configuration name.
|
||||
|
||||
|
@ -67,7 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
|
|||
version="\
|
||||
GNU config.sub ($timestamp)
|
||||
|
||||
Copyright 1992-2016 Free Software Foundation, Inc.
|
||||
Copyright 1992-2015 Free Software Foundation, Inc.
|
||||
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||
|
@ -520,7 +521,7 @@ case $basic_machine in
|
|||
basic_machine=i386-pc
|
||||
os=-aros
|
||||
;;
|
||||
asmjs)
|
||||
asmjs)
|
||||
basic_machine=asmjs-unknown
|
||||
;;
|
||||
aux)
|
||||
|
@ -1382,7 +1383,7 @@ case $os in
|
|||
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
|
||||
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
|
||||
| -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
|
||||
| -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
|
||||
| -bitrig* | -openbsd* | -solidbsd* \
|
||||
| -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
|
||||
| -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
|
||||
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
|
||||
|
@ -1398,8 +1399,7 @@ case $os in
|
|||
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
|
||||
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
|
||||
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
|
||||
| -onefs* | -tirtos*)
|
||||
| -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
|
||||
# Remember, each alternative MUST END IN *, to match a version number.
|
||||
;;
|
||||
-qnx*)
|
||||
|
@ -1531,8 +1531,6 @@ case $os in
|
|||
;;
|
||||
-nacl*)
|
||||
;;
|
||||
-ios)
|
||||
;;
|
||||
-none)
|
||||
;;
|
||||
*)
|
||||
|
|
|
@ -19276,6 +19276,8 @@ ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate"
|
|||
|
||||
ac_config_headers="$ac_config_headers isl_config.h"
|
||||
|
||||
ac_config_files="$ac_config_files isl_srcdir.c"
|
||||
|
||||
ac_config_files="$ac_config_files Makefile"
|
||||
|
||||
ac_config_files="$ac_config_files doc/Makefile"
|
||||
|
@ -20474,6 +20476,7 @@ do
|
|||
"$ac_stdint_h") CONFIG_COMMANDS="$CONFIG_COMMANDS $ac_stdint_h" ;;
|
||||
"$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;;
|
||||
"isl_config.h") CONFIG_HEADERS="$CONFIG_HEADERS isl_config.h" ;;
|
||||
"isl_srcdir.c") CONFIG_FILES="$CONFIG_FILES isl_srcdir.c" ;;
|
||||
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
|
||||
"doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
|
||||
"interface/Makefile") CONFIG_FILES="$CONFIG_FILES interface/Makefile" ;;
|
||||
|
@ -21183,6 +21186,7 @@ $as_echo X"$file" |
|
|||
cat <<_LT_EOF >> "$cfgfile"
|
||||
#! $SHELL
|
||||
# Generated automatically by $as_me ($PACKAGE) $VERSION
|
||||
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
||||
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
||||
|
||||
# Provide generalized library-building support services.
|
||||
|
|
|
@ -274,6 +274,7 @@ AX_DETECT_GIT_HEAD
|
|||
|
||||
AH_BOTTOM([#include <isl_config_post.h>])
|
||||
AC_CONFIG_HEADERS(isl_config.h)
|
||||
AC_CONFIG_FILES(isl_srcdir.c)
|
||||
AC_CONFIG_FILES(Makefile)
|
||||
AC_CONFIG_FILES(doc/Makefile)
|
||||
if test $with_clang = system; then
|
||||
|
|
Binary file not shown.
|
@ -30,6 +30,11 @@
|
|||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#include <BaseTsd.h>
|
||||
typedef SSIZE_T ssize_t;
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define CHECK(res) (res)
|
||||
#else
|
||||
|
|
|
@ -12,7 +12,7 @@ typedef struct isl_aff isl_aff;
|
|||
|
||||
ISL_DECLARE_LIST(aff)
|
||||
|
||||
struct __isl_subclass(isl_pw_multi_aff) __isl_subclass(isl_multi_pw_aff)
|
||||
struct __isl_subclass(isl_multi_pw_aff) __isl_subclass(isl_pw_multi_aff)
|
||||
__isl_subclass(isl_union_pw_aff) isl_pw_aff;
|
||||
typedef struct isl_pw_aff isl_pw_aff;
|
||||
|
||||
|
@ -24,11 +24,11 @@ typedef struct isl_union_pw_aff isl_union_pw_aff;
|
|||
|
||||
ISL_DECLARE_LIST_TYPE(union_pw_aff)
|
||||
|
||||
struct __isl_subclass(isl_pw_multi_aff) __isl_subclass(isl_multi_pw_aff)
|
||||
struct __isl_subclass(isl_multi_pw_aff) __isl_subclass(isl_pw_multi_aff)
|
||||
isl_multi_aff;
|
||||
typedef struct isl_multi_aff isl_multi_aff;
|
||||
|
||||
struct __isl_subclass(isl_union_pw_multi_aff) __isl_subclass(isl_multi_pw_aff)
|
||||
struct __isl_subclass(isl_multi_pw_aff) __isl_subclass(isl_union_pw_multi_aff)
|
||||
isl_pw_multi_aff;
|
||||
typedef struct isl_pw_multi_aff isl_pw_multi_aff;
|
||||
|
||||
|
|
|
@ -629,6 +629,7 @@ __isl_export
|
|||
isl_stat isl_map_foreach_basic_map(__isl_keep isl_map *map,
|
||||
isl_stat (*fn)(__isl_take isl_basic_map *bmap, void *user), void *user);
|
||||
|
||||
ISL_DEPRECATED
|
||||
__isl_give isl_map *isl_set_lifting(__isl_take isl_set *set);
|
||||
|
||||
__isl_give isl_map *isl_map_fixed_power_val(__isl_take isl_map *map,
|
||||
|
|
|
@ -13174,3 +13174,69 @@ __isl_give isl_set *isl_set_preimage_multi_pw_aff(__isl_take isl_set *set,
|
|||
{
|
||||
return isl_map_preimage_multi_pw_aff(set, isl_dim_set, mpa);
|
||||
}
|
||||
|
||||
/* Is the point "inner" internal to inequality constraint "ineq"
|
||||
* of "bset"?
|
||||
* The point is considered to be internal to the inequality constraint,
|
||||
* if it strictly lies on the positive side of the inequality constraint,
|
||||
* or if it lies on the constraint and the constraint is lexico-positive.
|
||||
*/
|
||||
static isl_bool is_internal(__isl_keep isl_vec *inner,
|
||||
__isl_keep isl_basic_set *bset, int ineq)
|
||||
{
|
||||
isl_ctx *ctx;
|
||||
int pos;
|
||||
unsigned total;
|
||||
|
||||
if (!inner || !bset)
|
||||
return isl_bool_error;
|
||||
|
||||
ctx = isl_basic_set_get_ctx(bset);
|
||||
isl_seq_inner_product(inner->el, bset->ineq[ineq], inner->size,
|
||||
&ctx->normalize_gcd);
|
||||
if (!isl_int_is_zero(ctx->normalize_gcd))
|
||||
return isl_int_is_nonneg(ctx->normalize_gcd);
|
||||
|
||||
total = isl_basic_set_dim(bset, isl_dim_all);
|
||||
pos = isl_seq_first_non_zero(bset->ineq[ineq] + 1, total);
|
||||
return isl_int_is_pos(bset->ineq[ineq][1 + pos]);
|
||||
}
|
||||
|
||||
/* Tighten the inequality constraints of "bset" that are outward with respect
|
||||
* to the point "vec".
|
||||
* That is, tighten the constraints that are not satisfied by "vec".
|
||||
*
|
||||
* "vec" is a point internal to some superset S of "bset" that is used
|
||||
* to make the subsets of S disjoint, by tightening one half of the constraints
|
||||
* that separate two subsets. In particular, the constraints of S
|
||||
* are all satisfied by "vec" and should not be tightened.
|
||||
* Of the internal constraints, those that have "vec" on the outside
|
||||
* are tightened. The shared facet is included in the adjacent subset
|
||||
* with the opposite constraint.
|
||||
* For constraints that saturate "vec", this criterion cannot be used
|
||||
* to determine which of the two sides should be tightened.
|
||||
* Instead, the sign of the first non-zero coefficient is used
|
||||
* to make this choice. Note that this second criterion is never used
|
||||
* on the constraints of S since "vec" is interior to "S".
|
||||
*/
|
||||
__isl_give isl_basic_set *isl_basic_set_tighten_outward(
|
||||
__isl_take isl_basic_set *bset, __isl_keep isl_vec *vec)
|
||||
{
|
||||
int j;
|
||||
|
||||
bset = isl_basic_set_cow(bset);
|
||||
if (!bset)
|
||||
return NULL;
|
||||
for (j = 0; j < bset->n_ineq; ++j) {
|
||||
isl_bool internal;
|
||||
|
||||
internal = is_internal(vec, bset, j);
|
||||
if (internal < 0)
|
||||
return isl_basic_set_free(bset);
|
||||
if (internal)
|
||||
continue;
|
||||
isl_int_sub_ui(bset->ineq[j][0], bset->ineq[j][0], 1);
|
||||
}
|
||||
|
||||
return bset;
|
||||
}
|
||||
|
|
|
@ -253,6 +253,9 @@ __isl_give isl_basic_set *isl_basic_set_add_ineq(__isl_take isl_basic_set *bset,
|
|||
__isl_give isl_basic_map *isl_basic_map_add_ineq(__isl_take isl_basic_map *bmap,
|
||||
isl_int *ineq);
|
||||
|
||||
__isl_give isl_basic_set *isl_basic_set_tighten_outward(
|
||||
__isl_take isl_basic_set *bset, __isl_keep isl_vec *vec);
|
||||
|
||||
int isl_inequality_negate(struct isl_basic_map *bmap, unsigned pos);
|
||||
|
||||
struct isl_basic_set *isl_basic_set_cow(struct isl_basic_set *bset);
|
||||
|
|
|
@ -259,6 +259,18 @@ int isl_mat_cols(__isl_keep isl_mat *mat)
|
|||
return mat ? mat->n_col : -1;
|
||||
}
|
||||
|
||||
/* Check that "col" is a valid column position for "mat".
|
||||
*/
|
||||
static isl_stat check_col(__isl_keep isl_mat *mat, int col)
|
||||
{
|
||||
if (!mat)
|
||||
return isl_stat_error;
|
||||
if (col < 0 || col >= mat->n_col)
|
||||
isl_die(isl_mat_get_ctx(mat), isl_error_invalid,
|
||||
"column out of range", return isl_stat_error);
|
||||
return isl_stat_ok;
|
||||
}
|
||||
|
||||
int isl_mat_get_element(__isl_keep isl_mat *mat, int row, int col, isl_int *v)
|
||||
{
|
||||
if (!mat)
|
||||
|
@ -266,9 +278,8 @@ int isl_mat_get_element(__isl_keep isl_mat *mat, int row, int col, isl_int *v)
|
|||
if (row < 0 || row >= mat->n_row)
|
||||
isl_die(mat->ctx, isl_error_invalid, "row out of range",
|
||||
return -1);
|
||||
if (col < 0 || col >= mat->n_col)
|
||||
isl_die(mat->ctx, isl_error_invalid, "column out of range",
|
||||
return -1);
|
||||
if (check_col(mat, col) < 0)
|
||||
return -1;
|
||||
isl_int_set(*v, mat->row[row][col]);
|
||||
return 0;
|
||||
}
|
||||
|
@ -286,9 +297,8 @@ __isl_give isl_val *isl_mat_get_element_val(__isl_keep isl_mat *mat,
|
|||
if (row < 0 || row >= mat->n_row)
|
||||
isl_die(ctx, isl_error_invalid, "row out of range",
|
||||
return NULL);
|
||||
if (col < 0 || col >= mat->n_col)
|
||||
isl_die(ctx, isl_error_invalid, "column out of range",
|
||||
return NULL);
|
||||
if (check_col(mat, col) < 0)
|
||||
return NULL;
|
||||
return isl_val_int_from_isl_int(ctx, mat->row[row][col]);
|
||||
}
|
||||
|
||||
|
@ -301,9 +311,8 @@ __isl_give isl_mat *isl_mat_set_element(__isl_take isl_mat *mat,
|
|||
if (row < 0 || row >= mat->n_row)
|
||||
isl_die(mat->ctx, isl_error_invalid, "row out of range",
|
||||
goto error);
|
||||
if (col < 0 || col >= mat->n_col)
|
||||
isl_die(mat->ctx, isl_error_invalid, "column out of range",
|
||||
goto error);
|
||||
if (check_col(mat, col) < 0)
|
||||
return isl_mat_free(mat);
|
||||
isl_int_set(mat->row[row][col], v);
|
||||
return mat;
|
||||
error:
|
||||
|
@ -320,9 +329,8 @@ __isl_give isl_mat *isl_mat_set_element_si(__isl_take isl_mat *mat,
|
|||
if (row < 0 || row >= mat->n_row)
|
||||
isl_die(mat->ctx, isl_error_invalid, "row out of range",
|
||||
goto error);
|
||||
if (col < 0 || col >= mat->n_col)
|
||||
isl_die(mat->ctx, isl_error_invalid, "column out of range",
|
||||
goto error);
|
||||
if (check_col(mat, col) < 0)
|
||||
return isl_mat_free(mat);
|
||||
isl_int_set_si(mat->row[row][col], v);
|
||||
return mat;
|
||||
error:
|
||||
|
@ -365,6 +373,22 @@ __isl_give isl_mat *isl_mat_diag(isl_ctx *ctx, unsigned n_row, isl_int d)
|
|||
return mat;
|
||||
}
|
||||
|
||||
/* Create an "n_row" by "n_col" matrix with zero elements.
|
||||
*/
|
||||
__isl_give isl_mat *isl_mat_zero(isl_ctx *ctx, unsigned n_row, unsigned n_col)
|
||||
{
|
||||
int i;
|
||||
isl_mat *mat;
|
||||
|
||||
mat = isl_mat_alloc(ctx, n_row, n_col);
|
||||
if (!mat)
|
||||
return NULL;
|
||||
for (i = 0; i < n_row; ++i)
|
||||
isl_seq_clr(mat->row[i], n_col);
|
||||
|
||||
return mat;
|
||||
}
|
||||
|
||||
__isl_give isl_mat *isl_mat_identity(isl_ctx *ctx, unsigned n_row)
|
||||
{
|
||||
if (!ctx)
|
||||
|
@ -1522,6 +1546,50 @@ void isl_mat_col_mul(struct isl_mat *mat, int dst_col, isl_int f, int src_col)
|
|||
isl_int_mul(mat->row[i][dst_col], f, mat->row[i][src_col]);
|
||||
}
|
||||
|
||||
/* Add "f" times column "src_col" to column "dst_col" of "mat" and
|
||||
* return the result.
|
||||
*/
|
||||
__isl_give isl_mat *isl_mat_col_addmul(__isl_take isl_mat *mat, int dst_col,
|
||||
isl_int f, int src_col)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (check_col(mat, dst_col) < 0 || check_col(mat, src_col) < 0)
|
||||
return isl_mat_free(mat);
|
||||
|
||||
for (i = 0; i < mat->n_row; ++i) {
|
||||
if (isl_int_is_zero(mat->row[i][src_col]))
|
||||
continue;
|
||||
mat = isl_mat_cow(mat);
|
||||
if (!mat)
|
||||
return NULL;
|
||||
isl_int_addmul(mat->row[i][dst_col], f, mat->row[i][src_col]);
|
||||
}
|
||||
|
||||
return mat;
|
||||
}
|
||||
|
||||
/* Negate column "col" of "mat" and return the result.
|
||||
*/
|
||||
__isl_give isl_mat *isl_mat_col_neg(__isl_take isl_mat *mat, int col)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (check_col(mat, col) < 0)
|
||||
return isl_mat_free(mat);
|
||||
|
||||
for (i = 0; i < mat->n_row; ++i) {
|
||||
if (isl_int_is_zero(mat->row[i][col]))
|
||||
continue;
|
||||
mat = isl_mat_cow(mat);
|
||||
if (!mat)
|
||||
return NULL;
|
||||
isl_int_neg(mat->row[i][col], mat->row[i][col]);
|
||||
}
|
||||
|
||||
return mat;
|
||||
}
|
||||
|
||||
struct isl_mat *isl_mat_unimodular_complete(struct isl_mat *M, int row)
|
||||
{
|
||||
int r;
|
||||
|
|
|
@ -22,6 +22,7 @@ struct isl_mat {
|
|||
|
||||
uint32_t isl_mat_get_hash(__isl_keep isl_mat *mat);
|
||||
|
||||
__isl_give isl_mat *isl_mat_zero(isl_ctx *ctx, unsigned n_row, unsigned n_col);
|
||||
__isl_give isl_mat *isl_mat_sub_alloc(__isl_keep isl_mat *mat,
|
||||
unsigned first_row, unsigned n_row, unsigned first_col, unsigned n_col);
|
||||
__isl_give isl_mat *isl_mat_sub_alloc6(isl_ctx *ctx, isl_int **row,
|
||||
|
@ -45,6 +46,9 @@ isl_stat isl_mat_row_gcd(__isl_keep isl_mat *mat, int row, isl_int *gcd);
|
|||
void isl_mat_col_mul(struct isl_mat *mat, int dst_col, isl_int f, int src_col);
|
||||
void isl_mat_col_submul(struct isl_mat *mat,
|
||||
int dst_col, isl_int f, int src_col);
|
||||
__isl_give isl_mat *isl_mat_col_addmul(__isl_take isl_mat *mat, int dst_col,
|
||||
isl_int f, int src_col);
|
||||
__isl_give isl_mat *isl_mat_col_neg(__isl_take isl_mat *mat, int col);
|
||||
|
||||
int isl_mat_get_element(__isl_keep isl_mat *mat, int row, int col, isl_int *v);
|
||||
__isl_give isl_mat *isl_mat_set_element(__isl_take isl_mat *mat,
|
||||
|
|
|
@ -449,6 +449,21 @@ __isl_give isl_space *isl_qpolynomial_get_space(__isl_keep isl_qpolynomial *qp)
|
|||
return space;
|
||||
}
|
||||
|
||||
/* Return the number of variables of the given type in the domain of "qp".
|
||||
*/
|
||||
unsigned isl_qpolynomial_domain_dim(__isl_keep isl_qpolynomial *qp,
|
||||
enum isl_dim_type type)
|
||||
{
|
||||
if (!qp)
|
||||
return 0;
|
||||
if (type == isl_dim_div)
|
||||
return qp->div->n_row;
|
||||
if (type == isl_dim_all)
|
||||
return isl_space_dim(qp->dim, isl_dim_all) +
|
||||
isl_qpolynomial_domain_dim(qp, isl_dim_div);
|
||||
return isl_space_dim(qp->dim, type);
|
||||
}
|
||||
|
||||
/* Externally, an isl_qpolynomial has a map space, but internally, the
|
||||
* ls field corresponds to the domain of that space.
|
||||
*/
|
||||
|
@ -461,7 +476,28 @@ unsigned isl_qpolynomial_dim(__isl_keep isl_qpolynomial *qp,
|
|||
return 1;
|
||||
if (type == isl_dim_in)
|
||||
type = isl_dim_set;
|
||||
return isl_space_dim(qp->dim, type);
|
||||
return isl_qpolynomial_domain_dim(qp, type);
|
||||
}
|
||||
|
||||
/* Return the offset of the first coefficient of type "type" in
|
||||
* the domain of "qp".
|
||||
*/
|
||||
unsigned isl_qpolynomial_domain_offset(__isl_keep isl_qpolynomial *qp,
|
||||
enum isl_dim_type type)
|
||||
{
|
||||
if (!qp)
|
||||
return 0;
|
||||
switch (type) {
|
||||
case isl_dim_cst:
|
||||
return 0;
|
||||
case isl_dim_param:
|
||||
case isl_dim_set:
|
||||
return 1 + isl_space_offset(qp->dim, type);
|
||||
case isl_dim_div:
|
||||
return 1 + isl_space_dim(qp->dim, isl_dim_all);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
isl_bool isl_qpolynomial_is_zero(__isl_keep isl_qpolynomial *qp)
|
||||
|
@ -2238,11 +2274,11 @@ static __isl_give isl_qpolynomial *substitute_non_divs(
|
|||
* inside the division, so we need to add floor(e/d) * x outside.
|
||||
* That is, we replace q by q' + floor(e/d) * x and we therefore need
|
||||
* to adjust the coefficient of x in each later div that depends on the
|
||||
* current div "div" and also in the affine expression "aff"
|
||||
* (if it too depends on "div").
|
||||
* current div "div" and also in the affine expressions in the rows of "mat"
|
||||
* (if they too depend on "div").
|
||||
*/
|
||||
static void reduce_div(__isl_keep isl_qpolynomial *qp, int div,
|
||||
__isl_keep isl_vec *aff)
|
||||
__isl_keep isl_mat **mat)
|
||||
{
|
||||
int i, j;
|
||||
isl_int v;
|
||||
|
@ -2256,8 +2292,7 @@ static void reduce_div(__isl_keep isl_qpolynomial *qp, int div,
|
|||
isl_int_fdiv_q(v, qp->div->row[div][1 + i], qp->div->row[div][0]);
|
||||
isl_int_fdiv_r(qp->div->row[div][1 + i],
|
||||
qp->div->row[div][1 + i], qp->div->row[div][0]);
|
||||
if (!isl_int_is_zero(aff->el[1 + total + div]))
|
||||
isl_int_addmul(aff->el[i], v, aff->el[1 + total + div]);
|
||||
*mat = isl_mat_col_addmul(*mat, i, v, 1 + total + div);
|
||||
for (j = div + 1; j < qp->div->n_row; ++j) {
|
||||
if (isl_int_is_zero(qp->div->row[j][2 + total + div]))
|
||||
continue;
|
||||
|
@ -2297,11 +2332,11 @@ static int needs_invert(__isl_keep isl_mat *div, int row)
|
|||
|
||||
/* Replace div "div" q = [e/d] by -[(-e+(d-1))/d].
|
||||
* We only invert the coefficients of e (and the coefficient of q in
|
||||
* later divs and in "aff"). After calling this function, the
|
||||
* later divs and in the rows of "mat"). After calling this function, the
|
||||
* coefficients of e should be reduced again.
|
||||
*/
|
||||
static void invert_div(__isl_keep isl_qpolynomial *qp, int div,
|
||||
__isl_keep isl_vec *aff)
|
||||
__isl_keep isl_mat **mat)
|
||||
{
|
||||
unsigned total = qp->div->n_col - qp->div->n_row - 2;
|
||||
|
||||
|
@ -2310,15 +2345,18 @@ static void invert_div(__isl_keep isl_qpolynomial *qp, int div,
|
|||
isl_int_sub_ui(qp->div->row[div][1], qp->div->row[div][1], 1);
|
||||
isl_int_add(qp->div->row[div][1],
|
||||
qp->div->row[div][1], qp->div->row[div][0]);
|
||||
if (!isl_int_is_zero(aff->el[1 + total + div]))
|
||||
isl_int_neg(aff->el[1 + total + div], aff->el[1 + total + div]);
|
||||
*mat = isl_mat_col_neg(*mat, 1 + total + div);
|
||||
isl_mat_col_mul(qp->div, 2 + total + div,
|
||||
qp->div->ctx->negone, 2 + total + div);
|
||||
}
|
||||
|
||||
/* Assuming "qp" is a monomial, reduce all its divs to have coefficients
|
||||
/* Reduce all divs of "qp" to have coefficients
|
||||
* in the interval [0, d-1], with d the denominator and such that the
|
||||
* last non-zero coefficient that is not equal to d/2 is smaller than d/2.
|
||||
* The modifications to the integer divisions need to be reflected
|
||||
* in the factors of the polynomial that refer to the original
|
||||
* integer divisions. To this end, the modifications are collected
|
||||
* as a set of affine expressions and then plugged into the polynomial.
|
||||
*
|
||||
* After the reduction, some divs may have become redundant or identical,
|
||||
* so we call substitute_non_divs and sort_divs. If these functions
|
||||
|
@ -2329,48 +2367,58 @@ static void invert_div(__isl_keep isl_qpolynomial *qp, int div,
|
|||
static __isl_give isl_qpolynomial *reduce_divs(__isl_take isl_qpolynomial *qp)
|
||||
{
|
||||
int i;
|
||||
isl_vec *aff = NULL;
|
||||
struct isl_upoly *s;
|
||||
unsigned n_div;
|
||||
isl_ctx *ctx;
|
||||
isl_mat *mat;
|
||||
struct isl_upoly **s;
|
||||
unsigned o_div, n_div, total;
|
||||
|
||||
if (!qp)
|
||||
return NULL;
|
||||
|
||||
aff = isl_vec_alloc(qp->div->ctx, qp->div->n_col - 1);
|
||||
aff = isl_vec_clr(aff);
|
||||
if (!aff)
|
||||
goto error;
|
||||
total = isl_qpolynomial_domain_dim(qp, isl_dim_all);
|
||||
n_div = isl_qpolynomial_domain_dim(qp, isl_dim_div);
|
||||
o_div = isl_qpolynomial_domain_offset(qp, isl_dim_div);
|
||||
ctx = isl_qpolynomial_get_ctx(qp);
|
||||
mat = isl_mat_zero(ctx, n_div, 1 + total);
|
||||
|
||||
isl_int_set_si(aff->el[1 + qp->upoly->var], 1);
|
||||
for (i = 0; i < n_div; ++i)
|
||||
mat = isl_mat_set_element_si(mat, i, o_div + i, 1);
|
||||
|
||||
for (i = 0; i < qp->div->n_row; ++i) {
|
||||
normalize_div(qp, i);
|
||||
reduce_div(qp, i, aff);
|
||||
reduce_div(qp, i, &mat);
|
||||
if (needs_invert(qp->div, i)) {
|
||||
invert_div(qp, i, aff);
|
||||
reduce_div(qp, i, aff);
|
||||
invert_div(qp, i, &mat);
|
||||
reduce_div(qp, i, &mat);
|
||||
}
|
||||
}
|
||||
if (!mat)
|
||||
goto error;
|
||||
|
||||
s = isl_upoly_from_affine(qp->div->ctx, aff->el,
|
||||
qp->div->ctx->one, aff->size);
|
||||
qp->upoly = isl_upoly_subs(qp->upoly, qp->upoly->var, 1, &s);
|
||||
isl_upoly_free(s);
|
||||
s = isl_alloc_array(ctx, struct isl_upoly *, n_div);
|
||||
if (n_div && !s)
|
||||
goto error;
|
||||
for (i = 0; i < n_div; ++i)
|
||||
s[i] = isl_upoly_from_affine(ctx, mat->row[i], ctx->one,
|
||||
1 + total);
|
||||
qp->upoly = isl_upoly_subs(qp->upoly, o_div - 1, n_div, s);
|
||||
for (i = 0; i < n_div; ++i)
|
||||
isl_upoly_free(s[i]);
|
||||
free(s);
|
||||
if (!qp->upoly)
|
||||
goto error;
|
||||
|
||||
isl_vec_free(aff);
|
||||
isl_mat_free(mat);
|
||||
|
||||
n_div = qp->div->n_row;
|
||||
qp = substitute_non_divs(qp);
|
||||
qp = sort_divs(qp);
|
||||
if (qp && qp->div->n_row < n_div)
|
||||
if (qp && isl_qpolynomial_domain_dim(qp, isl_dim_div) < n_div)
|
||||
return reduce_divs(qp);
|
||||
|
||||
return qp;
|
||||
error:
|
||||
isl_qpolynomial_free(qp);
|
||||
isl_vec_free(aff);
|
||||
isl_mat_free(mat);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -2628,6 +2676,12 @@ __isl_give isl_qpolynomial *isl_qpolynomial_set_dim_name(
|
|||
qp = isl_qpolynomial_cow(qp);
|
||||
if (!qp)
|
||||
return NULL;
|
||||
if (type == isl_dim_out)
|
||||
isl_die(isl_qpolynomial_get_ctx(qp), isl_error_invalid,
|
||||
"cannot set name of output/set dimension",
|
||||
return isl_qpolynomial_free(qp));
|
||||
if (type == isl_dim_in)
|
||||
type = isl_dim_set;
|
||||
qp->dim = isl_space_set_dim_name(qp->dim, type, pos, s);
|
||||
if (!qp->dim)
|
||||
goto error;
|
||||
|
@ -3031,15 +3085,35 @@ error:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Evaluate "qp" in the void point "pnt".
|
||||
* In particular, return the value NaN.
|
||||
*/
|
||||
static __isl_give isl_val *eval_void(__isl_take isl_qpolynomial *qp,
|
||||
__isl_take isl_point *pnt)
|
||||
{
|
||||
isl_ctx *ctx;
|
||||
|
||||
ctx = isl_point_get_ctx(pnt);
|
||||
isl_qpolynomial_free(qp);
|
||||
isl_point_free(pnt);
|
||||
return isl_val_nan(ctx);
|
||||
}
|
||||
|
||||
__isl_give isl_val *isl_qpolynomial_eval(__isl_take isl_qpolynomial *qp,
|
||||
__isl_take isl_point *pnt)
|
||||
{
|
||||
isl_bool is_void;
|
||||
isl_vec *ext;
|
||||
isl_val *v;
|
||||
|
||||
if (!qp || !pnt)
|
||||
goto error;
|
||||
isl_assert(pnt->dim->ctx, isl_space_is_equal(pnt->dim, qp->dim), goto error);
|
||||
is_void = isl_point_is_void(pnt);
|
||||
if (is_void < 0)
|
||||
goto error;
|
||||
if (is_void)
|
||||
return eval_void(qp, pnt);
|
||||
|
||||
if (qp->div->n_row == 0)
|
||||
ext = isl_vec_copy(pnt->vec);
|
||||
|
|
|
@ -134,6 +134,9 @@ int isl_qpolynomial_is_affine(__isl_keep isl_qpolynomial *qp);
|
|||
int isl_qpolynomial_is_cst(__isl_keep isl_qpolynomial *qp,
|
||||
isl_int *n, isl_int *d);
|
||||
|
||||
unsigned isl_qpolynomial_domain_offset(__isl_keep isl_qpolynomial *qp,
|
||||
enum isl_dim_type type);
|
||||
|
||||
__isl_give isl_qpolynomial *isl_qpolynomial_add_on_domain(
|
||||
__isl_keep isl_set *dom,
|
||||
__isl_take isl_qpolynomial *qp1,
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
static const char *srcdir = "@srcdir@";
|
|
@ -32,16 +32,16 @@
|
|||
#include <isl/schedule.h>
|
||||
#include <isl/schedule_node.h>
|
||||
#include <isl_options_private.h>
|
||||
#include <isl/vertices.h>
|
||||
#include <isl_vertices_private.h>
|
||||
#include <isl/ast_build.h>
|
||||
#include <isl/val.h>
|
||||
#include <isl/ilp.h>
|
||||
#include <isl_ast_build_expr.h>
|
||||
#include <isl/options.h>
|
||||
|
||||
#define ARRAY_SIZE(array) (sizeof(array)/sizeof(*array))
|
||||
#include "isl_srcdir.c"
|
||||
|
||||
static char *srcdir;
|
||||
#define ARRAY_SIZE(array) (sizeof(array)/sizeof(*array))
|
||||
|
||||
static char *get_filename(isl_ctx *ctx, const char *name, const char *suffix) {
|
||||
char *filename;
|
||||
|
@ -4970,7 +4970,7 @@ int test_union_pw(isl_ctx *ctx)
|
|||
/* Test that isl_union_pw_qpolynomial_eval picks up the function
|
||||
* defined over the correct domain space.
|
||||
*/
|
||||
static int test_eval(isl_ctx *ctx)
|
||||
static int test_eval_1(isl_ctx *ctx)
|
||||
{
|
||||
const char *str;
|
||||
isl_point *pnt;
|
||||
|
@ -4996,6 +4996,45 @@ static int test_eval(isl_ctx *ctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Check that isl_qpolynomial_eval handles getting called on a void point.
|
||||
*/
|
||||
static int test_eval_2(isl_ctx *ctx)
|
||||
{
|
||||
const char *str;
|
||||
isl_point *pnt;
|
||||
isl_set *set;
|
||||
isl_qpolynomial *qp;
|
||||
isl_val *v;
|
||||
isl_bool ok;
|
||||
|
||||
str = "{ A[x] -> [x] }";
|
||||
qp = isl_qpolynomial_from_aff(isl_aff_read_from_str(ctx, str));
|
||||
str = "{ A[x] : false }";
|
||||
set = isl_set_read_from_str(ctx, str);
|
||||
pnt = isl_set_sample_point(set);
|
||||
v = isl_qpolynomial_eval(qp, pnt);
|
||||
ok = isl_val_is_nan(v);
|
||||
isl_val_free(v);
|
||||
|
||||
if (ok < 0)
|
||||
return -1;
|
||||
if (!ok)
|
||||
isl_die(ctx, isl_error_unknown, "expecting NaN", return -1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Perform basic polynomial evaluation tests.
|
||||
*/
|
||||
static int test_eval(isl_ctx *ctx)
|
||||
{
|
||||
if (test_eval_1(ctx) < 0)
|
||||
return -1;
|
||||
if (test_eval_2(ctx) < 0)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Descriptions of sets that are tested for reparsing after printing.
|
||||
*/
|
||||
const char *output_tests[] = {
|
||||
|
@ -6675,6 +6714,94 @@ static int test_universe(isl_ctx *ctx)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Sets for which chambers are computed and checked.
|
||||
*/
|
||||
const char *chambers_tests[] = {
|
||||
"[A, B, C] -> { [x, y, z] : x >= 0 and y >= 0 and y <= A - x and "
|
||||
"z >= 0 and z <= C - y and z <= B - x - y }",
|
||||
};
|
||||
|
||||
/* Add the domain of "cell" to "cells".
|
||||
*/
|
||||
static int add_cell(__isl_take isl_cell *cell, void *user)
|
||||
{
|
||||
isl_basic_set_list **cells = user;
|
||||
isl_basic_set *dom;
|
||||
|
||||
dom = isl_cell_get_domain(cell);
|
||||
isl_cell_free(cell);
|
||||
*cells = isl_basic_set_list_add(*cells, dom);
|
||||
|
||||
return *cells ? 0 : -1;
|
||||
}
|
||||
|
||||
/* Check that the elements of "list" are pairwise disjoint.
|
||||
*/
|
||||
static isl_stat check_pairwise_disjoint(__isl_keep isl_basic_set_list *list)
|
||||
{
|
||||
int i, j, n;
|
||||
|
||||
if (!list)
|
||||
return isl_stat_error;
|
||||
|
||||
n = isl_basic_set_list_n_basic_set(list);
|
||||
for (i = 0; i < n; ++i) {
|
||||
isl_basic_set *bset_i;
|
||||
|
||||
bset_i = isl_basic_set_list_get_basic_set(list, i);
|
||||
for (j = i + 1; j < n; ++j) {
|
||||
isl_basic_set *bset_j;
|
||||
isl_bool disjoint;
|
||||
|
||||
bset_j = isl_basic_set_list_get_basic_set(list, j);
|
||||
disjoint = isl_basic_set_is_disjoint(bset_i, bset_j);
|
||||
isl_basic_set_free(bset_j);
|
||||
if (!disjoint)
|
||||
isl_die(isl_basic_set_list_get_ctx(list),
|
||||
isl_error_unknown, "not disjoint",
|
||||
break);
|
||||
if (disjoint < 0 || !disjoint)
|
||||
break;
|
||||
}
|
||||
isl_basic_set_free(bset_i);
|
||||
if (j < n)
|
||||
return isl_stat_error;
|
||||
}
|
||||
|
||||
return isl_stat_ok;
|
||||
}
|
||||
|
||||
/* Check that the chambers computed by isl_vertices_foreach_disjoint_cell
|
||||
* are pairwise disjoint.
|
||||
*/
|
||||
static int test_chambers(isl_ctx *ctx)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(chambers_tests); ++i) {
|
||||
isl_basic_set *bset;
|
||||
isl_vertices *vertices;
|
||||
isl_basic_set_list *cells;
|
||||
isl_stat ok;
|
||||
|
||||
bset = isl_basic_set_read_from_str(ctx, chambers_tests[i]);
|
||||
vertices = isl_basic_set_compute_vertices(bset);
|
||||
cells = isl_basic_set_list_alloc(ctx, 0);
|
||||
if (isl_vertices_foreach_disjoint_cell(vertices, &add_cell,
|
||||
&cells) < 0)
|
||||
cells = isl_basic_set_list_free(cells);
|
||||
ok = check_pairwise_disjoint(cells);
|
||||
isl_basic_set_list_free(cells);
|
||||
isl_vertices_free(vertices);
|
||||
isl_basic_set_free(bset);
|
||||
|
||||
if (ok < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct {
|
||||
const char *name;
|
||||
int (*fn)(isl_ctx *ctx);
|
||||
|
@ -6706,6 +6833,7 @@ struct {
|
|||
{ "sample", &test_sample },
|
||||
{ "output", &test_output },
|
||||
{ "vertices", &test_vertices },
|
||||
{ "chambers", &test_chambers },
|
||||
{ "fixed", &test_fixed },
|
||||
{ "equal", &test_equal },
|
||||
{ "disjoint", &test_disjoint },
|
||||
|
@ -6754,9 +6882,6 @@ int main(int argc, char **argv)
|
|||
struct isl_ctx *ctx;
|
||||
struct isl_options *options;
|
||||
|
||||
srcdir = getenv("srcdir");
|
||||
assert(srcdir);
|
||||
|
||||
options = isl_options_new_with_defaults();
|
||||
assert(options);
|
||||
argc = isl_options_parse(options, argc, argv, ISL_ARG_ALL);
|
||||
|
|
|
@ -1145,7 +1145,7 @@ static struct isl_tab *tab_for_shifted_cone(__isl_keep isl_basic_set *bset)
|
|||
|
||||
if (!bset)
|
||||
return NULL;
|
||||
tab = isl_tab_alloc(bset->ctx, bset->n_ineq + 1,
|
||||
tab = isl_tab_alloc(bset->ctx, bset->n_eq + bset->n_ineq + 1,
|
||||
1 + isl_basic_set_total_dim(bset), 0);
|
||||
if (!tab)
|
||||
return NULL;
|
||||
|
@ -1217,13 +1217,15 @@ static __isl_give isl_vec *isl_basic_set_interior_point(
|
|||
*
|
||||
* We pick an interior point from one of the chambers and then make
|
||||
* all constraints that do not satisfy this point strict.
|
||||
* For constraints that saturate the interior point, the sign
|
||||
* of the first non-zero coefficient is used to determine which
|
||||
* of the two (internal) constraints should be tightened.
|
||||
*/
|
||||
int isl_vertices_foreach_disjoint_cell(__isl_keep isl_vertices *vertices,
|
||||
int (*fn)(__isl_take isl_cell *cell, void *user), void *user)
|
||||
{
|
||||
int i, j;
|
||||
int i;
|
||||
isl_vec *vec;
|
||||
isl_int v;
|
||||
isl_cell *cell;
|
||||
|
||||
if (!vertices)
|
||||
|
@ -1245,21 +1247,11 @@ int isl_vertices_foreach_disjoint_cell(__isl_keep isl_vertices *vertices,
|
|||
if (!vec)
|
||||
return -1;
|
||||
|
||||
isl_int_init(v);
|
||||
|
||||
for (i = 0; i < vertices->n_chambers; ++i) {
|
||||
int r;
|
||||
isl_basic_set *dom = isl_basic_set_copy(vertices->c[i].dom);
|
||||
dom = isl_basic_set_cow(dom);
|
||||
if (!dom)
|
||||
goto error;
|
||||
for (j = 0; i && j < dom->n_ineq; ++j) {
|
||||
isl_seq_inner_product(vec->el, dom->ineq[j], vec->size,
|
||||
&v);
|
||||
if (!isl_int_is_neg(v))
|
||||
continue;
|
||||
isl_int_sub_ui(dom->ineq[j][0], dom->ineq[j][0], 1);
|
||||
}
|
||||
if (i)
|
||||
dom = isl_basic_set_tighten_outward(dom, vec);
|
||||
dom = isl_basic_set_set_integral(dom);
|
||||
cell = isl_cell_alloc(isl_vertices_copy(vertices), dom, i);
|
||||
if (!cell)
|
||||
|
@ -1269,12 +1261,10 @@ int isl_vertices_foreach_disjoint_cell(__isl_keep isl_vertices *vertices,
|
|||
goto error;
|
||||
}
|
||||
|
||||
isl_int_clear(v);
|
||||
isl_vec_free(vec);
|
||||
|
||||
return 0;
|
||||
error:
|
||||
isl_int_clear(v);
|
||||
isl_vec_free(vec);
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
PROGRAM=libtool
|
||||
PACKAGE=libtool
|
||||
VERSION="2.4.6 Debian-2.4.6-1"
|
||||
VERSION="2.4.6 Debian-2.4.6-0.1"
|
||||
package_revision=2.4.6
|
||||
|
||||
|
||||
|
@ -1977,7 +1977,7 @@ func_version ()
|
|||
# End:
|
||||
|
||||
# Set a version string.
|
||||
scriptversion='(GNU libtool) 2.4.6 Debian-2.4.6-1'
|
||||
scriptversion='(GNU libtool) 2.4.6'
|
||||
|
||||
|
||||
# func_echo ARG...
|
||||
|
@ -2068,7 +2068,7 @@ include the following information:
|
|||
compiler: $LTCC
|
||||
compiler flags: $LTCFLAGS
|
||||
linker: $LD (gnu? $with_gnu_ld)
|
||||
version: $progname $scriptversion
|
||||
version: $progname (GNU libtool) 2.4.6
|
||||
automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
|
||||
autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
|
||||
|
||||
|
|
|
@ -728,6 +728,7 @@ _LT_CONFIG_SAVE_COMMANDS([
|
|||
cat <<_LT_EOF >> "$cfgfile"
|
||||
#! $SHELL
|
||||
# Generated automatically by $as_me ($PACKAGE) $VERSION
|
||||
# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
|
||||
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
||||
|
||||
# Provide generalized library-building support services.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#!/bin/sh
|
||||
|
||||
EXEEXT=@EXEEXT@
|
||||
srcdir=@srcdir@
|
||||
|
||||
PIP_TESTS="\
|
||||
boulet.pip \
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
static const char *srcdir = "@ISL_SOURCE_DIR@";
|
Loading…
Reference in New Issue