Add "interface hash" for improved incremental builds.

Compute the hash of all interface tokens when parsing; write the
interface hash to the swiftdeps file, or if the -dump-interface-hash
option is passed to the frontend. This hash will be used in incremental
mode to determine whether a file's interface has changed, and therefore
whether dependent files need to be rebuilt in response to the change.

Committed on ChrisW's behalf while he gets his setup unborked.

rdar://problem/15352929

Swift SVN r30477
This commit is contained in:
Jordan Rose
2015-07-22 00:13:54 +00:00
parent 50a667b295
commit fbb8d3f9a8
18 changed files with 240 additions and 7 deletions

View File

@@ -22,6 +22,7 @@ bool FrontendOptions::actionHasOutput() const {
case Parse:
case DumpParse:
case DumpAST:
case DumpInterfaceHash:
case PrintAST:
case DumpTypeRefinementContexts:
return false;
@@ -49,6 +50,7 @@ bool FrontendOptions::actionIsImmediate() const {
case Parse:
case DumpParse:
case DumpAST:
case DumpInterfaceHash:
case PrintAST:
case DumpTypeRefinementContexts:
case EmitSILGen: