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
Jordan Rose
8ff1dac381
[AST] Break some header dependencies for faster rebuilds ( #27374 )
...
DiagnosticEngine.h no longer depends on Attr.h.
Expr.h no longer depends on TypeRepr.h.
No functionality change.
2019-09-26 09:17:10 -07:00
Xi Ge
70137251c6
Address Jordan's code review comments
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
Harlan Haskins
c82c9b8210
[ModuleInterfaces] Remove references to 'parseable' interfaces everywhere
...
Now that we've settled on Module Interface as the name, let's remove the
vestiges of "Parseable Interfaces"
2019-09-13 14:55:48 -07:00
Graydon Hoare
4f315363f8
[ModuleInterface] Change TY_SwiftModuleInterfaceFile to TY_SwiftParseableInterfaceFile
2018-10-11 23:56:19 -07:00
Jordan Rose
73d5ebaad2
Rename "textual interface" to "parseable interface" ( #19713 )
...
We already have something called "module interfaces" -- it's the
generated interface view that you can see in Xcode, the interface
that's meant for developers using a library. Of course, that's also a
textual format. To reduce confusion, rename the new module stability
feature to "parseable [module] interfaces".
2018-10-04 17:49:55 -07:00
Jordan Rose
d9e47650d5
Add a new SourceFileKind and InputFileKind for textual interfaces
...
And test this by tweaking the rules to allow functions without
definitions, like SIL files.
2018-08-07 08:55:07 -07:00
Jordan Rose
67a6a4ff18
Move swift/Frontend/FileTypes.h down to Basic
...
The next commit will take advantage of this, but this is just a
mechanical change.
2018-07-25 22:23:00 -07:00
Jordan Rose
798496c488
Consistently get extensions from swift/Frontend/FileTypes.h
...
...instead of sometimes hardcoding them and sometimes using Strings.h.
The exceptions are the libraries that sit below Frontend; these can
continue using strings.
2018-07-25 21:49:01 -07:00
Jordan Rose
b9ae66d768
[Frontend] Add a new -emit-interface-path option
...
...but don't hook it up to anything yet.
This is the very very start of the module stability / textual
interfaces feature described at
https://forums.swift.org/t/plan-for-module-stability/14551/
For now I've just made it a frontend option (not a driver option),
which is good enough for testing.
2018-07-20 16:40:51 -07:00
Ben Cohen
2b04e9f105
Suppress a number of warnings in no-assert builds ( #17721 )
...
* Supress a number of warnings about things used only in asserts
* Re-use a couple of variables instead of supressing the warning
2018-07-04 07:15:14 -07:00
David Ungar
aa2f2eb239
Call forEachNonPrimaryInput directly instead of providing useless semantics for forEachInputNotProducingSupplementaryOutput.
2018-05-10 14:20:49 -07:00
David Ungar
aaf51f7853
Addressing review comments.
2018-05-10 10:38:09 -07:00
David Ungar
34f423fb5b
Add clarifying comment to forEachInputNotProducingSupplementaryOutput.
2018-05-09 20:55:46 -07:00
David Ungar
02fcbf7226
optional pointer to consumer replaces NullDiagnosticConsumer placeholder
2018-05-09 18:09:40 -07:00
Michael Gottesman
26a569b33c
[stringref-upgrade] Change FrontendInputsAndOutputs::numberOfPrimaryInputsEndingWith to take a StringRef instead of a const char *.
...
This is in prepration for changing Strings.h to use StringLiteral.
2018-04-16 09:50:54 -07:00
David Ungar
026882d090
Use first primary name for batch input file name.
2018-03-03 19:30:13 -08:00
David Ungar
4866df6dfd
Move SupplementaryOutputs into each InputFile.
2018-02-28 09:41:49 -08:00
David Ungar
488db9fb9b
Fix ReferencedNameTracker in preparation for batch mode.
2018-02-16 22:28:10 -07:00
David Ungar
fec411e9bc
reformatted
2018-02-15 15:34:55 -07:00
David Ungar
1f9a4f3591
Pass around arguments for primary-specific filenames.
...
Get rid of IRGenOpts attributes that won’t work for batch mode and also remove fakeNamesStub.
2018-02-15 15:34:55 -07:00
David Ungar
ef02d0bfc0
Cleaner handling of cases where action produces no output or where there are no inputs.
2018-02-08 13:22:49 -08:00
David Ungar
ba4f2a84b4
Move supplementary outputs to SupplementaryOutputs in FrontendInputsAndOutputs.
2018-02-07 13:55:32 -08:00
David Ungar
c396a3a972
Don’t free the ASTContext if > 1 primary input.
2018-02-02 13:49:08 -08:00
David Ungar
614006bc4f
Move main outputs to FrontendInputsAndOutputs and InputFile
2018-02-01 11:55:08 -08:00
David Ungar
e006825d88
Move convertBufferNameFromLLVM_getFileOrSTDIN_toSwiftConventions deeper in the call stack.
2018-01-30 18:55:02 -08:00
David Ungar
4bd12ac509
Change conjunction to assertion in isInputPrimary to check consistency.
2018-01-30 18:55:01 -08:00
David Ungar
00da3e81ca
Reorder attributes in FrontendInputsAndOutputs
2018-01-30 18:55:01 -08:00
David Ungar
a9819b6e60
Renaming FrontendInputs -> FrontendInputsAndOutputs
...
Fix comment in ArtsToFrontendOptionsConverter re getOutputFilenamesFromCommandLineOrFilelist
2018-01-30 18:54:38 -08:00