swift-ci
e517de766b
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-19 05:14:50 -07:00
Arnold Schwaighofer
e85d6ae818
IRGen: Split async funclets need to be marked noinline to not loose async_entry/return metadata
...
rdar://134460666
2024-09-18 16:20:54 -07:00
Ben Barham
a7b50f357f
Merge remote-tracking branch 'origin/main' into manual-main-merge
...
Conflicts:
- `lib/Driver/ToolChains.cpp` conflicting with the `addAllArgs` rename
for multiple options
2024-09-16 13:53:18 -07:00
Arnold Schwaighofer
8e9cd5db68
Merge pull request #76150 from aschwaighofer/async_entry_ret_metadata
...
IRGen: Add metadata for async funclets denoting frame entry and frame exists
2024-09-13 11:52:00 -07:00
Arnold Schwaighofer
c9c45a1e53
Revert "Merge pull request #74192 from drexin/wip-typed-throws-abi"
...
This reverts commit 35b2b71475 , reversing
changes made to c3b57f24eb .
2024-09-12 11:42:01 -07:00
Arnold Schwaighofer
9b10362a09
Revert "Merge pull request #74840 from drexin/wip-130781414"
...
This reverts commit 7feb5927db , reversing
changes made to 4edda08d26 .
2024-09-12 11:35:32 -07:00
Arnold Schwaighofer
85c5648d6d
Revert "Merge pull request #75150 from drexin/wip-130971168"
...
This reverts commit 8fca31efde , reversing
changes made to 32af2f6c19 .
2024-09-12 11:23:15 -07:00
Arnold Schwaighofer
9bebe11183
Revert "Merge pull request #75221 from drexin/wip-129359370"
...
This reverts commit c11b301188 , reversing
changes made to 1921b60ff4 .
2024-09-12 11:22:55 -07:00
Arnold Schwaighofer
2bc788c102
Revert "Merge pull request #75379 from drexin/wip-132122011"
...
This reverts commit 618a9bf7c5 , reversing
changes made to 448596c03e .
2024-09-12 11:20:14 -07:00
Arnold Schwaighofer
291abb6255
Revert "Merge pull request #75677 from drexin/wip-133006541"
...
This reverts commit 739c7192ae , reversing
changes made to 7d1c505ae1 .
2024-09-12 11:17:55 -07:00
Arnold Schwaighofer
66586a69ad
Revert "Merge pull request #76129 from aschwaighofer/irgen_typed_throws_irgenthunk"
...
This reverts commit dd0de58b52 , reversing
changes made to 74b3221042 .
2024-09-12 10:33:33 -07:00
swift-ci
da55e84c74
Merge remote-tracking branch 'origin/main' into rebranch
2024-09-05 15:35:33 -07:00
Alejandro Alonso
75c2cbf593
Implement value generics
...
Some requirement machine work
Rename requirement to Value
Rename more things to Value
Fix integer checking for requirement
some docs and parser changes
Minor fixes
2024-09-04 15:13:25 -07:00
Arnold Schwaighofer
eaf90dff38
IRGen: Add metadata for async funclets denoting frame entry and frame exists
...
Adds sections `__TEXT,__swift_as_entry`, and `__TEXT,__swift_as_ret` that
contain relative pointers to async functlets modelling async function entries,
and function returns, respectively.
Emission of the sections can be trigger with the frontend option
`-Xfrontend -enable-async-frame-push-pop-metadata`.
This is done by:
* IRGen adding a `async_entry` function attribute to async functions.
* LLVM's coroutine splitting identifying continuation funclets that
model the return from an async function call by adding the function
attribute `async_ret`. (see #llvm-project/pull/9204)
* An LLVM pass that keys off these two function attribute and emits the
metadata into the above mention sections.
rdar://134460666
2024-09-03 08:44:16 -07:00
Gabor Horvath
cdbe999188
[cxx-interop] Emit type metadata for foreign types more often
...
Metadata for foreign types are emitted lazily, when SILGen generates a
reference to it. Unfortunately, C++ reverse interop can also introduce
references to such metadata in the generated header when types are used
as generic arguments. This adds a type visitor to make note of the type
metadata use for those generic arguments in public APIs when C++ interop
is enabled.
rdar://132925256
2024-08-30 14:45:22 +01:00
swift-ci
a625059d81
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-29 09:14:52 -07:00
Arnold Schwaighofer
7fc028c57f
IRGen: We need to map the direct type error explosion back to the native result in IRGenThunk
...
rdar://134730970
2024-08-28 10:56:25 -07:00
swift-ci
b08f7a1307
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-20 13:58:19 -07:00
Slava Pestov
0c2f28fd3d
AST: Remove GenericSignature parameter from OpenedArchetypeType::get()
2024-08-20 12:15:27 -04:00
Ben Barham
467e528200
Merge remote-tracking branch 'origin/main' into manual-rebranch-merge
...
Conflicts:
- `lib/Serialization/ModuleFormat.h` bumped version to account for
differences between main and rebranch.
2024-08-09 15:22:39 -07:00
Kavon Farvardin
9d69f2bceb
Merge pull request #75382 from kavon/static-branch-prediction
...
Throws Prediction + HotColdSplitting
2024-08-09 15:24:22 -04:00
swift-ci
43bd40f4d7
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-08 19:11:05 -07:00
Andrew Savonichev
5aa9d3e29b
Add partial_apply support for coroutines ( #71653 )
...
The patch adds lowering of partial_apply instructions for coroutines.
This pattern seems to trigger a lot of type mismatch errors in IRGen, because
coroutine functions are not substituted in the same way as regular functions
(see the patch 07f03bd2 "Use pattern substitutions to consistently abstract
yields" for more details).
Other than that, lowering of partial_apply for coroutines is straightforward: we
generate another coroutine that captures arguments passed to the partial_apply
instructions. It calls the original coroutine for yields (first return) and
yields the resulting values. Then it calls the original function's continuation
for return or unwind, and forwards them to the caller as well.
After IRGen, LLVM's Coroutine pass transforms the generated coroutine (along with
all other coroutines) and eliminates llvm.coro.* intrinsics. LIT tests check
LLVM IR after this transformation.
Co-authored-by: Anton Korobeynikov <anton@korobeynikov.info >
Co-authored-by: Arnold Schwaighofer <aschwaighofer@apple.com >
2024-08-08 18:36:42 -07:00
Kavon Farvardin
885b758a52
IRGen: throws prediction for non-SIL calls
...
Some calls to throwing functions aren't represented with `try_apply` in
SIL, so we generate llvm.expect's when throw prediction is enabled.
2024-08-08 21:21:52 -04:00
Kavon Farvardin
0cce602bce
SIL: branch weights for try_apply's
2024-08-08 21:21:52 -04:00
swift-ci
771b12c747
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-04 20:14:30 -07:00
Dario Rexin
be1f8cd6fa
[IRGen] Properly handle conversion between ptr and int for non-matching sizes in direct error returns
...
rdar://133006541
This caused issues on 32 bit platforms when merging a 64 bit and ptr types for direct error returns.
2024-08-04 11:34:02 -07:00
swift-ci
a62e533c6f
Merge remote-tracking branch 'origin/main' into rebranch
2024-08-02 19:58:45 -07:00
Anton Korobeynikov
8b7a75c8f3
[IRGen] Support indirect results for coroutines ( #75322 )
2024-08-02 19:36:07 -07:00
swift-ci
b08252db8d
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-19 20:15:47 -07:00
Dario Rexin
e0d9da454c
[IRGen] Properly extract values in visitThrowInst for empty error
...
rdar://132122011
For async functions we have to extract the values, which was not happening when the error type was empty.
2024-07-19 17:01:13 -07:00
swift-ci
49a48d8781
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-13 20:54:46 -07:00
Dario Rexin
9b1a82d9ec
[IRGen] Add direct error return support for async functions
...
rdar://129359370
Second part of direct error support. This implements direct errors for async functions. Instead of always returning typed errors indirectly, we are returning them directly when possible.
2024-07-13 17:02:32 -07:00
swift-ci
787d4b51d2
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-10 21:13:31 -07:00
Dario Rexin
8fca31efde
Merge pull request #75150 from drexin/wip-130971168
...
[IRGen] Don't apply direct error return to functions with indirect result
2024-07-10 21:07:40 -07:00
Dario Rexin
e3c0bc880c
[IRGen] Don't apply direct error return to functions with indirect result
...
rdar://130971168
Having direct and indirect results on the same function is illegal.
2024-07-10 16:11:03 -07:00
swift-ci
b7921a8232
Merge remote-tracking branch 'origin/main' into rebranch
2024-07-06 14:34:09 -07:00
Slava Pestov
fae01d9776
AST: Remove ModuleDecl parameter from more places
2024-07-06 12:05:46 -04:00
swift-ci
9a10a6c56a
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-28 23:34:18 -07:00
Dario Rexin
22fec31574
[IRGen] Properly convert between ptr and int in typed error mapping
...
rdar://130781414
2024-06-28 16:29:10 -07:00
swift-ci
f2e68e5db1
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-28 11:36:11 -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
swift-ci
4213be1cb9
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-22 02:55:53 -07:00
Dario Rexin
35b2b71475
Merge pull request #74192 from drexin/wip-typed-throws-abi
...
[IRGen] Return typed errors directly in synchronous functions when po…
2024-06-22 02:35:10 -07:00
Xi Ge
736ccef626
Merge remote-tracking branch 'apple/main' into rebranch
2024-06-20 15:16:55 -07:00
Tim Kientzle
1098054291
Merge branch 'main' into tbkka-assertions2
2024-06-18 17:52:00 -07:00
Dario Rexin
d9bc2cb2fa
[IRGen] Return typed errors directly in synchronous functions when possible
...
rdar://129359355
This PR implements the basic support for returning typed errors directly and applies it to synchronous functions.
2024-06-14 17:20:01 -07:00
swift-ci
b861f5c6f3
Merge remote-tracking branch 'origin/main' into rebranch
2024-06-14 07:15:26 -07:00
Konrad `ktoso` Malawski
2ec717b115
[Concurrency] TaskExecutor ownership fixes ( #74000 )
2024-06-14 22:56:33 +09:00
Arnold Schwaighofer
19557cd6a2
Merge pull request #74304 from aschwaighofer/use_static_alloca_for_stackAlloc
...
IRGen: Use static alloca for builtin stackAlloc when possible
2024-06-14 06:54:41 -07:00