Commit Graph

1784 Commits

Author SHA1 Message Date
David Ungar
5b0c4b2486 Fix memory violation when build record is bad. 2019-11-22 14:56:31 -08:00
David Ungar
62ae2bfd2f Merge pull request #28164 from davidungar/WIP-custom-diff
[Incremental compilation] Source-range-based dependencies
2019-11-21 23:47:52 -08:00
David Ungar
3ff6c1c315 Merge pull request #28347 from davidungar/rdar-56946329-dynlink-filelist
[Driver] Use correct designator for filelist for dynamic link job
2019-11-21 11:31:39 -08:00
David Ungar
68f0ea2290 fmt 2019-11-21 00:01:34 -08:00
David Ungar
65d8504a16 WIP non alloc 2019-11-20 23:59:13 -08:00
David Ungar
59fc0c209b Heap-alloc PRLinks 2019-11-20 14:38:37 -08:00
David Ungar
46ad660606 untested minor refact 2019-11-20 13:28:52 -08:00
David Ungar
468a23cef9 report stages unfmt 2019-11-20 13:28:19 -08:00
swift_jenkins
f60eec9290 Merge remote-tracking branch 'origin/master' into master-next 2019-11-20 13:20:27 -08:00
David Ungar
ae64f471cd Reporting refactoring 2019-11-19 16:42:21 -08:00
David Ungar
bc403424ee Use sets 2019-11-19 13:10:33 -08:00
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