sort by:
Revision Author Date Message Commit Date
5ec251c WIP: attempt to extract RawRepresentable 22 December 2023, 01:37:09 UTC
b01dbc5 Merge pull request #70596 from rintaro/rdar119899895-optimized_stdlib [Tests] IRGen/section_structs.swift requires 'optimized_stdlib' 21 December 2023, 17:51:53 UTC
8b7e720 [Tests] IRGen/section_structs.swift requires 'optimized_stdlib' rdar://119899895 21 December 2023, 17:49:33 UTC
6d4d693 Merge pull request #70594 from rintaro/disable-rdar119743909 [Test] Disable 2 concurrency tests in swift_test_mode_optimize 21 December 2023, 17:13:53 UTC
ac0a8de [Test] Disable 2 concurrency tests in swift_test_mode_optimize rdar://119743909 21 December 2023, 17:12:26 UTC
d6871ed Merge pull request #70539 from compnerd/fetch build: restructure content fetching 21 December 2023, 04:22:44 UTC
f43240b Merge pull request #70576 from hborla/macro-lookup-fix [ASTScope] Use the end location of the original source range of a macro expansion in `isBeforeInSource`. 21 December 2023, 04:06:38 UTC
6d66211 Merge pull request #70577 from rintaro/disable-rdar119964830 [Test] Disable CAS/include-tree.swift in Linux 21 December 2023, 02:16:49 UTC
6b3b3ff [Test] Disable CAS/include-tree.swift in Linux rdar://119964830 21 December 2023, 02:15:27 UTC
729e608 Merge pull request #70567 from tshortli/remove-bad-maccatalyst-test Tests: Remove attr_availability_maccatalyst_implicit.swift 21 December 2023, 00:17:47 UTC
4e9c6f9 Merge pull request #70554 from cachemeifyoucan/eng/PR-119727344 [CAS] Do not create redirect file system when using clang-include-tree 21 December 2023, 00:10:36 UTC
8c9eeb2 [ASTScope] In the `isBeforeInSource` predicate, use the end location of the original source location of a macro expansion when walking up the ancestor list. The original source range of a macro expansion buffer contains the entire range of the code that is replaced by the expansion. In some cases, the original code is type checked, so ASTScope needs to represent both the original code and the macro-expanded code in the scope tree. For accessor macros, the original code -- the initializer expression of the property -- is type checked, but not before macro expansion, so unqualified lookup must deal with the scope tree for the initializer and the expanded accessors. The accessors are inserted in the tree after the initializer scope, but the `isBeforeInSource` was using the start location of the original source range for macro expansions, so the accessor scopes were incorrectly considered to be ordered before a source location in the initializer expression, which caused unqualified lookup of local variables within the initializer to fail. 20 December 2023, 23:53:02 UTC
1770fee Merge pull request #70556 from hborla/sendable-error-derived-conformance [Concurrency] Diagnose concurrency violations in derived conformances at valid source locations. 20 December 2023, 23:50:24 UTC
83d4631 Merge pull request #70571 from gottesmm/pr-76db517d7eb9f23319dc8a16c082e8c665b51a54 20 December 2023, 23:39:50 UTC
bc63547 Add REQUIRES: asserts to a test that I missed. 20 December 2023, 23:03:42 UTC
b238c16 [IRGen] Disable simple single payload enum in layout strings (#70528) rdar://119792426 There are a few issues with wrong assumptions around extra inhabitants that cause tags to not be identified properly in some cases. Until a proper fix is identified, we emit tag functions instead. 20 December 2023, 22:55:52 UTC
d4db060 Merge pull request #70570 from rintaro/disable-rdar119907089 [Test] Disable objc_class_properties_runtime.swift 20 December 2023, 22:18:38 UTC
c2fa7c5 [Test] Disable objc_class_properties_runtime.swift rdar://119907089 20 December 2023, 22:17:15 UTC
c8187b8 Tests: Remove attr_availability_maccatalyst_implicit.swift. This test was verifying the diagnostics emitted as a result of synthesized `_modify` accessors being generated with incorrect availability. As of https://github.com/apple/swift/pull/70533, the availability is no longer incorrect and therefore this test cannot verify anything useful. Resolves rdar://119949219 20 December 2023, 21:31:06 UTC
04abdb1 Merge pull request #70562 from gottesmm/more-code-coverage [region-isolation] Add support for more instructions. 20 December 2023, 21:23:52 UTC
ead742b [CAS] Do not create redirect file system when using clang-include-tree Redirecting file system can canonicalize the file path before forwarding the path to IncludeTreeFileSystem, which is a simplied FS that can only intepret the paths that has been seen by dep-scanner. Since all files that need redirecting already added to underlying FS via DepScan, there is no need for such layer when compiling using clang-include-tree. rdar://119727344 20 December 2023, 20:30:14 UTC
2608746 Merge pull request #70561 from cachemeifyoucan/xfail-staic-vtable-stubs [Test] XFAIL IRGen/static-vtable-stubs.swift on arm64_32 20 December 2023, 20:24:56 UTC
5746d6a build: restructure content fetching Centralise the downloading of dependencies. This merges the SDK, toolchain, and WiX downloading. This is a small clean up and preparatory work to enable fetching sccache as well to ease the caching setup. 20 December 2023, 19:03:16 UTC
d540f48 Merge pull request #70522 from xedin/csbindings-support-superclass-of-existential [CSBindings] Make it possible to enumerate supertypes of existentials 20 December 2023, 17:56:16 UTC
24d54a8 [SymbolGraphGen] Emit "functionSignature" info for initializers and subscripts (#70207) rdar://111072228 20 December 2023, 17:56:01 UTC
e4d7cec Merge pull request #70543 from compnerd/debug build: only apply linker flags for C/C++ 20 December 2023, 17:50:30 UTC
5f0495a Merge pull request #70509 from rintaro/astgen-statements [ASTGen] Statements 20 December 2023, 17:34:15 UTC
52f0d00 [Test] XFAIL IRGen/static-vtable-stubs.swift on arm64_32 Follow up on https://github.com/apple/swift/pull/70551, also XFAIL the test on arm64_32. 20 December 2023, 17:25:55 UTC
a0dc560 Merge pull request #70559 from eeckstein/fix-simplify-begin-borrow SimplifyBeginBorrow: fix `isDestroyed(after:)` 20 December 2023, 16:31:39 UTC
85cced7 [Concurrency] Diagnose concurrency violations in derived conformances at valid source locations. 20 December 2023, 14:55:10 UTC
df858a5 Merge pull request #70553 from hborla/bridge-to-sendable 20 December 2023, 14:10:35 UTC
1669788 SimplifyBeginBorrow: fix `isDestroyed(after:)` The previous implementation just checked that a value's only uses besides the begin_borrow were destroys. That's insufficient to say the value is destroyed after the borrow (i.e. that all its destroys are dominated by the borrow). Add the relevant dominance check. Fixes a compiler crash rdar://119873930 20 December 2023, 10:41:40 UTC
ce3b428 Merge pull request #70551 from cachemeifyoucan/eng/xfail-armv7k-static-vtable-stubs [Test] XFAIL IRGen/static-vtable-stubs.swift on armv7k 20 December 2023, 09:40:47 UTC
9a0eb73 Merge pull request #70547 from tshortli/diagnose-unreachable-cant-back-deploy AST/SILGen: Use @_alwaysEmitIntoClient diagnostic helper in unavailable code 20 December 2023, 08:16:29 UTC
8f0e0c2 Merge pull request #70536 from kateinoigakukun/pr-3625f96eaf4dbdc691300cc27177e08e0f977735 [Gardening] Fix typo `createAsyncTaskInGroupWithExecutor` in Builtins.def 20 December 2023, 04:47:36 UTC
d3c4264 [SILGen] Handle marker existentials in emitCBridgedToNativeValue. 20 December 2023, 03:02:21 UTC
e2d4208 [test] Make BlocksRuntimeStubs use never_install component. (#70545) For some reason, 4 years ago, in ea90256 I added this target to `dev`, which does not make sense because these stubs are only intended for testing. Make them `never_install` to avoid distributing them when doing `install-dev`. 20 December 2023, 02:05:43 UTC
154454e Use specialized [u]int64 -> FloatingPoint conversions even on 32b platforms. (#70541) This means that we'll end up going int32 -> int64 -> float/double sometiems, but LLVM knows how to optimize away the intermediate conversion so we end up with just a normal 32b->float conversion as desired, and we get much, much better performance on oddball platforms like arm64_32. 20 December 2023, 01:29:30 UTC
496c05d [Test] XFAIL IRGen/static-vtable-stubs.swift on armv7k XFAIL IRGen/static-vtable-stubs.swift on armv7k after fixing it to correctly using %target-swift-frontend. 20 December 2023, 01:26:15 UTC
bbc5543 Merge pull request #70544 from compnerd/4.0.3 build: update WiX to 4.0.3 20 December 2023, 01:24:04 UTC
25a6838 Merge pull request #68415 from kavon/autoreleasing-isolated-foreign-errors [SILGen] avoid hop before autoreleased foreign error is retained 20 December 2023, 01:12:30 UTC
bee76bf [region-isolation] Add support for unchecked_value_cast. Same as unchecked_trivial_bit_cast. 20 December 2023, 00:42:02 UTC
6d22433 AST/SILGen: Use @_alwaysEmitIntoClient diagnostic helper in unavailable code. The `_diagnoseUnavailableCodeReached()` function was introduced in the Swift 5.9 standard library and employs `@backDeployed` to support compilation of binaries that target OS releases aligned with earlier Swift releases. Unfortunately, though, this backdeployment strategy doesn't work well for some unusual build environments. Specifically, in some configurations code may be built with a compiler from a recent Swift toolchain and then linked against the dylibs in an older toolchain. When linking against the older dylibs, the `_diagnoseUnavailableCodeReached()` function does not exist but the `@backDeployed` thunks emitted into the binary reference that function and therefore linking fails. The idea of building with one toolchain and then linking to the dylibs in a different, older toolchain is extremely dubious. However, it exists and for now we need to support it. This PR introduces an alternative `_diagnoseUnavailableCodeReached()` function that is annotated with `@_alwaysEmitIntoClient`. Calls to the AEIC variant are now emitted by the compiler when the deployment target is before Swift 5.9. Once these unusual build environments upgrade and start linking against a Swift 5.9 toolchain or later we can revert all of this. Resolves rdar://119046537 20 December 2023, 00:26:56 UTC
a37aa1c Merge pull request #70456 from cachemeifyoucan/eng/PR-119577349 [ClangImporter] Consolidate clang invocation creation 20 December 2023, 00:01:14 UTC
fbc8b53 [region-isolation] Add support for unchecked_bitwise_cast. Just followed the model of unchecked_trivial_bit_cast. 19 December 2023, 23:52:04 UTC
0b74399 [region-isolation] Add support for unchecked_trivial_bit_cast NOTE: This required me to stop using swift::getUnderlyingObject from getUnderlyingTrackedObject since when it stripsCasts it looks through unchecked_trivial_bit_cast... but we only want to do that if both the operand and result of the instruction are non-Sendable. To fix this I inlined getUnderlyingObject's impl and removed that part of stripCasts. 19 December 2023, 23:45:20 UTC
d08359e [region-isolation] Add support for ref_to_raw_pointer, raw_pointer_to_ref, index_raw_pointer. 19 December 2023, 23:21:42 UTC
f6dba90 Merge pull request #70412 from xedin/rdar-113212472 [Concurrency] Teach `Type::stripConcurrency` about tuples, sugared types, and bound generic types 19 December 2023, 21:38:33 UTC
a288b1e [CSBindings] Key path cannot be bound to typ erased type even if its existential Extend existing check to handle type erased versions when they are wrapped in an existential. 19 December 2023, 21:36:46 UTC
fe2f1ca [CSBindings] Make it possible to enumerate supertypes of existentials - Drop `mayHaveSuperclass` because it's too restrictive. - Add logic to get superclass of existential and re-create existential type with all of the protocol requirements. 19 December 2023, 21:36:35 UTC
c90097f [region-isolation] Add support for *_existential_box instructions. NOTE: I am just adding coverage that we support these instructions. One can only use this with Error today and Error is always Sendable. So this is just going for completeness. 19 December 2023, 21:29:12 UTC
06ac850 [SILGen] avoid hop before autoreleased foreign error is retained For an isolated ObjC function that is not async, we emit a hops around the call. But if that function returns an autoreleased pointer, we need to ensure we're retaining that pointer before hopping back after the call. We weren't doing that in the case of an autoreleased NSError: ``` %10 = alloc_stack $@sil_unmanaged Optional<NSError> %19 = ... a bunch of steps to wrap up %10 ... %20 = enum $Optional<AutoreleasingUnsafeMutablePointer<Optional<NSError>>>, #Optional.some!enumelt, %19 : $AutoreleasingUnsafeMutablePointer<Optional<NSError>> hop_to_executor $MainActor %26 = apply X(Y, %20) : $@convention(objc_method) (NSObject, Optional<AutoreleasingUnsafeMutablePointer<Optional<NSError>>>) -> @autoreleased Optional<NSString> hop_to_executor $Optional<Builtin.Executor> // retain the autoreleased pointer written-out. %28 = load [trivial] %10 : $*@sil_unmanaged Optional<NSError> %29 = unmanaged_to_ref %28 : $@sil_unmanaged Optional<NSError> to $Optional<NSError> %30 = copy_value %29 : $Optional<NSError> assign %31 to %7 : $*Optional<NSError> ``` This patch sinks the hop emission after the call so it happens after doing that copy. rdar://114049646 19 December 2023, 21:16:59 UTC
69d7551 Merge pull request #70540 from eeckstein/disable-test tests: disable IRGen/section_structs.swift for 32-bit 19 December 2023, 21:10:04 UTC
7dc3d72 Merge pull request #70485 from atrick/bridge-util [NFC] Bridging and utilities for SwiftCompilerSources required by lifetime dependence utilities. 19 December 2023, 21:07:45 UTC
9be16a1 [Caching] Workaround not needed modulemap not found When caching + clang include tree is enabled, don't take module map file from command-line in clang importer. Those are resulted from `-Xcc` arguments and do not needed in compilation since module maps are included in include-tree. rdar://119577349 19 December 2023, 20:16:20 UTC
ea58ef8 [ClangImporter] Simply clang-importer creation flags Currently, `-direct-clang-cc1-module-build` and `-only-use-extra-clang-opts` have to be passed together for clang importer creation to succeed. Missing either will result in error. Simplified the swift-frontend flags by removing `-only-use-extra-clang-opts` and let `-direct-clang-cc1-module-build` to do both. 19 December 2023, 20:16:20 UTC
7698d36 [ClangImporter] Re-write how clang-importer is created via args Re-write and clean up how clang-importer is created from clang arguments. Previously, it is unclear if `getClangArguments` will return CC1 args or driver args and the logic is unnecessarily compilicated when creating clang invocation. Now clang invocation is always created from cc1 arguments, which can be directly provided via direct-cc1-mode or converted from driver args. There is no functional changes in this patch, other than `-dump-clang-diagnostics` now will always print cc1 args, and also driver args if that is applicable. 19 December 2023, 20:16:18 UTC
2c5dce5 build: update WiX to 4.0.3 Update to the latest WiX toolset for the extraction process in the hopes that this will resolve some of the flakiness we see on the 5.10 branch. 19 December 2023, 19:53:58 UTC
a755a48 build: only apply linker flags for C/C++ When building C/C++ code we need to add `/debug` to the flags. However, if we are building Swift code, this becomes a problem as the flag is passed to the Swift compiler directly. Only pass the flag when C/C++ code is being built. 19 December 2023, 19:37:20 UTC
1057441 Merge pull request #70538 from hborla/sendable-adjustment [CSApply] Perform a regular `coerceToType` when adjusting types for `@preconcurrency`. 19 December 2023, 19:28:43 UTC
f375f2e Merge pull request #70523 from ian-twilightcoder/pcm-emit-direct-cc1-mode pcm-emit-direct-cc1-mode.swift also fails on Android 19 December 2023, 19:02:52 UTC
a7de231 tests: disable IRGen/section_structs.swift for 32-bit The `StaticString("hello").utf8Start` test fails on 32 bit 19 December 2023, 18:24:18 UTC
8178eb0 Merge pull request #70514 from gottesmm/pr-763529d8ee9f4164b82d03087fec25439cc1d315 [region-isolation] Fix the dataflow and add support for project_block_storage 19 December 2023, 18:21:59 UTC
dfe3d2a Merge pull request #70488 from kavon/ncgenerics-stdlib-building-v2 [NCGenerics] Fix more issues while building the stdlib 19 December 2023, 18:19:25 UTC
cbc1859 Merge pull request #70533 from tshortli/catalyst-modify-accessor-inferred-availability AST: Fix macCatalyst availability for synthesized declarations 19 December 2023, 18:16:55 UTC
e3655f5 [CSApply] Perform a regular coerceToType when adjusting types for preconcurrency. 19 December 2023, 16:14:52 UTC
2fae697 Fix typo `createAsyncTaskInGroupWithExecutor` in Builtins.def 19 December 2023, 15:31:43 UTC
1de0e3b [test] Improve ParseableInterfaceImports check patterns (#70519) When one configures their toolchain to use a define (`-D`) in either `SWIFT_FRONTEND_TEST_OPTIONS` or `SWIFT_DRIVER_TEST_OPTIONS`, the DIModule generated by this test might have other elements like `configMacros` in between `name:` and `includePath:`. To account for this possibility, break the check in two, using `CHECK-SAME` for the second part. 19 December 2023, 14:46:52 UTC
d0b47b8 SwiftCompilerSources: add CollectionLikeSequence.contains() 19 December 2023, 10:05:16 UTC
3f0d309 SwiftCompilerSources: add Sequence.walk() 19 December 2023, 10:05:16 UTC
53d3c63 [SIL] add Value.hasLifetime 19 December 2023, 10:05:16 UTC
ed53ab7 [SIL] add Value.lifetimeEndingUses 19 December 2023, 10:05:16 UTC
2a9aef9 [SIL] add BeginApplyInst.token 19 December 2023, 10:05:16 UTC
0ddf2a8 [SIL] add BasicBlock.singleSuccessor 19 December 2023, 10:05:16 UTC
a396cc3 [SIL] InstructionRange API; exitBlocks 19 December 2023, 10:05:16 UTC
61111ed AST: Fix macCatalyst availability for synthesized declarations. The macCatalyst platform availability of a declaration may be inferred from the iOS platform availability of that declaration in the absence of an explicit macCatalyst availability attribute. This means that when inheriting macCatalyst platform availability, the explict iOS availability of an inner ancestor should take precedence over explicit macCatalyst availability of an outer ancestor. The algorithm that computes inferred availability attributes for synthesized declarations was treating macCatalyst and iOS as independent platforms, though, sometimes yielding inapproparite macCatalyst availability. Resolves rdar://107766644 19 December 2023, 07:49:26 UTC
e383631 Merge pull request #70527 from tshortli/stolen-package SIL: Allow package decls to be serialized when appropriate 19 December 2023, 06:55:27 UTC
e7f6377 [sil] Now that we are enforcing that pack_metadata insts are only allowed in LoweredSIL, update some tests by splitting them into their own Lowered file. 19 December 2023, 06:13:15 UTC
a6c9887 Merge pull request #70530 from cachemeifyoucan/eng/PR-no-swift-target-frontend 19 December 2023, 04:57:38 UTC
9db866f Merge pull request #70524 from hyp/eng/pdb-for-all-of-us [windows][build] pass the /debug flag to the linker 19 December 2023, 03:01:59 UTC
34f359d [NCGenerics] fix TypeLowering 19 December 2023, 02:55:56 UTC
d807198 [NCGenerics] fix missing contextual type 19 December 2023, 02:55:56 UTC
f0e17af [NCGenerics] fix `_bridgeAnythingToObjectiveC` Now that there's an actual conformance requirement in the generic signature, we need a real conformance lookup function. 19 December 2023, 02:55:56 UTC
a9321d0 [nfc] add variadic `is` for types 19 December 2023, 02:55:56 UTC
b4e1c48 Tests: Add serialization of vtable for package class tests. Missing from https://github.com/apple/swift/pull/70100/. 19 December 2023, 02:12:54 UTC
857c2c3 Tests: Add serialization of witness for conformance to package protocol tests. Missing from https://github.com/apple/swift/pull/70100/. 19 December 2023, 01:52:48 UTC
ddd8c01 [region-isolation] Do not treat mark_dependence as an ignore. Treat it as an assign from op 0 -> result and a require of op 1. Semantically a mark_dependence returns a value that is equal to its first parameter with the extra semantics that any destroys of the 2nd operand cannot occur before any uses of the result of the instruction. From a region perspective this suggests that the instruction should be an assign from the first operand onto the result and act as a require on the result. Semantically the requirement that the 2nd operand cannot be destroyed before any uses of the result does not expose any memory or state from the first operand implying that we don't need to merge it into the result region. The restriction is purely to tell the optimizer what it can/cannot do rather. 19 December 2023, 00:56:32 UTC
71a8c8e [region-isolation] Some small comment cleanups/reordering of definitions. NFCI. 19 December 2023, 00:29:46 UTC
998f067 [region-isolation] Add support for mark_unresolved_move_addr. It is a store. 19 December 2023, 00:21:34 UTC
409b276 [ASTGen] Statements 19 December 2023, 00:09:25 UTC
407674e [Test] Fix the wrong subsitution of `swift-frontend-target` in tests There is no `%swift-frontend-target` subsitution in test, which is actually `%target-swift-frontend`. The wrong spelling is actually interpreted by lit as `%swift`-frontend-target, and surprising didn't break any tests as the last argument from subsitution is `-define-availability` so it just leads to an very akward availability definition. 19 December 2023, 00:07:48 UTC
d16d979 SIL: Allow package decls to be serialized when appropriate. https://github.com/apple/swift/pull/70100 prohibited `package` declarations from ever being serialized in order to solve a problem in which the declarations were being serialized inappropriately. That's too heavy handed, though, because an `@_alwaysEmitIntoClient` function with `package` access *must* be serialized because it has public non-abi linkage. Resolves rdar://104711625 18 December 2023, 23:06:19 UTC
eda8f15 Merge pull request #70473 from AtariDreams/Task Use aligned_alloc when the platform we use supports it 18 December 2023, 22:53:51 UTC
614a8e3 Merge pull request #70507 from jckarter/generic-moveonly-diagnostic-names Look through copy_addr and opened existentials to diagnose move-only sources. 18 December 2023, 21:27:09 UTC
d2c897a [windows][build] pass the /debug flag to the linker when building with debug information enabled This ensures that every executable and dll get a corresponding PDB file with the debug information. 18 December 2023, 21:01:30 UTC
f6cda45 [region-isolation] Add support for alloc_vector. Its an assign fresh. 18 December 2023, 20:47:42 UTC
58a6e2a [region-isolation] Add Asserting support for {alloc,dealloc}_pack_metadata since they only appear in Lowered SIL. I also added a note to the SIL.rst and an assert into the SILVerifier to better document this requirement. 18 December 2023, 20:35:40 UTC
4a635b6 [region-isolation] Add support for fix_lifetime. fix_lifetime just acts as a require. 18 December 2023, 20:35:40 UTC
59fe82d [region-isolation] Do not run on non-Ownership SSA SIL and mark certain instructions that can only appear in non-OSSA as asserting. We already only supported Ownership SSA since we run early in the pipeline before OSSA is lowered. This just formalizes this behavior. I am marking these instructions as Asserting (even though we will never see them) so I can semantically be sure that all of the instructions are covered without using an "unsupported" like moniker that I fear will lead to new instructions being added as unsupported. Better to have a semantic thing for new instruction adders to use. 18 December 2023, 20:35:40 UTC
6cc5d67 Merge pull request #70479 from atrick/no-pointer-escape-flag [SIL] Bridge findPointerEscape() and fix OnoneSimplifyable 18 December 2023, 20:22:06 UTC
back to top