Alexis Laferrière
83cd432785
[Frontend] Intro global control to force loading from swiftinterface
...
Intro ASTContext::setIgnoreAdjacentModules to change module loading to
accept load only resilient modules from their swiftinterfaces, ignoring
the adjacent module and any silencing swiftinterfaces errors.
2022-10-31 10:58:54 -07:00
Anthony Latsis
18156d1177
Merge pull request #61347 from AnthonyLatsis/migrate-compiler-to-gh-issues
...
Gardening: Migrate compiler sources to GitHub issues
2022-09-30 10:48:52 +03:00
Anthony Latsis
2843e0c871
Gardening: Migrate compiler sources to GitHub issues
2022-09-29 23:58:55 +03:00
Alex Lorenz
c193a63fd4
[interop][SwiftToCxx] add -enable-experimental-cxx-interop-in-clang-header flag that lets you enable reverse interop only
2022-09-27 11:26:21 -07:00
Artem Chikin
aee45799b8
Invoke Explicit Interface Build when '-explicit-interface-module-build' is specified on a '-compile-module-from-interface' frontend action, using the CompilerInstance instantiated directly from the command-line in order to build the module.
2022-08-16 08:36:58 -07:00
Artem Chikin
7fd2a29fb7
Refactor 'ModuleInterfaceBuilder' to separate CompilerInstance setup logic from compilation logic (moved to ExplicitModuleInterfaceBuilder).
2022-08-16 08:36:55 -07:00
swift-ci
e6fb394cb5
Merge remote-tracking branch 'origin/main' into rebranch
2022-08-02 06:56:37 -07:00
Artem Chikin
6e7f3076b8
Add rudimentary emission of compile-time-known default-initialized property values of specific conformances.
2022-08-01 11:06:59 -07:00
swift-ci
b99996dbbd
Merge remote-tracking branch 'origin/main' into rebranch
2022-07-21 13:37:34 -07:00
Artem Chikin
b1fee939f1
Add supplementary output path handling for extracted compile-time-known values
2022-07-19 16:24:26 -07:00
swift-ci
2487c19575
Merge remote-tracking branch 'origin/main' into rebranch
2022-07-11 20:34:04 -07:00
Tony Allevato
4d16c43d21
Add -index-include-locals flag.
...
When this flag is passed, index store data emitted during a build
will also contain definitions/references for local symbols.
2022-07-11 14:08:07 -07:00
swift-ci
aab8da997e
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-29 16:34:49 -07:00
Allan Shortlidge
3308e4b38c
NFC: Fix a few warnings emitted when building swift-frontend.
2022-06-29 12:09:42 -07:00
swift-ci
1ec185309f
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-24 00:14:42 -07:00
Erik Eckstein
ca291fb147
SIL: store IRGenOptions in SILModule
...
SIL optimization passes can use the IRGen options to do target specific optimizations.
2022-06-23 22:16:42 +02:00
swift-ci
7cb90dc351
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-10 15:33:41 -07:00
Arnold Schwaighofer
821ba47079
IRGen: Add a frontend option to force single LLVM module emission in multithreaded mode
...
This allows to experiment with single module LLVM emission without
having to change drivers that expect multiple output files.
rdar://94744623
2022-06-10 09:46:07 -07:00
swift-ci
797e0acecf
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-07 11:13:30 -07:00
Artem Chikin
11f24ca20d
Merge pull request #59256 from artemcm/FrontendParseableUnknownExtensions
...
[Parseable Output] Generate valid output for files of unknown types
2022-06-07 10:57:41 -07:00
Artem Chikin
19c5c201dc
[Parseable Output] Generate valid output for files of unknown types
...
When we encounter an input or output with an unknown extension 'TY_INVALID', still produce valid JSON specifying the type as "unknown" instead of either crashing or producing malformed JSON.
Resolves rdar://94348593
2022-06-03 11:40:32 -07:00
swift-ci
8866f0cf4f
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-03 09:53:40 -07:00
Ben Barham
15c0ce3545
Merge pull request #58932 from DavidGoldman/ignoreclangmoduleindexing
...
Add `-index-ignore-clang-modules` flag to prevent indexing Clang modules
2022-06-03 09:42:56 -07:00
swift-ci
7e70b2dd22
Merge remote-tracking branch 'origin/main' into rebranch
2022-06-02 21:17:11 -07:00
Alex Lorenz
42c6ff63b8
[interop][SwiftToCxx] Gather initial struct layout information and emit struct stubs with storage in C++
...
This change extends the clang header printer to start emitting C++ classes for Swift struct types with the correct struct layout in them (size + alignment)
2022-06-01 14:06:25 -07:00
David Goldman
63c88b97f1
Add -index-ignore-clang-modules flag
...
This flag avoids indexing import clang modules (pcms), behaving
similar to `-index-ignore-system-modules` except for PCMs.
2022-05-17 19:41:26 -04:00
swift-ci
75f7d2e957
Merge remote-tracking branch 'origin/main' into rebranch
2022-05-16 14:13:30 -07:00
Ben Barham
47721d25e6
Merge pull request #42394 from DavidGoldman/hermeticindexstore
...
Support hermetic indexing information + introduce `-file-prefix-map`
2022-05-16 14:09:25 -07:00
David Goldman
c232ed2913
Support hermetic indexing information
...
Swiftc port of https://github.com/apple/llvm-project/pull/4207 .
This introduces a new flag, `-file-prefix-map` which can be used
instead of the existing `-debug-prefix-map` and `-coverage-prefix-map`
flags, and also remaps paths in index information currently.
2022-05-16 11:00:14 -04:00
swift-ci
d014fc514a
Merge remote-tracking branch 'origin/main' into rebranch
2022-05-13 15:53:42 -07:00
swift-ci
9c57f7f6a6
Merge remote-tracking branch 'origin/main' into rebranch
2022-05-12 15:51:44 -07:00
Artem Chikin
0ddd1a9202
[Parseable Output] Emit parseable messages on failure in CompilerInstance.setup
...
FrontendTool sets up diagnostic infrastructure early and suppresses stdout diagnostics if frontend-parseable-output is enabled. It then calls `CompilerInstance.setup` which may fail - if it fails, we exit early. But that means we have not gotten a chance to emit parseable-output.
This change moves emission of the `began` parseable message to before `CompilerInstance.setup`, and ensures that a corresponding `finished` message is emitted if the setup fails.
Resolves rdar://93187783
2022-05-12 15:18:57 -07:00
Artem Chikin
b66d6cc9ec
[Parseable Output] Compute file extensions using full extension strings
...
Generation of valid JSON output for parseable output depends on being able to determine file types of inputs and outputs of compilation tasks. FileTypes.def defines multiple file kinds with multiple '.' extensions, such as '.abi.json' or '.features.json', but existing code attempted to compute file outputs only using the trailing suffix of the path after the last '.'. This led to some files not being recognized, which led to us not being able to generate valid JSON.
Resolves rdar://92961252
2022-05-12 13:01:09 -07:00
Ben Barham
427a689a96
[next] Convert const char * fields to StringRef
...
llvm/llvm-project d0262c2394f46bb7da2a75529413d625c70908e5 added a new
default bool param to the two constructors in `SmallVectorMemoryBuffer`.
Since `options.OutputPath` is a `const char *` and that can be promoted
to a `bool`, the constructor being called was changed to the first
constructor (with a default buffer name) - promotion is preferred over
conversion.
Convert the various output paths to a `StringRef` - all their uses
converted to `StringRef` anyway. Also specify the default parameter in
order to maintain the old behaviour, which didn't require a null
terminator.
2022-05-11 17:06:29 -07:00
Erik Eckstein
abb2da88e6
Add a flag -enable-default-cmo to enable default cross-module-optimization.
...
So far, the swift-frontend decided by itself if CMO can be enabled. This caused problems when used with an old driver, which doesn't consider CMO.
Now, the driver decides when to use default CMO by passing this flag to swift-frontend.
2022-04-29 18:22:55 +02:00
Erik Eckstein
45acb912a9
Revert "Add a mechanism to let cross-module-optimization add additional TBD symbols."
...
This reverts commit c55f040308 .
It's not needed anymore because CMO does not introduce public symbols when a TBD file is emitted.
2022-04-29 18:22:55 +02:00
Artem Chikin
9d2aecbde4
Frontend emitting parsable output, as implemented, emitted began/finished messages on a per-primary basis. Which means that -frontend-parseable-output had no effect in contexts where no primary inputs are specified, such as WMO. This change fixes that by also emitting began/finished messages when no primary outputs are specified.
...
Resolves rdar://91999048
2022-04-28 13:24:03 -07:00
Josh Soref
38c0de0598
Spelling frontend ( #42465 )
...
* spelling: calculated
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: compilations
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: containing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dependency
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: dependent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: diagnose
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: explicit
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: explicitly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: feature
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: fulfill
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: fulfillment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: invoke
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: module
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: multiple
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: nonexistent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: omitted
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: optimization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: performing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: primaries
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: propagate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: sacrifices
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: scanned
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: substitution
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: successful
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: typecheck
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: unobtrusive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
* spelling: utilities
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com >
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com >
2022-04-20 15:18:37 -07:00
Alex Lorenz
80bc75ab9b
[cxx-interop] Emit C++ declarations only when '-clang-header-expose-public-decl' is enabled
...
This fix also ensures that we only emit C++ functions for now
2022-03-20 20:22:02 -07:00
Alex Lorenz
2e3aa87737
Revert "Revert "Merge pull request #41831 from hyp/unify-header""
...
This reverts commit 4c9582c295 .
2022-03-19 13:36:28 -07:00
Alex Lorenz
4c9582c295
Revert "Merge pull request #41831 from hyp/unify-header"
...
This reverts commit cd93d23bac , reversing
changes made to f9f5476e9a .
2022-03-18 10:03:07 -07:00
Alex Lorenz
9d52099d5b
[cxx-interop] start to emitting a unified header file for a Swift module
...
This change removes the -emit-cxx-header option, and adds a new -emit-clang-header-path option instead. It's aliased to -emit-objc-header-path for now, but in the future, -emit-objc-header-path will alias to it. After this change Swift can start emitting a single header file that can be expose declarations to C, Objective-C, or C++. For now C++ interface is generated (for all public decls) only when -enable-cxx-interop flag is passed, but that behavior will change once attribute is supported.
2022-03-17 10:34:47 -07:00
Becca Royal-Gordon
e4f0392e06
[NFC] Make Sema -dump flags work when Sema fails
...
`-dump-scope-maps` and `-dump-type-refinement-contexts` now dump out the content they're designed to emit even when there's an error during semantic analysis that would previously have stopped them from running.
2022-03-04 10:05:58 -08:00
Xi Ge
1115332ab9
ModuleInterface: add a frontend flag to skip printing import statement corresponding to a module name.
...
Related: rdar://63465931
2022-02-24 15:33:26 -08:00
Rintaro Ishizaki
d91ec5ac1d
[SourceKit] Add cancellation points for 'compile' requests
...
After each stage of the compilation pipeline before the code generation.
Sema, SILGen, SILOptimization, SILLowering, IRGen.
2022-01-24 22:18:10 -08:00
Alex Lorenz
e106551028
[NFC][interop] rename the PrintAsObjC library to PrintAsClang
...
We're starting to support emission of C++ header interfaces, so a language-agnostic name makes more sense
2022-01-20 11:31:58 -08:00
Alex Lorenz
7aa1cd166e
Fix comment typos related to printAsCXX
2022-01-20 11:04:21 -08:00
Alex Lorenz
e0eec4dd7c
Merge pull request #40923 from hyp/emit-cxx-interface-option
...
[interop] add an option to emit C++ header interface for a module
2022-01-20 07:16:53 -08:00
Alex Lorenz
6486c3c1d8
[interop] add an option to emit C++ header interface for a module
2022-01-19 18:55:14 -08:00
swift-ci
35f8b62ffc
Merge remote-tracking branch 'origin/main' into rebranch
2022-01-18 13:40:44 -08:00