swift-ci
ca93b4b068
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-18 16:17:26 -07:00
Kavon Farvardin
61fe8a9b8e
introduce @_manualOwnership performance attribute
...
This attribute forces programmers to acknowledge every
copy that is required to happen in the body of the
function. Only those copies that make sense according
to Swift's ownership rules should be "required".
The way this is implemented as of now is to flag each
non-explicit copy in a function, coming from SILGen, as
an error through PerformanceDiagnostics.
2025-09-17 13:51:57 -07:00
swift-ci
0d2c4ca9be
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-15 10:29:21 -07:00
Meghana Gupta
c764244df0
Merge pull request #84180 from meg-gupta/borrowandmutatepr
...
Add preliminary support for borrow accessors
2025-09-15 10:01:15 -07:00
Meghana Gupta
a42511e041
[NFC] Replace ApplyInst::getSubstCalleeConv()::hasGuaranteedAddressResult() with ApplyInst::hasGuaranteedAddressResult()
2025-09-14 23:38:07 -07:00
Meghana Gupta
995d6a77d9
Update hasGuaranteedResult and hasGuaranteedAddressResult
2025-09-14 23:38:06 -07:00
Meghana Gupta
6665cd5d46
[NFC] hasGuaranteedAddressResults -> hasGuaranteedAddressResult and hasGuaranteedResults -> hasGuaranteedResult
2025-09-14 23:38:06 -07:00
swift-ci
f22ddb12f6
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-10 06:55:39 -07:00
Meghana Gupta
ce128e71e2
Update SIL verification for borrow accessors
2025-09-09 15:25:08 -07:00
Meghana Gupta
518c3ac091
Updates to MemAccessUtils to handle borrowed address returns
2025-09-09 14:45:47 -07:00
Meghana Gupta
8c1231e86b
SILGen support for borrow accessors on Copyable types and address-only ~Copyable types
2025-09-09 14:45:44 -07:00
Meghana Gupta
4f33d5201c
Update SILFunctionType for borrow accessors
2025-09-09 14:45:43 -07:00
Meghana Gupta
a798f21fd2
Introduce ResultConvention::Guaranteed and ResultConvention::GuaranteedAddress in SwiftCompilerSources
2025-09-09 14:45:41 -07:00
Meghana Gupta
1cff471c57
Introduce ResultConvention::Guaranteed and ResultConvention::GuaranteedAddress
...
ResultConvention::Guaranteed will be used by borrow accessors when the storage type can be returned by value.
ResultConvention::GuaranteedAddress will be used by mutate accessors and borrow accessors when the storage type
cannot be returned by value.
2025-09-09 14:45:40 -07:00
Meghana Gupta
f1c41960d8
[NFC] Add some utilities in SILDeclRef
2025-09-09 14:45:36 -07:00
John McCall
74496ea86d
Fix SILGen's computation of default argument generator isolation
2025-09-09 14:26:57 -04:00
swift-ci
e84e776fc3
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-09 07:15:59 -07:00
Doug Gregor
74e85c8416
[SIL] Track the parent module of a SIL global variable through serialization
...
As with SIL functions, track the parent module where a SIL global
variable was originally defined so that we can determine whether we
are outside of its original module for linkage purposes. Use this to
make sure we emit via a weak definition when emitting to a module
other than the originating module.
Fixes rdar://160153163.
2025-09-08 17:44:49 -07:00
Anthony Latsis
e1450e011e
Manually merge remote-tracking branch 'origin/main' into rebranch
...
Conflicts:
* utils/build_swift/build_swift/defaults.py
2025-09-04 14:07:50 +01:00
Erik Eckstein
b8a49692eb
Optimizer: add TypeSubstitutionCloner and func cloneAndSpecializeFunction
...
Also move `func cloneFunction` from ContextCommon.swift to OptUtils.swift
2025-09-04 08:15:45 +02:00
Erik Eckstein
c15f76f316
SILCloner: correctly map function argument types in cloneFunction
...
and remove the now unused `SILBasicBlock::cloneArgumentList`
2025-09-04 08:15:45 +02:00
Erik Eckstein
231042b9a8
SIL: some Cloner cleanups and improvements
...
* move some Cloner utilities from ContextCommon.swift directly into Cloner.swift
* add an `cloneRecursively` overload which doesn't require the `customGetCloned` closure argument
* some small cleanups
2025-09-04 08:15:45 +02:00
Erik Eckstein
65d69fe965
SIL/AST: add some APIs
...
* `GenericSignature.isEmpty`
* `Builder.emitDestroy`
* `Function.abi`
* `KeyPathInst.substitutionMap`
* `KeyPathInst.hasPattern`
2025-09-04 08:15:44 +02:00
Erik Eckstein
bc244d1122
SIL: move the FunctionBuilderTy template argument from TypeSubstCloner to remapParentFunction
2025-09-04 08:15:44 +02:00
swift-ci
255ee32c29
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-03 13:48:19 -07:00
Janat Baig
f21eb5375e
Merge branch 'main' into temp-branch
2025-09-02 20:23:25 -04:00
swift-ci
ac529bd9df
Merge remote-tracking branch 'origin/main' into rebranch
2025-09-01 02:37:16 -07:00
Jakub Florek
eae7864370
Merge pull request #83988 from MAJKFL/new-sil-licm-pass-copy
...
New SIL LICM pass
2025-09-01 10:28:17 +01:00
swift-ci
962a58dec4
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-30 22:35:31 -07:00
eeckstein
c2cd172860
Merge pull request #83999 from eeckstein/access-enforcement-improvements
...
Optimizer: some small fixes and improvements for exclusivity checking
2025-08-31 07:22:00 +02:00
swift-ci
214fc8cdf6
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-30 11:36:49 -07:00
Erik Eckstein
3de5d6a13e
SIL: add get+set for enforcement in BeginAccessInst
2025-08-30 07:29:15 +02:00
Erik Eckstein
6df033b298
SIL: only use canonical substitution maps in SIL
...
* When constructing instructions which have substitution maps: initialize those with the canonical SubstitutionMap
* Also initialize SILFunction::ForwardingSubMap with the canonical one
Non-canonical substitution maps may prevent generic specializations.
This fixes a problem in Embedded Swift where an error is given because a function cannot be specialized, although it should.
https://github.com/swiftlang/swift/issues/83895
rdar://159065157
2025-08-29 22:31:04 +02:00
swift-ci
3d4b4bbf25
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-28 14:31:23 -07:00
nate-chandler
9fe43836f6
Merge pull request #83907 from nate-chandler/rdar158149082
...
[AllocBoxToStack] Don't destroy in dead-ends.
2025-08-28 13:36:28 -07:00
Jakub Florek
3514b2b9df
Bridge array semantics call and loop tree
2025-08-28 21:00:09 +01:00
Jakub Florek
e3140e0ae0
Add new generalized cloner.
2025-08-28 20:57:57 +01:00
swift-ci
554cefadc0
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-28 10:56:47 -07:00
eeckstein
8cea77eac0
Merge pull request #83913 from eeckstein/fix-deinit-devirtualization-for-arrays
...
Optimizer: de-virtualize deinits of `builtin "destroyArray"`
2025-08-28 18:21:07 +02:00
swift-ci
a9d062e4ec
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-28 04:53:47 -07:00
Anthony Latsis
f0bfdf63af
Merge pull request #83945 from swiftlang/jepa-main2
...
SIL: Audit some `llvm::APInt` constructions to not hit an assertion with `implicitTrunc` set to false on rebranch
2025-08-28 12:35:25 +01:00
Erik Eckstein
3da2c1476b
SIL: add Builder.createCondBranch
2025-08-28 08:04:50 +02:00
Erik Eckstein
ab10dc23a5
SIL: add Context.getTupleType
2025-08-28 08:04:49 +02:00
Nate Chandler
a241cf5e59
[MemoryLifetimeVerifier] Permit leaks in dead-ends
2025-08-27 18:05:07 -07:00
Nate Chandler
f94168c875
[AllocBoxToStack] Restore isDeadEnd check.
...
The rewrite was missing the intentional omission of `dealloc_stack`s
corresponding to `[dead_end]` `dealloc_box`es. Add the necessary
bridging to get to parity with the original.
Without this check, `dealloc_box [dead_end]`s are promoted to
`dealloc_stack`s but the memory projected out of such `alloc_box`s need
not be valid.
rdar://159271158
2025-08-27 17:02:27 -07:00
Anthony Latsis
2bfe2bd587
SIL: Treat -1 as signed when using it to construct an "all bits set" llvm::APInt
...
This should enable us to revert
73c70ee338 .
2025-08-27 15:22:30 +01:00
swift-ci
0ef4ee89ab
Merge remote-tracking branch 'origin/main' into rebranch
2025-08-27 07:16:56 -07:00
Slava Pestov
66dc1cc2e8
Merge pull request #83902 from slavapestov/lowered-type-in-context
...
Cache SILFunction::getLoweredTypeInContext()
2025-08-27 08:19:13 -04:00
JanBaig
be6e6e50a7
Use callback to avoid repeated allocation when collecting initialized properties
2025-08-26 14:37:57 -04:00
JanBaig
f4d9c7bb04
Add getDeclContextOrNull to AssignOrInitInst
2025-08-26 14:37:57 -04:00