Commit Graph

1773 Commits

Author SHA1 Message Date
David Ungar
e4fb791a3c bug fix unfmt 2019-11-19 12:30:43 -08:00
David Ungar
ee17f61179 factor out comparator and report supp jobs 2019-11-19 12:22:04 -08:00
David Ungar
d2146d1c47 Report falling back differently. 2019-11-18 23:09:58 -08:00
David Ungar
5d25cd8571 Print negative build decisions with -show-incremental 2019-11-18 22:58:34 -08:00
David Ungar
aee3cb482e Try both in filelist for linker 2019-11-18 22:19:43 -08:00
David Ungar
38a6559aa9 Take path arg for comparo 2019-11-18 20:23:10 -08:00
David Ungar
1f60d4479e Work with either source of inputs. 2019-11-18 17:53:52 -08:00
David Ungar
76c4742ba0 Use correct designator for filelist 2019-11-18 17:07:22 -08:00
Saleem Abdulrasool
6e234e6058 Driver: pass -target immediately after clang++ 2019-11-18 16:49:09 -08:00
David Ungar
0a0d22abab fmt 2019-11-16 23:54:52 -08:00
David Ungar
edbbdb65c7 WIP 2019-11-16 23:41:31 -08:00
David Ungar
a6bf84e20b refactoring WIP unfmt 2019-11-16 23:17:37 -08:00
David Ungar
3433bf8cef comparision WIP 2019-11-16 21:39:19 -08:00
David Ungar
6e453f0f6b Fix how batching is disabled and check batching in test 2019-11-16 18:08:20 -08:00
David Ungar
6b8b954e98 Recompile all when removed. 2019-11-16 14:45:34 -08:00
David Ungar
0b00afea7e pass compilation in to loadAllInfo in prep to do removed files 2019-11-16 08:52:11 -08:00
David Ungar
72f4837417 WIP executable 2019-11-16 08:41:20 -08:00
David Ungar
15ea29c3aa Handle new file 2019-11-15 22:22:06 -08:00
David Ungar
c913ffa40e Tests the source-comparator 2019-11-15 17:26:37 -08:00
swift_jenkins
b9f998ffa4 Merge remote-tracking branch 'origin/master' into master-next 2019-11-15 15:56:48 -08:00
David Ungar
692ca29bd2 Dump both sides' changes for testing. 2019-11-15 14:53:34 -08:00
David Ungar
754c44fbc7 Test top-level additions 2019-11-15 13:21:45 -08:00
David Ungar
0c72c1e375 fmt 2019-11-15 10:32:45 -08:00
David Ungar
b5afac3c08 msgs unfmt 2019-11-15 10:30:55 -08:00
David Ungar
a37ff5b618 rm extra space in message 2019-11-15 09:51:38 -08:00
David Ungar
a30a62446b Rm extra space in noteBuilding call 2019-11-14 17:31:10 -08:00
David Ungar
6a0dcdb2f8 Add range outputs even if ranges are enabled but not used 2019-11-14 14:41:34 -08:00
Doug Gregor
ec70b62d5e Merge pull request #28107 from allevato/emit-pcm
Add driver flag to precompile Swift-compatible explicit Clang modules.
2019-11-14 10:25:53 -08:00
David Ungar
6bc631725d Only output range-dep outputs when it's enabled. 2019-11-13 23:33:33 -08:00
David Ungar
30429c0fa1 Ensure that files with missing supplementaries get recompiled. 2019-11-12 20:41:03 -08:00
David Ungar
873ac20bdf Shortcut the diff if the saved source is newer. 2019-11-12 20:41:03 -08:00
David Ungar
033eaec1e8 Fix bug around scheduling when dep loads fail. 2019-11-12 20:41:03 -08:00
David Ungar
b309759028 Keep message same as before for the sake of tests. 2019-11-12 20:41:03 -08:00
David Ungar
69dcc3ba18 Fix bug for newly-added failing job with swiftdeps filename 2019-11-12 20:41:03 -08:00
David Ungar
2cbd5e7a16 Ensure that a dependency load failure schedules all jobs. 2019-11-12 20:41:03 -08:00
David Ungar
69775ff850 Comments 2019-11-12 20:41:03 -08:00
David Ungar
742c3985bd Source-range-based dependencies
Frontend outputs source-as-compiled, and source-ranges file with function body ranges and ranges that were unparsed in secondaries.
Driver computes diffs for each source file. If diffs are in function bodies, only recompiles that one file. Else if diffs are in what another file did not parse, then the other file need not be rebuilt.
2019-11-12 20:41:02 -08:00
Dan Liew
63e72909b5 [Sanitizers] Add Driver/Frontend option to enable sanitizer instrumentation that supports error recovery.
The new option `-sanitize-recover=` takes a list of sanitizers that
recovery instrumentation should be enabled for. Currently we only
support it for Address Sanitizer.

If the option is not specified then the generated instrumentation does
not allow error recovery.

This option mirrors the `-fsanitize-recover=` option of Clang.

We don't enable recoverable instrumentation by default because it may
lead to code size blow up (control flow has to be resumable).

The motivation behind this change is that today, setting
`ASAN_OPTIONS=halt_on_error=0` at runtime doesn't always work. If you
compile without the `-sanitize-recover=address` option (equivalent to
the current behavior of the swift compiler) then the generated
instrumentation doesn't allow for error recovery. What this means is
that if you set `ASAN_OPTIONS=halt_on_error=0` at runtime and if an ASan
issue is caught via instrumentation then the process will always halt
regardless of how `halt_on_error` is set. However, if ASan catches an
issue via one of its interceptors (e.g. memcpy) then `the halt_on_error`
runtime option is respected.

With `-sanitize-recover=address` the generated instrumentation allows
for error recovery which means that the `halt_on_error` runtime option
is also respected when the ASan issue is caught by instrumentation.

ASan's default for `halt_on_error` is true which means this issue only
effects people who choose to not use the default behavior.

rdar://problem/56346688
2019-11-12 11:33:58 -08:00
Tony Allevato
3c45041b17 Add driver modes to emit and dump Clang precompiled modules. 2019-11-11 15:00:51 -08:00
swift-ci
84f192ddce Merge remote-tracking branch 'origin/master' into master-next 2019-10-10 13:50:08 -07:00
Xi Ge
014f863546 SerializeLoc: address more comments from Jordan. NFC 2019-10-09 15:29:52 -07:00
Xi Ge
dec878360f Driver: rename Name.swiftmodule/Private directory to Name.swiftmodule/Project
This directory should be excluded during installation since the content is only
used for local development. swiftsourceinfo file is currently emitted to this directory.
2019-10-09 15:29:52 -07:00
swift-ci
6bb6e32f5d Merge remote-tracking branch 'origin/master' into master-next 2019-09-30 18:29:51 -07:00
Jordan Rose
632399e0f8 [Driver] Include more info in "crash because TMPDIR is borked" errors (#27412)
Two places in Driver are creating temporary files at a point in the
process where failure is not expected. We should do something better
about this, but meanwhile harmonize their failures and include a
little more info.

Filed https://bugs.swift.org/browse/SR-11541 to improve this.
2019-09-30 18:18:27 -07:00
swift-ci
76e7b1d2eb Merge remote-tracking branch 'origin/master' into master-next 2019-09-24 20:50:21 -07:00
Xi Ge
70137251c6 Address Jordan's code review comments 2019-09-24 13:52:17 -07:00
Xi Ge
ec9cf33af0 Driver: expose -emit-module-source-info-path as a driver option 2019-09-24 13:52:17 -07:00
Xi Ge
3103b5cec1 Frontend: set up output file .swiftsourceinfo
This patch will focus on teaching driver and frontend to emit this file.
The actual content and de-serialization parts will come later.

More details: https://forums.swift.org/t/proposal-emitting-source-information-file-during-compilation/28794
2019-09-24 13:52:17 -07:00
swift-ci
dc66cb64a0 Merge remote-tracking branch 'origin/master' into master-next 2019-09-21 04:49:41 -07:00
Dan Zheng
3bbc50430b Add -no-toolchain-stdlib-rpath flag. (#27207)
Add `-no-toolchain-stdlib-rpath` flag: the negative version of
`-toolchain-stdlib-rpath`.

Make `-no-toolchain-stdlib-rpath` be the default: use `/usr/lib/swift` as
default RPATH on Darwin platforms instead of toolchain standard library.

Adapted from https://github.com/apple/swift/pull/27206.

tensorflow branch requires the opposite default (use toolchain standard
library as RPATH) because some stdlib modules like TensorFlow do not exist in
`/usr/lib/swift`.
2019-09-21 04:38:25 -07:00