summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--autoconf/aclocal.m46
-rw-r--r--autoconf/configure.ac38
-rwxr-xr-xconfigure54
-rw-r--r--include/Config/config.h.in2
-rw-r--r--include/Support/iterator31
-rw-r--r--include/llvm/Config/config.h.in2
6 files changed, 108 insertions, 25 deletions
diff --git a/autoconf/aclocal.m4 b/autoconf/aclocal.m4
index f5ea270c12..f25fea8e7e 100644
--- a/autoconf/aclocal.m4
+++ b/autoconf/aclocal.m4
@@ -5983,7 +5983,7 @@ ac_cv_cxx_have_bi_iterator,
AC_TRY_COMPILE([#include <iterator>
#ifdef HAVE_NAMESPACES
using namespace std;
-#endif],[bidirectional_iterator<int,int,int> t; return 0;],
+#endif],[bidirectional_iterator<int,int> t; return 0;],
ac_cv_cxx_have_bi_iterator=yes, ac_cv_cxx_have_bi_iterator=no)
AC_LANG_RESTORE
])
@@ -5993,7 +5993,7 @@ fi
])
#
-# Check for standard iterator extension. This is modified from
+# Check for forward iterator extension. This is modified from
# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
#
AC_DEFUN([AC_CXX_HAVE_FWD_ITERATOR],
@@ -6005,7 +6005,7 @@ ac_cv_cxx_have_fwd_iterator,
AC_TRY_COMPILE([#include <iterator>
#ifdef HAVE_NAMESPACES
using namespace std;
-#endif],[forward_iterator<int,int,int> t; return 0;],
+#endif],[forward_iterator<int,int> t; return 0;],
ac_cv_cxx_have_fwd_iterator=yes, ac_cv_cxx_have_fwd_iterator=no)
AC_LANG_RESTORE
])
diff --git a/autoconf/configure.ac b/autoconf/configure.ac
index ed7f057f36..19e18b2c1b 100644
--- a/autoconf/configure.ac
+++ b/autoconf/configure.ac
@@ -272,23 +272,55 @@ else
fi
dnl JIT Option
-AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is NO)]),,enableval=no)
+AC_ARG_ENABLE(jit,AC_HELP_STRING([--enable-jit],[Enable Just In Time Compiling (default is YES)]),,enableval=default)
if test ${enableval} = "no"
then
AC_SUBST(JIT,[[]])
else
- AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
+ case $target in
+ *i*86*)
+ AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
+ ;;
+ *sparc*)
+ AC_SUBST(JIT,[[TARGET_HAS_JIT=1]])
+ ;;
+ *)
+ AC_SUBST(JIT,[[]])
+ ;;
+ esac
fi
dnl **************************************************************************
dnl * Set the location of various third-party software packages
dnl **************************************************************************
+
+dnl Location of SPEC benchmarks
AC_ARG_WITH(spec,AC_HELP_STRING([--with-spec],[Location of SPEC benchmarks]),AC_SUBST(SPEC_ROOT,[$withval]),AC_SUBST(SPEC_ROOT,[/home/vadve/shared/benchmarks/speccpu2000/benchspec]))
+
+dnl Location of the LLVM C front end
AC_ARG_WITH(llvmgccdir,AC_HELP_STRING([--with-llvmgccdir],[Location of LLVM GCC front-end]),AC_SUBST(LLVMGCCDIR,[$withval]))
+
+dnl Location of the bytecode repository
AC_ARG_WITH(bcrepos,AC_HELP_STRING([--with-bcrepos],[Location of Bytecode Repository]),AC_SUBST(BCR,[$withval]),AC_SUBST(BCR,[/home/vadve/lattner/LLVMPrograms]))
+
+dnl Location of PAPI
AC_ARG_WITH(papi,AC_HELP_STRING([--with-papi],[Location of PAPI]),AC_SUBST(PAPIDIR,[$withval]),AC_SUBST(PAPIDIR,[/home/vadve/shared/papi-2.3.4.1]))
-AC_ARG_WITH(objroot,AC_HELP_STRING([--with-objroot],[Location where object files should be placed (default is .)]),AC_SUBST(OBJROOT,[$withval]),AC_SUBST(OBJROOT,[.]))
+
+dnl Location of the purify program
AC_ARG_WITH(purify,AC_HELP_STRING([--with-purify],[Location of purify program]),AC_SUBST(PURIFY,[$withval]))
+dnl Location for placing object files and built programs, libraries, etc
+if test -d /localhome
+then
+ AC_SUBST(OBJROOT,[/localhome/$USER])
+else
+ AC_SUBST(OBJROOT,[.])
+fi
+
+AC_ARG_WITH(objroot,AC_HELP_STRING([--with-objroot],[Location where object files should be placed (default is .)]),AC_SUBST(OBJROOT,[$withval]))
+
+dnl **************************************************************************
+dnl * Create the output files
+dnl **************************************************************************
AC_OUTPUT(Makefile.config)
diff --git a/configure b/configure
index fad8e24a8a..ec697bec0e 100755
--- a/configure
+++ b/configure
@@ -1035,7 +1035,7 @@ Optional Features:
--enable-precompiled_bytecode
Use pre-compiled bytecode (default is NO)
--enable-llc_diffs Enable LLC Diffs when testing (default is YES)
- --enable-jit Enable Just In Time Compiling (default is NO)
+ --enable-jit Enable Just In Time Compiling (default is YES)
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -1049,9 +1049,9 @@ Optional Packages:
--with-llvmgccdir Location of LLVM GCC front-end
--with-bcrepos Location of Bytecode Repository
--with-papi Location of PAPI
+ --with-purify Location of purify program
--with-objroot Location where object files should be placed
(default is .)
- --with-purify Location of purify program
Some influential environment variables:
CXX C++ compiler command
@@ -20476,7 +20476,7 @@ using namespace std;
int
main ()
{
-bidirectional_iterator<int,int,int> t; return 0;
+bidirectional_iterator<int,int> t; return 0;
;
return 0;
}
@@ -20547,7 +20547,7 @@ using namespace std;
int
main ()
{
-forward_iterator<int,int,int> t; return 0;
+forward_iterator<int,int> t; return 0;
;
return 0;
}
@@ -22005,7 +22005,7 @@ if test "${enable_jit+set}" = set; then
enableval="$enable_jit"
else
- enableval=no
+ enableval=default
fi;
if test ${enableval} = "no"
@@ -22013,11 +22013,24 @@ then
JIT=
else
- JIT=TARGET_HAS_JIT=1
+ case $target in
+ *i*86*)
+ JIT=TARGET_HAS_JIT=1
+
+ ;;
+ *sparc*)
+ JIT=TARGET_HAS_JIT=1
+ ;;
+ *)
+ JIT=
+
+ ;;
+ esac
fi
+
# Check whether --with-spec or --without-spec was given.
if test "${with_spec+set}" = set; then
withval="$with_spec"
@@ -22028,6 +22041,7 @@ else
fi;
+
# Check whether --with-llvmgccdir or --without-llvmgccdir was given.
if test "${with_llvmgccdir+set}" = set; then
withval="$with_llvmgccdir"
@@ -22035,6 +22049,7 @@ if test "${with_llvmgccdir+set}" = set; then
fi;
+
# Check whether --with-bcrepos or --without-bcrepos was given.
if test "${with_bcrepos+set}" = set; then
withval="$with_bcrepos"
@@ -22045,6 +22060,7 @@ else
fi;
+
# Check whether --with-papi or --without-papi was given.
if test "${with_papi+set}" = set; then
withval="$with_papi"
@@ -22055,15 +22071,6 @@ else
fi;
-# Check whether --with-objroot or --without-objroot was given.
-if test "${with_objroot+set}" = set; then
- withval="$with_objroot"
- OBJROOT=$withval
-
-else
- OBJROOT=.
-
-fi;
# Check whether --with-purify or --without-purify was given.
if test "${with_purify+set}" = set; then
@@ -22072,6 +22079,23 @@ if test "${with_purify+set}" = set; then
fi;
+if test -d /localhome
+then
+ OBJROOT=/localhome/$USER
+
+else
+ OBJROOT=.
+
+fi
+
+
+# Check whether --with-objroot or --without-objroot was given.
+if test "${with_objroot+set}" = set; then
+ withval="$with_objroot"
+ OBJROOT=$withval
+
+fi;
+
ac_config_files="$ac_config_files Makefile.config"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
diff --git a/include/Config/config.h.in b/include/Config/config.h.in
index fd1c8106c1..bc90611d02 100644
--- a/include/Config/config.h.in
+++ b/include/Config/config.h.in
@@ -185,6 +185,8 @@
/* Indicates whether we have STL iterators */
#undef HAVE_STD_ITERATOR
+#undef HAVE_BI_ITERATOR
+#undef HAVE_FWD_ITERATOR
/* Indicates which slist we should use */
#undef HAVE_EXT_SLIST
diff --git a/include/Support/iterator b/include/Support/iterator
index d0c7b511f0..96ea7781ce 100644
--- a/include/Support/iterator
+++ b/include/Support/iterator
@@ -23,6 +23,11 @@
#include <iterator>
+//////////////////////////////////////////////////////////////////////////////
+// If the bidirectional iterator is not defined, attempt to define it using
+// the C++ standard iterator.
+//////////////////////////////////////////////////////////////////////////////
+#ifndef HAVE_BI_ITERATOR
#ifdef HAVE_STD_ITERATOR
// Define stupid wrappers around std::iterator...
@@ -31,16 +36,34 @@ struct bidirectional_iterator
: public std::iterator<std::bidirectional_iterator_tag, Ty, PtrDiffTy> {
};
-template<class Ty, class PtrDiffTy>
-struct forward_iterator
- : public std::iterator<std::forward_iterator_tag, Ty, PtrDiffTy> {
-};
+#else
+#error "Need to have standard iterator to define bidirectional iterator!"
+#endif
#else
// Just use bidirectional_iterator directly.
using std::bidirectional_iterator;
+
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+// If the forward iterator is not defined, attempt to define it using the
+// C++ standard iterator.
+//////////////////////////////////////////////////////////////////////////////
+#ifndef HAVE_FWD_ITERATOR
+#ifdef HAVE_STD_ITERATOR
+template<class Ty, class PtrDiffTy>
+struct forward_iterator
+ : public std::iterator<std::forward_iterator_tag, Ty, PtrDiffTy> {
+};
+#else
+#error "Need to have standard iterator to define forward iterator!"
+#endif
+#else
+// Just use forward iterator directly.
using std::forward_iterator;
#endif
+
#endif
diff --git a/include/llvm/Config/config.h.in b/include/llvm/Config/config.h.in
index fd1c8106c1..bc90611d02 100644
--- a/include/llvm/Config/config.h.in
+++ b/include/llvm/Config/config.h.in
@@ -185,6 +185,8 @@
/* Indicates whether we have STL iterators */
#undef HAVE_STD_ITERATOR
+#undef HAVE_BI_ITERATOR
+#undef HAVE_FWD_ITERATOR
/* Indicates which slist we should use */
#undef HAVE_EXT_SLIST