diff options
author | Artem Belevich <tra@google.com> | 2015-08-27 18:10:41 +0000 |
---|---|---|
committer | Artem Belevich <tra@google.com> | 2015-08-27 18:10:41 +0000 |
commit | f8144ab44fba3ef25701ccc3ef9a0f8cae1b9c3b (patch) | |
tree | 6ba92992f9a1072be4239087d4f4f3b8e587c5ba /llvm/docs/tutorial | |
parent | aabfadef84cdcc6aef529348a287e0130f7aee6d (diff) | |
download | bcm5719-llvm-f8144ab44fba3ef25701ccc3ef9a0f8cae1b9c3b.tar.gz bcm5719-llvm-f8144ab44fba3ef25701ccc3ef9a0f8cae1b9c3b.zip |
[CUDA] Improve CUDA compilation pipeline creation.
Current implementation tries to guess which Action will result in a
job which needs to incorporate device-side GPU binaries. The guessing
was attempting to work around the fact that multiple actions may be
combined into a single compiler invocation. If CudaHostAction ends up
being combined (and thus bypassed during action list traversal) no
device-side actions it pointed to were processed. The guessing worked
for most of the usual cases, but fell apart when external assembler
was used.
This change removes the guessing and makes sure we create and pass
device-side jobs regardless of how the jobs get combined.
* CudaHostAction is always inserted either at Compile phase or the
FinalPhase of current compilation, whichever happens first.
* If selectToolForJob combines CudaHostAction with other actions, it
passes info about CudaHostAction up to the caller
* When it sees that CudaHostAction got combined with other actions
(and hence will never be passed to BuildJobsForActions),
BuildJobsForActions creates device-side jobs the same way they would
be created if CudaHostAction was passed to BuildJobsForActions
directly.
* Added two more test cases to make sure GPU binaries are passed to
correct jobs.
Differential Revision: http://reviews.llvm.org/D11280
llvm-svn: 246174
Diffstat (limited to 'llvm/docs/tutorial')
0 files changed, 0 insertions, 0 deletions