forked from OSchip/llvm-project
[OPENMP] Make -fopenmp to turn on OpenMP support by default.
Patch turns on OpenMP support in clang by default after fixing OpenMP buildbots. Differential Revision: http://reviews.llvm.org/D13802 llvm-svn: 255222
This commit is contained in:
parent
f6dfdb361f
commit
860435c8e2
|
@ -1343,7 +1343,7 @@ AC_DEFINE_UNQUOTED(DEFAULT_SYSROOT,"$withval",
|
||||||
AC_ARG_WITH(clang-default-openmp-runtime,
|
AC_ARG_WITH(clang-default-openmp-runtime,
|
||||||
AS_HELP_STRING([--with-clang-default-openmp-runtime],
|
AS_HELP_STRING([--with-clang-default-openmp-runtime],
|
||||||
[The default OpenMP runtime for Clang.]),,
|
[The default OpenMP runtime for Clang.]),,
|
||||||
withval="libgomp")
|
withval="libomp")
|
||||||
AC_DEFINE_UNQUOTED(CLANG_DEFAULT_OPENMP_RUNTIME,"$withval",
|
AC_DEFINE_UNQUOTED(CLANG_DEFAULT_OPENMP_RUNTIME,"$withval",
|
||||||
[Default OpenMP runtime used by -fopenmp.])
|
[Default OpenMP runtime used by -fopenmp.])
|
||||||
|
|
||||||
|
|
|
@ -5954,7 +5954,7 @@ _ACEOF
|
||||||
if test "${with_clang_default_openmp_runtime+set}" = set; then
|
if test "${with_clang_default_openmp_runtime+set}" = set; then
|
||||||
withval=$with_clang_default_openmp_runtime;
|
withval=$with_clang_default_openmp_runtime;
|
||||||
else
|
else
|
||||||
withval="libgomp"
|
withval="libomp"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,12 @@ Here's the short story for getting up and running quickly with LLVM:
|
||||||
* ``cd llvm/projects``
|
* ``cd llvm/projects``
|
||||||
* ``svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt``
|
* ``svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt``
|
||||||
|
|
||||||
|
#. Checkout Libomp (required for OpenMP support):
|
||||||
|
|
||||||
|
* ``cd where-you-want-llvm-to-live``
|
||||||
|
* ``cd llvm/projects``
|
||||||
|
* ``svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp``
|
||||||
|
|
||||||
#. Checkout libcxx and libcxxabi **[Optional]**:
|
#. Checkout libcxx and libcxxabi **[Optional]**:
|
||||||
|
|
||||||
* ``cd where-you-want-llvm-to-live``
|
* ``cd where-you-want-llvm-to-live``
|
||||||
|
@ -535,6 +541,13 @@ If you want to check out compiler-rt (required to build the sanitizers), run:
|
||||||
% cd llvm/projects
|
% cd llvm/projects
|
||||||
% git clone http://llvm.org/git/compiler-rt.git
|
% git clone http://llvm.org/git/compiler-rt.git
|
||||||
|
|
||||||
|
If you want to check out libomp (required for OpenMP support), run:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
% cd llvm/projects
|
||||||
|
% git clone http://llvm.org/git/openmp.git
|
||||||
|
|
||||||
If you want to check out libcxx and libcxxabi (optional), run:
|
If you want to check out libcxx and libcxxabi (optional), run:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
@ -634,7 +647,7 @@ To set up clone from which you can submit code using ``git-svn``, run:
|
||||||
% git config svn-remote.svn.fetch :refs/remotes/origin/master
|
% git config svn-remote.svn.fetch :refs/remotes/origin/master
|
||||||
% git svn rebase -l
|
% git svn rebase -l
|
||||||
|
|
||||||
Likewise for compiler-rt and test-suite.
|
Likewise for compiler-rt, libomp and test-suite.
|
||||||
|
|
||||||
To update this clone without generating git-svn tags that conflict with the
|
To update this clone without generating git-svn tags that conflict with the
|
||||||
upstream Git repo, run:
|
upstream Git repo, run:
|
||||||
|
@ -648,7 +661,7 @@ upstream Git repo, run:
|
||||||
git checkout master &&
|
git checkout master &&
|
||||||
git svn rebase -l)
|
git svn rebase -l)
|
||||||
|
|
||||||
Likewise for compiler-rt and test-suite.
|
Likewise for compiler-rt, libomp and test-suite.
|
||||||
|
|
||||||
This leaves your working directories on their master branches, so you'll need to
|
This leaves your working directories on their master branches, so you'll need to
|
||||||
``checkout`` each working branch individually and ``rebase`` it on top of its
|
``checkout`` each working branch individually and ``rebase`` it on top of its
|
||||||
|
|
|
@ -53,7 +53,7 @@ test-release.sh
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
This script will check-out, configure and compile LLVM+Clang (+ most add-ons, like ``compiler-rt``,
|
This script will check-out, configure and compile LLVM+Clang (+ most add-ons, like ``compiler-rt``,
|
||||||
``libcxx`` and ``clang-extra-tools``) in three stages, and will test the final stage.
|
``libcxx``, ``libomp`` and ``clang-extra-tools``) in three stages, and will test the final stage.
|
||||||
It'll have installed the final binaries on the Phase3/Releasei(+Asserts) directory, and
|
It'll have installed the final binaries on the Phase3/Releasei(+Asserts) directory, and
|
||||||
that's the one you should use for the test-suite and other external tests.
|
that's the one you should use for the test-suite and other external tests.
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ do_rt="yes"
|
||||||
do_libs="yes"
|
do_libs="yes"
|
||||||
do_libunwind="yes"
|
do_libunwind="yes"
|
||||||
do_test_suite="yes"
|
do_test_suite="yes"
|
||||||
do_openmp="no"
|
do_openmp="yes"
|
||||||
BuildDir="`pwd`"
|
BuildDir="`pwd`"
|
||||||
use_autoconf="no"
|
use_autoconf="no"
|
||||||
ExtraConfigureFlags=""
|
ExtraConfigureFlags=""
|
||||||
|
@ -62,7 +62,7 @@ function usage() {
|
||||||
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
|
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
|
||||||
echo " -no-libunwind Disable check-out & build libunwind"
|
echo " -no-libunwind Disable check-out & build libunwind"
|
||||||
echo " -no-test-suite Disable check-out & build test-suite"
|
echo " -no-test-suite Disable check-out & build test-suite"
|
||||||
echo " -openmp Check out and build the OpenMP run-time (experimental)"
|
echo " -no-openmp Disable check-out & build libomp"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ `uname -s` = "Darwin" ]; then
|
if [ `uname -s` = "Darwin" ]; then
|
||||||
|
@ -143,8 +143,8 @@ while [ $# -gt 0 ]; do
|
||||||
-no-test-suite )
|
-no-test-suite )
|
||||||
do_test_suite="no"
|
do_test_suite="no"
|
||||||
;;
|
;;
|
||||||
-openmp )
|
-no-openmp )
|
||||||
do_openmp="yes"
|
do_openmp="no"
|
||||||
;;
|
;;
|
||||||
-help | --help | -h | --h | -\? )
|
-help | --help | -h | --h | -\? )
|
||||||
usage
|
usage
|
||||||
|
@ -293,6 +293,9 @@ function export_sources() {
|
||||||
if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
|
if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
|
||||||
ln -s ../../compiler-rt.src compiler-rt
|
ln -s ../../compiler-rt.src compiler-rt
|
||||||
fi
|
fi
|
||||||
|
if [ -d $BuildDir/openmp.src ] && [ ! -h openmp ]; then
|
||||||
|
ln -s ../../openmp.src openmp
|
||||||
|
fi
|
||||||
if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
|
if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
|
||||||
ln -s ../../libcxx.src libcxx
|
ln -s ../../libcxx.src libcxx
|
||||||
fi
|
fi
|
||||||
|
@ -443,46 +446,6 @@ function package_release() {
|
||||||
cd $cwd
|
cd $cwd
|
||||||
}
|
}
|
||||||
|
|
||||||
# Build and package the OpenMP run-time. This is still experimental and not
|
|
||||||
# meant for official testing in the release, but as a way for providing
|
|
||||||
# binaries as a convenience to those who want to try it out.
|
|
||||||
function build_OpenMP() {
|
|
||||||
cwd=`pwd`
|
|
||||||
|
|
||||||
rm -rf $BuildDir/Phase3/openmp
|
|
||||||
rm -rf $BuildDir/Phase3/openmp.install
|
|
||||||
mkdir -p $BuildDir/Phase3/openmp
|
|
||||||
cd $BuildDir/Phase3/openmp
|
|
||||||
clang=$BuildDir/Phase3/Release/llvmCore-$Release-$RC.install/usr/local/bin/clang
|
|
||||||
|
|
||||||
echo "#" cmake -DCMAKE_C_COMPILER=${clang} -DCMAKE_CXX_COMPILER=${clang}++ \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release -DLIBOMP_MICRO_TESTS=on \
|
|
||||||
$BuildDir/openmp.src/runtime
|
|
||||||
cmake -DCMAKE_C_COMPILER=${clang} -DCMAKE_CXX_COMPILER=${clang}++ \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release -DLIBOMP_MICRO_TESTS=on \
|
|
||||||
$BuildDir/openmp.src/runtime
|
|
||||||
|
|
||||||
echo "# Building OpenMP run-time"
|
|
||||||
echo "# ${MAKE} -j $NumJobs VERBOSE=1"
|
|
||||||
${MAKE} -j $NumJobs VERBOSE=1
|
|
||||||
echo "# ${MAKE} libomp-micro-tests VERBOSE=1"
|
|
||||||
${MAKE} libomp-micro-tests VERBOSE=1
|
|
||||||
echo "# ${MAKE} install DESTDIR=$BuildDir/Phase3/openmp.install"
|
|
||||||
${MAKE} install DESTDIR=$BuildDir/Phase3/openmp.install
|
|
||||||
|
|
||||||
OpenMPPackage=OpenMP-$Release
|
|
||||||
if [ $RC != "final" ]; then
|
|
||||||
OpenMPPackage=$OpenMPPackage-$RC
|
|
||||||
fi
|
|
||||||
OpenMPPackage=$OpenMPPackage-$Triple
|
|
||||||
|
|
||||||
mv $BuildDir/Phase3/openmp.install/usr/local $BuildDir/$OpenMPPackage
|
|
||||||
cd $BuildDir
|
|
||||||
tar cvfJ $BuildDir/$OpenMPPackage.tar.xz $OpenMPPackage
|
|
||||||
mv $OpenMPPackage $BuildDir/Phase3/openmp.install/usr/local
|
|
||||||
cd $cwd
|
|
||||||
}
|
|
||||||
|
|
||||||
# Exit if any command fails
|
# Exit if any command fails
|
||||||
# Note: pipefail is necessary for running build commands through
|
# Note: pipefail is necessary for running build commands through
|
||||||
# a pipe (i.e. it changes the output of ``false | tee /dev/null ; echo $?``)
|
# a pipe (i.e. it changes the output of ``false | tee /dev/null ; echo $?``)
|
||||||
|
@ -594,10 +557,6 @@ for Flavor in $Flavors ; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ $do_openmp = "yes" ]; then
|
|
||||||
build_OpenMP
|
|
||||||
fi
|
|
||||||
|
|
||||||
) 2>&1 | tee $LogDir/testing.$Release-$RC.log
|
) 2>&1 | tee $LogDir/testing.$Release-$RC.log
|
||||||
|
|
||||||
package_release
|
package_release
|
||||||
|
|
Loading…
Reference in New Issue