[Driver][OpenMP] Add support to create jobs for unbundling actions.
authorSamuel Antao <sfantao@us.ibm.com>
Thu, 27 Oct 2016 18:14:55 +0000 (18:14 +0000)
committerSamuel Antao <sfantao@us.ibm.com>
Thu, 27 Oct 2016 18:14:55 +0000 (18:14 +0000)
commit3b7e38b45061826dde67445dfc1488b489872a68
treea4e98a6fc9c02b96637e4fb807201bd5d3221c3b
parent7cab8f14662bfeb0f7fc8507f09421123c5c9474
[Driver][OpenMP] Add support to create jobs for unbundling actions.

Summary:
This patch adds the support to create jobs for the `OffloadBundlingAction` which will invoke the `clang-offload-bundler` tool to unbundle input files.

Unlike other actions, unbundling actions have multiple outputs. Therefore, this patch adds the required changes to have a variant of `Tool::ConstructJob` with multiple outputs.

The way the naming of the results is implemented is also slightly modified so that the same action can use a different offloading prefix for each use by the different offloading actions.

With this patch, it is possible to compile a functional OpenMP binary with offloading support, even with separate compilation.

Reviewers: echristo, tra, jlebar, ABataev, hfinkel

Subscribers: mkuron, whchung, mehdi_amini, cfe-commits, Hahnfeld, andreybokhanko, arpith-jacob, carlo.bertolli, caomhin

Differential Revision: https://reviews.llvm.org/D21857

llvm-svn: 285326
clang/include/clang/Driver/Action.h
clang/include/clang/Driver/Driver.h
clang/include/clang/Driver/Tool.h
clang/lib/Driver/Action.cpp
clang/lib/Driver/Driver.cpp
clang/lib/Driver/Tool.cpp
clang/lib/Driver/Tools.cpp
clang/lib/Driver/Tools.h
clang/test/Driver/cuda-bindings.cu
clang/test/Driver/openmp-offload.c
clang/test/Driver/opt-record.c