Skip to content

Commit

Permalink
[OPENMP] Make -fopenmp to turn on OpenMP support by default.
Browse files Browse the repository at this point in the history
Patch turns on OpenMP support in clang by default after fixing OpenMP buildbots.
Differential Revision: http://reviews.llvm.org/D13802


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@255222 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
alexey-bataev committed Dec 10, 2015
1 parent 54fd4d4 commit 5ebd7ba
Show file tree
Hide file tree
Showing 5 changed files with 25 additions and 53 deletions.
2 changes: 1 addition & 1 deletion autoconf/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -1343,7 +1343,7 @@ AC_DEFINE_UNQUOTED(DEFAULT_SYSROOT,"$withval",
AC_ARG_WITH(clang-default-openmp-runtime,
AS_HELP_STRING([--with-clang-default-openmp-runtime],
[The default OpenMP runtime for Clang.]),,
withval="libgomp")
withval="libomp")
AC_DEFINE_UNQUOTED(CLANG_DEFAULT_OPENMP_RUNTIME,"$withval",
[Default OpenMP runtime used by -fopenmp.])

Expand Down
2 changes: 1 addition & 1 deletion configure
Original file line number Diff line number Diff line change
Expand Up @@ -5954,7 +5954,7 @@ _ACEOF
if test "${with_clang_default_openmp_runtime+set}" = set; then
withval=$with_clang_default_openmp_runtime;
else
withval="libgomp"
withval="libomp"
fi


Expand Down
17 changes: 15 additions & 2 deletions docs/GettingStarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,12 @@ Here's the short story for getting up and running quickly with LLVM:
* ``cd llvm/projects``
* ``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]**:

* ``cd where-you-want-llvm-to-live``
Expand Down Expand Up @@ -535,6 +541,13 @@ If you want to check out compiler-rt (required to build the sanitizers), run:
% cd llvm/projects
% 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:

.. code-block:: console
Expand Down Expand Up @@ -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 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
upstream Git repo, run:
Expand All @@ -648,7 +661,7 @@ upstream Git repo, run:
git checkout master &&
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
``checkout`` each working branch individually and ``rebase`` it on top of its
Expand Down
2 changes: 1 addition & 1 deletion docs/ReleaseProcess.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ test-release.sh
---------------

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
that's the one you should use for the test-suite and other external tests.

Expand Down
55 changes: 7 additions & 48 deletions utils/release/test-release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ do_rt="yes"
do_libs="yes"
do_libunwind="yes"
do_test_suite="yes"
do_openmp="no"
do_openmp="yes"
BuildDir="`pwd`"
use_autoconf="no"
ExtraConfigureFlags=""
Expand Down Expand Up @@ -62,7 +62,7 @@ function usage() {
echo " -no-libs Disable check-out & build libcxx/libcxxabi/libunwind"
echo " -no-libunwind Disable check-out & build libunwind"
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
Expand Down Expand Up @@ -143,8 +143,8 @@ while [ $# -gt 0 ]; do
-no-test-suite )
do_test_suite="no"
;;
-openmp )
do_openmp="yes"
-no-openmp )
do_openmp="no"
;;
-help | --help | -h | --h | -\? )
usage
Expand Down Expand Up @@ -293,6 +293,9 @@ function export_sources() {
if [ -d $BuildDir/compiler-rt.src ] && [ ! -h compiler-rt ]; then
ln -s ../../compiler-rt.src compiler-rt
fi
if [ -d $BuildDir/openmp.src ] && [ ! -h openmp ]; then
ln -s ../../openmp.src openmp
fi
if [ -d $BuildDir/libcxx.src ] && [ ! -h libcxx ]; then
ln -s ../../libcxx.src libcxx
fi
Expand Down Expand Up @@ -443,46 +446,6 @@ function package_release() {
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
# Note: pipefail is necessary for running build commands through
# a pipe (i.e. it changes the output of ``false | tee /dev/null ; echo $?``)
Expand Down Expand Up @@ -594,10 +557,6 @@ for Flavor in $Flavors ; do
fi
done

if [ $do_openmp = "yes" ]; then
build_OpenMP
fi

) 2>&1 | tee $LogDir/testing.$Release-$RC.log

package_release
Expand Down

0 comments on commit 5ebd7ba

Please sign in to comment.