llvm with tablegen backend for capstone disassembler
Go to file
Chandler Carruth 9c6b4f8528 [omp] Re-work Clang's handling of -fopenmp and undo r237769.
This isn't an actual revert of r237769, it just restores the behavior of
the Clang driver prior to it while completely re-implementing how that
behavior works.

This also re-does the work of making the default OpenMP runtime
selectable at CMake (or configure) time to work in the way all of our
other such hooks do (config.h, configure and cmake hooks, etc.).

I've re-implemented how we manage the '-fopenmp' flagset in an important
way. Now, the "default" hook just makes '-fopenmp' equivalent to
'-fopenmp=<default>' rather than a separate special beast. Also, there
is an '-fno-openmp' flag which does the obvious thing. Also, the code is
shared between all the places to select a known OpenMP runtime and act
on it.

Finally, and most significantly, I've taught the driver to inspect the
selected runtime when choosing whether to propagate the '-fopenmp' flag
to the frontend in the CC1 commandline. Without this, it isn't possible
to use Clang with libgomp, even if you were happy with the serial,
boring way in which it worked previously (ignoring all #pragmas but
linking in the library to satisfy direct calls into the runtime).

While I'm here, I've gone ahead and sketched out a path for the future
name of LLVM's OpenMP runtime (libomp) and the legacy support for its
current name (libiomp5) in what seems a more reasonable way.

To re-enable LLVM's OpenMP runtime (which I think should wait until the
normal getting started instructions are a reasonable way for falks to
check out, build, and install Clang with the runtime) all that needs to
change is the default string in the CMakeLists.txt and configure.ac
file. No code changes necessary.

I also added a test for the driver's behavior around OpenMP since it was
*completely missing* previously. Makes it unsurprising that we got it
wrong.

llvm-svn: 238389
2015-05-28 01:52:38 +00:00
clang [omp] Re-work Clang's handling of -fopenmp and undo r237769. 2015-05-28 01:52:38 +00:00
clang-tools-extra [clang-tidy] Renamed misc-noexcept-move-ctors to misc-noexcept-move-constructor 2015-05-27 14:24:11 +00:00
compiler-rt [asan] Fix build dependency issues with ASan version list file. 2015-05-27 22:38:01 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Use a more accurate implementation for exp 2015-05-13 03:55:09 +00:00
libcxx Fix PR#23647 - make_shared<volatile bool> - second try 2015-05-27 22:44:47 +00:00
libcxxabi Make sure !empty() before calling String::front(). 2015-05-26 23:14:26 +00:00
libunwind Code cleanup: Remove duplicated line. 2015-05-17 13:49:18 +00:00
lld Fix unused variable warnings. 2015-05-28 00:29:56 +00:00
lldb [TestDataFormatterUnordered] Use patterns to match unordered_<multi>set elements 2015-05-28 01:18:11 +00:00
llgo [llgo] cmd/llgoi: use line editor 2015-05-23 15:16:09 +00:00
llvm [omp] Add a configuration variable for the default OpenMP runtime. 2015-05-28 01:47:22 +00:00
openmp Fix comment about balanced affinity 2015-05-27 23:27:33 +00:00
polly Drop const in front of iterator 2015-05-27 06:51:34 +00:00