[CUDA][OpenMP] Create generic offload toolchains
Summary: This patch introduces the concept of offloading tool chain and offloading kind. Each tool chain may have associated an offloading kind that marks it as used in a given programming model that requires offloading. It also adds the logic to iterate on the tool chains based on the kind. Currently, only CUDA is supported, but in general a programming model (an offloading kind) may have associated multiple tool chains that require supporting offloading. This patch does not add tests - its goal is to keep the existing functionality. This patch is the first of a series of three that attempts to make the current support of CUDA more generic and easier to extend to other programming models, namely OpenMP. It tries to capture the suggestions/improvements/concerns on the initial proposal in http://lists.llvm.org/pipermail/cfe-dev/2016-February/047547.html. It only tackles the more consensual part of the proposal, i.e.does not address the problem of intermediate files bundling yet. Reviewers: ABataev, jlebar, echristo, hfinkel, tra Subscribers: guansong, Hahnfeld, andreybokhanko, tcramer, mkuron, cfe-commits, arpith-jacob, carlo.bertolli, caomhin Differential Revision: http://reviews.llvm.org/D18170 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272571 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/Driver/Action.h 15 additions, 0 deletionsinclude/clang/Driver/Action.h
- include/clang/Driver/Compilation.h 53 additions, 9 deletionsinclude/clang/Driver/Compilation.h
- include/clang/Driver/Driver.h 5 additions, 0 deletionsinclude/clang/Driver/Driver.h
- lib/Driver/Compilation.cpp 6 additions, 3 deletionslib/Driver/Compilation.cpp
- lib/Driver/Driver.cpp 29 additions, 14 deletionslib/Driver/Driver.cpp
- lib/Driver/Tools.cpp 4 additions, 4 deletionslib/Driver/Tools.cpp
Loading
Please register or sign in to comment