Commit Graph

5116 Commits

Author SHA1 Message Date
swift-ci
37bf57ef27 Merge remote-tracking branch 'origin/main' into rebranch 2024-06-11 15:53:47 -07:00
Meghana Gupta
f1a887515b Merge pull request #74195 from meg-gupta/immortal
Add dependsOn(immortal)
2024-06-11 15:51:34 -07:00
Meghana Gupta
c14559173d Add dependsOn(immortal) 2024-06-11 11:18:10 -07:00
swift-ci
d4b69a39b8 Merge remote-tracking branch 'origin/main' into rebranch 2024-06-06 12:55:05 -07:00
Alexis Laferrière
10a1dccc45 Merge pull request #74159 from xymus/recover-readPattern
Serialization: Recover from deserialization failures under readPattern
2024-06-06 12:46:00 -07:00
swift-ci
be87ad7bcb Merge remote-tracking branch 'origin/main' into rebranch 2024-06-06 10:35:38 -07:00
Meghana Gupta
af1d6017f9 Merge pull request #74132 from meg-gupta/deleteresultdependson
Remove resultDependsOn/resultDependsOnSelf
2024-06-06 10:23:31 -07:00
swift-ci
a523f4942e Merge remote-tracking branch 'origin/main' into rebranch 2024-06-05 20:14:34 -07:00
nate-chandler
40e8b155b0 Merge pull request #73859 from nate-chandler/lifetime-completion/20240523/1
[LifetimeCompletion] Mark lifetimes in dead-end loops.
2024-06-05 20:01:45 -07:00
Tim Kientzle
1d961ba22d Add #include "swift/Basic/Assertions.h" to a lot of source files
Although I don't plan to bring over new assertions wholesale
into the current qualification branch, it's entirely possible
that various minor changes in main will use the new assertions;
having this basic support in the release branch will simplify that.
(This is why I'm adding the includes as a separate pass from
rewriting the individual assertions)
2024-06-05 19:37:30 -07:00
swift-ci
aed40bd421 Merge remote-tracking branch 'origin/main' into rebranch 2024-06-05 19:34:38 -07:00
Artem Chikin
d2ed753d52 Merge pull request #73907 from artemcm/ExplicitAutoLinkScanner
[Dependency Scanning] Collect and report each module dependency's Link Libraries
2024-06-05 19:26:34 -07:00
Alexis Laferrière
cde298198c Serialization: Recover from deserialization failures under readPattern
rdar://129310602
2024-06-05 16:55:35 -07:00
Nate Chandler
2a5d07522d [SIL] Add extend_lifetime instruction.
It indicates that the value's lifetime continues to at least this point.
The boundary formed by all consuming uses together with these
instructions will encompass all uses of the value.
2024-06-05 16:28:26 -07:00
swift-ci
a3c0c2f870 Merge remote-tracking branch 'origin/main' into rebranch 2024-06-05 14:36:10 -07:00
Meghana Gupta
470fa2f365 Remove resultDependsOn/resultDependsOnSelf 2024-06-05 11:36:16 -07:00
artemcm
d70863501e [Dependency Scanning] Collect and report each module dependency's Link Libraries 2024-06-05 10:59:41 -07:00
Alexis Laferrière
ab6a7017d0 Merge branch 'main' into serial-fix-control-block 2024-06-05 10:46:49 -07:00
swift-ci
6502924e2e Merge remote-tracking branch 'origin/main' into rebranch 2024-06-04 11:55:06 -07:00
Ellie Shin
6216ec648f Merge pull request #73902 from apple/elsh/pkg-cmo-inline
[SIL][PackageCMO] Allow optimizing [serialized_for_pkg] functions
2024-06-04 11:39:19 -07:00
swift-ci
2aff268350 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-30 20:34:28 -07:00
Alejandro Alonso
324cb2df1f Merge pull request #73955 from Azoy/show-me-those-moves
[IRGen] Add option for raw layout to move as its like type
2024-05-30 20:32:49 -07:00
swift-ci
b77fb4dc2e Merge remote-tracking branch 'origin/main' into rebranch 2024-05-30 08:54:27 -07:00
Konrad `ktoso` Malawski
8145de2147 [DNM] Remove stray debugging comments 2024-05-30 21:28:38 +09:00
Ellie Shin
c3ded85c4f Update SILBridgedFunction APIs.
Add isAnySerialized() and canBeInlinedIntoCaller(SerializedKind).
2024-05-29 15:54:36 -07:00
Alejandro Alonso
a9da08ccb6 Add option for raw layout to move as its like type 2024-05-28 14:34:22 -07:00
swift-ci
a29614d801 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-28 07:33:12 -07:00
Ellie Shin
4ecfc96578 [SIL][PackageCMO] Allow optimizing [serialized_for_pkg] functions during SIL
inlining, generic/closure specialization, and devirtualization optimization passes.

SILFunction::canBeInlinedIntoCaller now exlicitly requires a caller's SerializedKind_t arg.
isAnySerialized() is added as a convenience function that checks if [serialized] or [serialized_for_pkg].

Resolves rdar://128704752
2024-05-27 23:05:56 -07:00
Konrad `ktoso` Malawski
168bc7b454 [Concurrency] Fix how we obtain DA-as-A conformance for cross module
Resolves rdar://127206143
2024-05-28 13:37:21 +09:00
swift-ci
112cf2df58 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-24 10:15:07 -07:00
Ellie Shin
5ccc4cd394 SIL function can be serialized with different kinds: [serialized] or
[serialized_for_package] if Package CMO is enabled. The latter kind
allows a function to be serialized even if it contains loadable types,
if Package CMO is enabled. Renamed IsSerialized_t as SerializedKind_t.

The tri-state serialization kind requires validating inlinability
depending on the serialization kinds of callee vs caller; e.g. if the
callee is [serialized_for_package], the caller must be _not_ [serialized].
Renamed `hasValidLinkageForFragileInline` as `canBeInlinedIntoCaller`
that takes in its caller's SerializedKind as an argument. Another argument
`assumeFragileCaller` is also added to ensure that the calle sites of
this function know the caller is serialized unless it's called for SIL
inlining optimization passes.

The [serialized_for_package] attribute is allowed for SIL function, global var,
v-table, and witness-table.

Resolves rdar://128406520
2024-05-23 15:53:02 -07:00
Alexis Laferrière
998a40aed2 Serialization: Move SDK version to the end of the control block enum 2024-05-22 14:47:44 -07:00
Alexis Laferrière
76e7fa9372 Serialization: Move the distribution channel to the end of the control block enum 2024-05-22 14:47:44 -07:00
Alexis Laferrière
9779806a84 Serialization: Stop reading the control block if the format version doesn't match
rdar://128551774
2024-05-22 14:47:15 -07:00
swift-ci
eebdc55a53 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-21 21:34:24 -07:00
artemcm
9aeadd0507 [Dependency Scanning] Specify Source Locations For Missing Module Dependencies
This change modifies the dependency scanner to keep track of source locations of each encountered 'import' statement, in order to be able to emit diagnostics with source locations if an import failed to resolve.

- Keep track of each 'import' statement's source buffer, line number, and column number when adding it. The dependency scanner utilizes separate compilation instances, and therefore separate Source Managers for scanning `import` statements of user sources and textual interfaces of Swift dependencies. Since import resolution may happen in the main scanner compilation instance while the `import` itself was found by an interface-scanning sub-instance, we cannot simply hold on to the import's `SourceLoc`.
- Add libSwiftScan API for diagnostics to carry above source locations to clients.
2024-05-21 13:12:09 -07:00
swift-ci
1d0abfc691 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-20 17:34:38 -07:00
artemcm
ec4e0e23aa Allow users to opt-out of implicit Cxx import with -disable-implicit-cxx-module-import 2024-05-20 11:18:45 -07:00
Artem Chikin
6ea604bf9f Always add an implicit import of 'Cxx' module when C++ Interop is enabled.
We cannot always rely on being able to do so only as an overlay query upon loading 'requires cplusplus' modulemap modules. The 'requires' statement only applies to submodules, and we may not be able to query language feature modulemap attributes in dependency scanning context.
2024-05-20 10:23:10 -07:00
Artem Chikin
bc17581ae6 [Explicit Module Builds] Propagate the C++ Interop mode to interface sub-invocations and dependency scanner 2024-05-20 10:23:10 -07:00
swift-ci
b20fedebc6 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-18 02:54:31 -07:00
Michael Gottesman
d759ec97ea Merge pull request #73696 from gottesmm/rdar128216574
[sending] Add support for 'sending'
2024-05-18 05:42:41 -04:00
swift-ci
97775b94ad Merge remote-tracking branch 'origin/main' into rebranch 2024-05-17 11:36:37 -07:00
Alexis Laferrière
fac06ab12f Merge pull request #73679 from xymus/serial-sdk-version
Serialization: Write the target SDK in the binary swiftmodule
2024-05-17 11:27:05 -07:00
swift-ci
f8b3740f15 Merge remote-tracking branch 'origin/main' into rebranch 2024-05-17 04:56:41 -07:00
Slava Pestov
c1ce0d72c2 SIL: Store captured environments in SILFunction 2024-05-16 23:00:44 -04:00
Michael Gottesman
e3e78ad6bb [sending] Change the internals of sending to be based around 'sending' instead of 'transferring'.
We still only parse transferring... but this sets us up for adding the new
'sending' syntax by first validating that this internal change does not mess up
the current transferring impl since we want both to keep working for now.

rdar://128216574
2024-05-16 12:20:45 -07:00
Alexis Laferrière
074df70248 Serialization: Write the target SDK in the binary swiftmodule 2024-05-16 11:52:36 -07:00
swift-ci
54bb79b61f Merge remote-tracking branch 'origin/main' into rebranch 2024-05-16 10:34:40 -07:00
Ellie Shin
1257db7342 Merge pull request #73566 from apple/elsh/sil-new-attr
[SIL] Add [serialized_for_package] to control package-wide resilience domain in Package-CMO.
2024-05-16 10:17:35 -07:00