Ben Barham
2715d0e9d6
Merge branch 'main' into 20240710-main-to-rebranch
...
Conflicts:
- `test/Interop/Cxx/class/method/methods-this-and-indirect-return-irgen-itanium.swift`
previously fixed on rebranch, now fixed on main (slightly differently).
2024-07-10 20:42:09 -07:00
Meghana Gupta
154989463b
Add support for lifetime dependence in parameter position
2024-07-10 14:20:03 -07:00
Meghana Gupta
06faf98251
Update Array bounds check optimization's isIdentifiedUnderlyingArrayObject
2024-07-10 03:32:27 -07:00
swift-ci
b7921a8232
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-06 14:34:09 -07:00
Slava Pestov
86d567f95a
AST: ModuleDecl::lookupConformance() is a static method
2024-07-06 12:05:47 -04:00
Slava Pestov
fae01d9776
AST: Remove ModuleDecl parameter from more places
2024-07-06 12:05:46 -04:00
swift-ci
b3654c2cac
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-05 20:55:36 -07:00
Andrew Trick
32ca35cb64
Fix SILBridging for GlobalAddr_getDecl
...
and RefElementAddr_getDecl.
Fixes:
Assertion failed: (isa<To>(Val) && "cast<Ty>() argument of incompatible type!"), function cast, file Casting.h
While running pass #224 SILFunctionTransform "LifetimeDependenceDiagnostics"
#7 0x0000000102d3efcc decltype(auto) llvm::cast<swift::DebugValueInst, swift::SILInstruction>(swift::SILInstruction*)
#8 0x0000000102d01e24 swift::DebugValueInst* BridgedInstruction::getAs<swift::DebugValueInst>() const
#9 0x0000000102d01ee4 BridgedInstruction::GlobalAddr_getDecl() const
2024-07-05 12:00:07 -07:00
swift-ci
d33023fcdb
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-04 00:36:46 -07:00
Nate Chandler
dd730b849c
[LifetimeCompletion] Flag instructions dead_end.
2024-07-03 16:44:35 -07:00
Nate Chandler
d641dc65bf
[UnreachableLifetimeCompletion] Keep ctor arg.
...
Don't drop the argument, use it to initialize the member.
2024-07-03 15:27:00 -07:00
Nate Chandler
365c1a0286
[Test] Provide dead-end blocks to SIL tests.
...
Via a new method on the dependencies struct.
2024-07-03 15:27:00 -07:00
Nate Chandler
b150a484f2
[SIL] Add dead_end flag to dealloc_box.
2024-07-03 15:26:59 -07:00
Nate Chandler
a8cc3bfdda
[SIL] Add dead_end flag to destroy_value.
2024-07-03 15:26:59 -07:00
Nate Chandler
91fe12aab4
[NFC] SIL: Typed debug_value.poisonRefs.
2024-07-03 14:53:30 -07:00
Nate Chandler
d76a8e671e
[NFC] SIL: Typed destroy_value.poisonRefs.
...
Type the existing flag before adding another flag.
2024-07-03 14:53:30 -07:00
Ben Barham
c4fd432b6c
[SIL] Add missing ilist details
2024-07-01 14:52:51 -07:00
swift-ci
aaba96e5c5
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-30 05:35:30 -07:00
Meghana Gupta
ab3eaf2441
Merge pull request #71881 from meg-gupta/fixmem2reg
...
Fix mem2reg of lexical enum stack locations
2024-06-30 05:31:24 -07:00
Meghana Gupta
79acb5ac47
Fix ownership of move-only enums in SIL
2024-06-29 22:58:45 -07:00
swift-ci
84d48435eb
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-28 15:14:47 -07:00
nate-chandler
c5bc2c378d
Merge pull request #74815 from nate-chandler/rdar130427564
...
[PrunedLiveness] Branch summary merges to ending.
2024-06-28 15:05:07 -07:00
swift-ci
f2e68e5db1
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-28 11:36:11 -07:00
Ben Barham
d8f381e660
Merge pull request #74804 from bnbarham/rename-equals
...
Update `StringRef::equals` references to `operator==`
2024-06-28 11:22:20 -07:00
Ben Barham
d72f5b12c4
Update StringRef::equals references to operator==
...
`equals` has been deprecated upstream, use `operator==` instead.
2024-06-27 19:14:06 -07:00
Nate Chandler
88445c5a46
[NFC] PrunedLiveness: Use std::min.
2024-06-27 16:18:03 -07:00
Ben Barham
b7954411ec
Merge remote-tracking branch 'origin/main' into manually-merge-main-to-rebranch
...
Conflicts:
- `include/swift/AST/PluginRegistry.h`
2024-06-27 14:56:11 -07:00
Akira Hatanaka
42bc49d3fe
Add a new parameter convention @in_cxx for non-trivial C++ classes that are passed indirectly and destructed by the caller ( #73019 )
...
This corresponds to the parameter-passing convention of the Itanium C++
ABI, in which the argument is passed indirectly and possibly modified,
but not destroyed, by the callee.
@in_cxx is handled the same way as @in in callers and @in_guaranteed in
callees. OwnershipModelEliminator emits the call to destroy_addr that is
needed to destroy the argument in the caller.
rdar://122707697
2024-06-27 09:44:04 -07:00
Erik Eckstein
c576015d8a
fix a crash when de-virtualizing class or actor methods with typed throws
...
The de-virtualizer utility didn't handle indirect error results when de-virtualizing class or actor methods.
This resulted in a missing argument for the indirect error result in the new try_apply instruction.
rdar://130545338
2024-06-27 09:47:33 +02:00
Joe Groff
636a19d11b
Merge pull request #74707 from jckarter/consume-during-borrow-checks
...
MoveOnlyAddressChecker: More robust checking for consume-during-borrow.
2024-06-26 08:22:04 -07:00
swift-ci
517860f681
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-25 23:55:09 -07:00
eeckstein
31c07c95b0
Merge pull request #74689 from eeckstein/refactor-dynamic-self-check
...
SwiftCompilerSources: refactor `Function.mayBindDynamicSelf`
2024-06-26 08:47:18 +02:00
Joe Groff
27a8852290
MoveOnlyAddressChecker: More robust checking for consume-during-borrow.
...
- While an opaque borrow access occurs to part of a value, the entire scope of
the access needs to be treated as a liveness range, so add the `EndAccess`es
to the liveness range.
- The SIL verifier may crash the compiler on SILGen-generated code when the
developer's source contains consume-during-borrow code patterns. Allow
`load_borrow` instructions to be marked `[unchecked]`, which suppresses
verifier checks until the move checker runs and gets a chance to properly
diagnose these errors.
Fixes rdar://124360175.
2024-06-25 14:10:02 -07:00
Erik Eckstein
c61733f985
SwiftCompilerSources: refactor Function.mayBindDynamicSelf
...
Instead of bridging the whole function, just bridge `hasDynamicSelfMetadata` and do the other work in swift.
2024-06-25 17:59:23 +02:00
Erik Eckstein
718ea4b018
replace require with the new ASSERT macro
2024-06-25 10:45:55 +02:00
swift-ci
534620ceef
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-18 14:15:39 -07:00
Slava Pestov
cb1605f26f
Merge pull request #74414 from slavapestov/pack-element-var
...
SIL: Fix lowering for 'var's whose types contain local archetypes
2024-06-18 17:14:50 -04:00
swift-ci
08c89c3ee6
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-18 09:14:51 -07:00
Akira Hatanaka
d92f181ace
Create two versions (for caller and callee) of the functions that answer questions about parameter convention ( #74124 )
...
Create two versions of the following functions:
isConsumedParameter
isGuaranteedParameter
SILParameterInfo::isConsumed
SILParameterInfo::isGuaranteed
SILArgumentConvention::isOwnedConvention
SILArgumentConvention::isGuaranteedConvention
These changes will be needed when we add a new convention for
non-trivial C++ types as the functions will return different answers
depending on whether they are called for the caller or the callee. This
commit doesn't change any functionality.
2024-06-18 09:06:09 -07:00
Slava Pestov
e4d6108e11
SIL: Fix lowering for 'var's whose types contain local archetypes
...
A mutable 'var' becomes a SILBoxType, and we need to plumb the
correct generic signature through here too.
Fixes https://github.com/apple/swift/issues/71921 .
2024-06-18 11:45:41 -04:00
swift-ci
bb865a7ae6
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-12 20:34:34 -07:00
nate-chandler
6694bbab90
Merge pull request #74360 from nate-chandler/rdar127518559
...
[ConsumeAddrChecker] Diagnose consumes of borrows.
2024-06-12 20:33:07 -07:00
Nate Chandler
29ee0ed56e
[Gardening] Clarified documentation.
2024-06-12 13:12:21 -07:00
swift-ci
237c095033
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-12 11:56:39 -07:00
eeckstein
b7b93a12a0
Merge pull request #74329 from eeckstein/fix-block-cloning
...
SIL: update borrowed-from instructions when cloning a basic block
2024-06-12 20:38:13 +02:00
swift-ci
426f50c9c0
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-12 07:15:51 -07:00
nate-chandler
3aca85bfb3
Merge pull request #74298 from nate-chandler/rdar129593468
...
[NoncopyableWrapperElim] Process undef values.
2024-06-12 06:55:48 -07:00
Erik Eckstein
d80813ee3b
SIL: update borrowed-from instructions when cloning a basic block
...
Cloning blocks might split CFG edges which can "convert" terminator result arguments to phi-arguments.
In this case a borrowed-from instruction must be inserted.
Fixes a SIL verifier crash caused by SimplifyCFG's jump threading.
rdar://129187525
2024-06-12 12:56:34 +02:00
Nate Chandler
fed3cb84c6
[NFC] SIL: Expose undef values.
2024-06-11 16:25:31 -07:00
Nate Chandler
f39b70a86d
[NFC] SIL: Extracted remove "any" m-o wrapping.
2024-06-11 16:25:29 -07:00