Bail on compilation as soon as a job fails.
authorJustin Lebar <jlebar@google.com>
Wed, 10 Feb 2016 22:17:00 +0000 (22:17 +0000)
committerJustin Lebar <jlebar@google.com>
Wed, 10 Feb 2016 22:17:00 +0000 (22:17 +0000)
commit4022d529594dea28ef11ae78c214cf37f139f053
tree0e5582c51581d1767d0b4d902159024b4857158d
parent936db8fa2f20a99596c16e209df37f1c29041844
Bail on compilation as soon as a job fails.

Previously we attempted to be smart; if one job failed, we'd run all
jobs that didn't depend on the failing job.

Problem is, this doesn't work well for e.g. CUDA compilation without
-save-temps.  In this case, the device-side and host-side Assemble
actions (which actually are responsible for preprocess, compile,
backend, and assemble, since we're not saving temps) are necessarily
distinct.  So our clever heuristic doesn't help us, and we repeat every
error message once for host and once for each device arch.

The main effect of this change, other than fixing CUDA, is that if you
pass multiple cc files to one instance of clang and you get a compile
error, we'll stop when the first cc1 job fails.

Reviewers: tra, echristo

Subscribers: jhen, cfe-commits

Differential Revision: http://reviews.llvm.org/D16514

llvm-svn: 260448
clang/lib/Driver/Compilation.cpp