https://github.com/apple/swift

sort by:
Revision Author Date Message Commit Date
22ab037 Use SWIFT_STDLIB_LTO_TYPE as variable name and llvm-thin/llvm-full as values 09 December 2020, 17:05:07 UTC
1f85a49 Add a SWIFT_STDLIB_LLVM_LTO CMake option to enable building stdlib with LTO 04 December 2020, 23:07:18 UTC
3211817 [CMake] Copy legacy layouts for module architectures (#34921) This supports properly the new dependencies introduced with #34846. Addresses rdar://71851272 02 December 2020, 21:12:09 UTC
b8581cb [AutoDiff] Add differentiation benchmarks (#34901) * Add differentiation benchmarks. * Make install name of _Differentiation be @rpath/libswift_Differentiation.dylib. Co-authored-by: Marc Rasi <marcrasi@google.com> 02 December 2020, 20:26:31 UTC
aea1ace Merge pull request #34920 from nkcsgexi/71898247 test: recover Driver/opt-record.swift 02 December 2020, 18:20:47 UTC
e004a80 test: recover Driver/opt-record.swift rdar://71898247 02 December 2020, 17:54:24 UTC
2b88336 Merge pull request #34828 from mikeash/metadata-allocator-scribble-check [Runtime] Validate scribble data when metadata allocation scribbling is enabled. 02 December 2020, 15:55:43 UTC
1a20cbe Merge pull request #34918 from xedin/rdar-71858936 [ConstraintSystem] Mark type variable representing closure parameter … 02 December 2020, 14:06:55 UTC
b13a8e9 Merge pull request #34915 from gottesmm/forwarding-silinstruction [ownership] Centralize all info about SILInstruction forwarding in the SILInstruction class hierarchy itself. 02 December 2020, 05:33:27 UTC
0992e77 Enable GenericSpecializer on OSSA by default (#34899) 02 December 2020, 05:19:17 UTC
5ebba42 [ConstraintSystem] Mark type variable representing closure parameter (in the body) as incomplete Restore recently removed logic to mark type variable representing closure parameter used in the body of a closure as potentially incomplete to delay attempting it until `BindParam` is simplified. Resolves: rdar://problem/71858936 02 December 2020, 04:35:34 UTC
b9a895f Merge pull request #34894 from nkcsgexi/forward-new-driver-by-default driver: forward driver invocation to the new driver by default 02 December 2020, 02:28:27 UTC
09ae2ef [ownership] Centralize all info about SILInstruction forwarding in the SILInstruction class hierarchy itself. This commit is doing a few things: 1. It is centralizing all decisions about whether an operand's owner instruction or a value's parent instruction is forwarding in each SILInstruction itself. This will prevent this information from getting out of sync. 2. This allowed me to hide the low level queries in OwnershipUtils.h that determined if a SILNodeKind was "forwarding". I tried to minimize the amount of churn in this PR and thus didn't remove the is{Owned,Ownership,Guaranteed}Forwarding{Use,Value} checks. Instead I left them alone but added in asserts to make sure that if the old impl ever returns true, the neew impl does as well. In a subsequent commit, I am going to remove the old impl in favor of isa queries. 3. I also in the process discovered that there were some instructions that were being inconsistently marked as forwarding. All of the asserts in the PR caught these and I fixed these inconsistencies. 02 December 2020, 01:36:19 UTC
33aec98 [ownership] Assume values/operands in SILGlobalVariable blocks are not in OSSA. Operationally it just means that in SILGlobalVariable blocks, all operands have ownership constraint: {OwnershipKind::Any, UseLifetimeConstraint::NonLifetimeEnding} and all values yield an ownership kind of: OwnershipKind::None. 02 December 2020, 01:36:19 UTC
3e38655 Merge pull request #34883 from LucianoPAlmeida/SR-13899-coerce-to-checked [SR-13899] [Sema] Adjustments on coerce to checked cast diagnostics 02 December 2020, 00:30:28 UTC
5266b99 Merge pull request #34891 from DougGregor/concurrency-arm64e-disable [Concurrency] Tweak where concurrency tests run 02 December 2020, 00:21:33 UTC
6328fe3 Merge pull request #34912 from xymus/warn-ineffective-spi-import [Sema] Warn on @_spi imports of modules built from their public interface 02 December 2020, 00:04:21 UTC
f0f78a1 [sil] Templatize base class of FieldIndexCacheBase. Previously FieldIndexCacheBase only had a parent class of SingleValueInstruction. I need to be able to in certain cases shim in a SingleValueInstruction subclass as a parent class instead. In my case it is to imbue ownership forwarding on StructExtractInst. This commit itself doesn't make that change and instead just always templatizes using SingleValueInstruction. 01 December 2020, 23:45:25 UTC
84afba5 driver: forward driver invocation to the new driver by default rdar://71817843 01 December 2020, 23:20:22 UTC
820b2c6 Merge pull request #34879 from Lukasa/cb-simpler-buffer-initializer [stdlib] Simplify buffer pointer initialization. 01 December 2020, 22:18:58 UTC
4bbdc39 Merge pull request #34903 from CodaFi/target-acquired [NFC] Move Migrated SDK Target List into StdlibDeploymentTarget 01 December 2020, 22:12:26 UTC
05534f1 [Sema] Reword the warning on @_spi import of a public module 01 December 2020, 21:26:44 UTC
57a2e11 Merge pull request #34834 from xedin/replace-last-supertype-index [CSBinding] Attempt to join any existing and viable bindings with new… 01 December 2020, 21:21:37 UTC
951d4f3 Merge pull request #34425 from 3405691582/OpenBSDManpageLocation 01 December 2020, 21:14:28 UTC
b47607c [Runtime] Validate scribble data when metadata allocation scribbling is enabled. Instead of scribbling each allocation as it's parceled out, scribble the entire chunk up-front. Then, when handing out an allocation, check to make sure it still has the right scribbled data in it. 01 December 2020, 21:04:52 UTC
b2ebf97 Merge pull request #34904 from AnthonyLatsis/sema-misc 01 December 2020, 20:53:20 UTC
3fd4aae Merge pull request #34898 from gottesmm/pr-d3b6d903b097410b535d20940005a1fa67d3a1bf [auto-diff] Fix a bunch of places in the *Cloners where we were not closing borrow scopes. 01 December 2020, 20:42:10 UTC
eb8af67 Merge pull request #34910 from davezarzycki/pr34910 01 December 2020, 20:24:32 UTC
aa86538 [Sema] Warn on @_spi imports of modules built from their public interface This warning should help understand missing SPI diagnostics when the compiler loads a public module when a private one is expected. rdar://71859081 01 December 2020, 19:27:45 UTC
cf6a137 Merge pull request #34911 from benlangmuir/disable-some-tests-ci [test] Disable some tests failing in specific configurations pending investigation 01 December 2020, 19:10:58 UTC
01d2638 [test] Mark two SILOptimizer tests requiring asserts Pending investigation: rdar://71857770 01 December 2020, 19:08:48 UTC
dd92ed5 [test] Disable IRGen/unmanaged_objc_throw_func.swift with non-optimized stdlib Pending investigation rdar://71857262 01 December 2020, 19:08:11 UTC
540ecac Merge pull request #34908 from atrick/comment-escape 01 December 2020, 19:01:35 UTC
6eb6dd6 [Concurrency] Update tests for Linux 01 December 2020, 18:48:16 UTC
59c041d Merge pull request #34907 from eeckstein/concurrency-irgen2 [concurrency] IRGen: update task/executor/context on every suspend point 01 December 2020, 18:46:15 UTC
4861441 Merge pull request #34885 from LucianoPAlmeida/warn-class-protocol-inheritance [Sema] Adding deprecation warning for protocol inheritance 'class' syntax 01 December 2020, 18:36:41 UTC
f3666d0 [NFC] Move Migrated SDK Target List into StdlibDeploymentTarget Centralize management of this mapping. 01 December 2020, 18:16:59 UTC
2b0ff64 Merge pull request #34870 from zoecarver/cxx/fix/no-params [cxx-interop] Bail on functions that use unimportable types. 01 December 2020, 18:12:20 UTC
4b580bd [stdlib] Unbreak unified builds after #34859 01 December 2020, 17:48:53 UTC
4396eba Update a comment in EscapeAnalysis. To reflect the most recent compile time fix. 01 December 2020, 16:28:20 UTC
8fc2598 [build-script] Allow to tune dsymutil parallelism (#34795) This should enable scaling when using machines with large amount of RAM. To better support machines with lower spec, process one binary per dsymutil invocation (reverting #34149). Add some (limited) facilities to gather the time taken to execute dsymutil to better assist in tuning the parameter -- these are printed in JSON format in the log to allow for easier scraping ``` { "command": "dsymutil", "start": "2020-11-18T18:10:47" } { "command": "dsymutil", "end": "2020-11-18T18:14:45" } ``` Addresses rdar://71018443 01 December 2020, 15:11:10 UTC
bf2be9e [concurrency] IRGen: update task/executor/context on every suspend point For this, store those 3 values on the stack at function entry and update them with the return values of coro_suspend_async intrinsic calls. This fixes a correctness issue, because the executor may be different after a resume. It also is more efficient, because this means that the 3 values don't have to preserved in the context over a suspension point. 01 December 2020, 14:19:39 UTC
7180e8d Merge pull request #34906 from davezarzycki/pr34906 01 December 2020, 14:11:47 UTC
ac65e6f [Sema] Detect if we should use a conditional binding when recording the CoerceToCheckedCast fix 01 December 2020, 12:03:17 UTC
14350f8 Merge pull request #34876 from eeckstein/silgen-async-handler [concurrency] SILGen: emit @asyncHandler functions. 01 December 2020, 11:42:04 UTC
0e650c1 [Testing] Add missing REQUIRES 01 December 2020, 11:39:13 UTC
d01aa21 Merge pull request #34867 from eeckstein/fix-escape-analysis EscapeAnalysis: fix a quadratic behavior in ConnectionGraph::getNode 01 December 2020, 09:02:35 UTC
9e6ea6c Merge pull request #34900 from rxwei/ad-context-destructor [AutoDiff] Properly destruct 'AutoDiffLinearMapContext'. 01 December 2020, 08:55:41 UTC
4e048bf Merge pull request #34893 from marcrasi/make-it-automatically-inherit inherit required protocols during TangentVector synthesis 01 December 2020, 07:51:40 UTC
8e03bd3 [concurrency] SILGen: emit @asyncHandler functions. An asyncHandler function is split into two functions: 1. The asyncHandler body function: it contains the body of the function, but is emitted as an async function. 2. The original function: it just contains _runAsyncHandler(operation: asyncHandlerBodyFunction) rdar://problem/71247879 01 December 2020, 07:48:40 UTC
326e578 [concurrency] SILGen: allow the Builtin.createAsyncTaskFuture to have a non-generic closure argument. It fixes a crash in SILGen if Builtin.createAsyncTaskFuture is used in a non-generic context. I found this by experiment - we don't use it currently in the stdlib. But it doesn't harm to fix this. 01 December 2020, 07:42:56 UTC
863dcec [concurrency] stdlib: add a _runAsyncHandler compiler intrinsic. It just calls Task.runDetatched. It's more efficient to have a non-generic compiler intrinsic than to let the compiler call the generic Task.runDetatched. The _runAsyncHandler doesn't have to be generic because the return value of the run function is defined to be Void. 01 December 2020, 07:42:56 UTC
6f5cffb Mangling: add support for mangling the body-function of asyncHandlers We don't introduce a new mangling here. To distinguish the names of the original asyncHandler function and it's generated "body-function", we just mangle the body-function with an async attribute, i.e. as if it was declared as async. This change is mostly to pass information to the ASTMangler to mangle a not async function as "async". 01 December 2020, 07:42:56 UTC
c724153 Merge pull request #34896 from nate-chandler/concurrency/irgen/rdar71816041 [Async CC] Always add full type metadata to bindings. 01 December 2020, 03:26:26 UTC
8d479f1 [autodiff] Change getTangentStoredProperty() to use a Projection instead of FieldIndexCacheBase. This is NFCI. THis is in preparation for making FieldIndexCacheBase a templated subclass. 01 December 2020, 02:16:11 UTC
cfe2ebd [Concurrency] Try harder to enable Concurrency tests on Linux 01 December 2020, 01:13:54 UTC
7f46a30 Make sure ~AutoDiffLinearMapContext() is called. 01 December 2020, 01:01:18 UTC
6378c3e fix SourceLoc-related crasher and add tests 01 December 2020, 00:47:24 UTC
affeba9 [auto-diff] Fix a bunch of places in the *Cloners where we were not closing borrow scopes. These were all just trying to open a borrow scope, so I changed them to use the API SILBuilder::emitScopedBorrowOperation(SILLocation, SIL). 01 December 2020, 00:05:37 UTC
de2dbe5 [AutoDiff] Bump-pointer allocate pullback structs in loops. (#34886) In derivatives of loops, no longer allocate boxes for indirect case payloads. Instead, use a custom pullback context in the runtime which contains a bump-pointer allocator. When a function contains a differentiated loop, the closure context is a `Builtin.NativeObject`, which contains a `swift::AutoDiffLinearMapContext` and a tail-allocated top-level linear map struct (which represents the linear map struct that was previously directly partial-applied into the pullback). In branching trace enums, the payloads of previously indirect cases will be allocated by `swift::AutoDiffLinearMapContext::allocate` and stored as a `Builtin.RawPointer`. 30 November 2020, 23:49:38 UTC
9dc2a71 Merge pull request #34892 from apple/concurrency-main [Concurrency] Merge concurrency-main to main. 30 November 2020, 23:37:54 UTC
c467bf9 Merge pull request #34813 from gottesmm/pr-363155fab264654b07657a22133eafbe01f5d6d1 [ome] Invoke simplifyInstruction after lowering ownership and use replaceAllSimplifiedUsesAndErase instead of a manual RAUW. 30 November 2020, 23:31:37 UTC
0d728ee Merge pull request #34863 from zoecarver/cxx/fix/variadic-members [cxx-interop] Fix assertion to allow variadic members. 30 November 2020, 22:20:15 UTC
2492850 update differentiable programming manifesto 30 November 2020, 22:14:11 UTC
f33f1d3 [Async CC] Always add full type metadata to bindings. NecessaryBindings are used by both async functions and partial apply forwarders. The latter are able to avoid bindings in some cases because a new function is generated where the information that would otherwise be available in the bindings can be made available. That is not the case for async functions. A generic async function requires all of the metadata and witness tables be passed along to it: unlike a partial apply forwarder it isn't in any way specialized so this information can't be recovered. Previously, metadata bindings were always passed along to async functions. However, destructuring that can be done for partial apply forwarders was still being applied. This resulted in an inappropriate and unexpected number of bindings in NecessaryBindings. Here, that destructuring is avoided for metadata passed to async functions. Now, the full metadata required by async functions are passed along to them as necessary. rdar://problem/71816041 30 November 2020, 22:02:56 UTC
3cb6940 Merge pull request #34887 from gottesmm/pr-a2f43c89854b9be02db9525f4baea04ff3bca6b8 [autodiff] When asserts are enabled, verify all autodiff compiler generated functions. 30 November 2020, 21:00:13 UTC
2328132 Merge pull request #34832 from xymus/rmodule-loading [Frontend] Intro flag to remark on loaded modules location 30 November 2020, 20:58:20 UTC
87c9cd8 Merge pull request #34853 from keith/ks/nfc-remove-unused-modulecachedir-variable 30 November 2020, 20:51:51 UTC
3d6c8a7 [cxx-interop] Fix assertion to allow variadic members. Simply fixes an assertion to allow variadic member functions. 30 November 2020, 19:55:56 UTC
b0eafee Merge pull request #34665 from lorentey/runtime-error-message-format [runtime] Adjust file/line information in fatal error messages to match compiler diagnostics 30 November 2020, 19:46:49 UTC
3c00266 Merge pull request #34838 from varungandhi-apple/vg-serde-serialize-non-modular-clang-type [Serialization] Serialize Clang types for non-modular headers. 30 November 2020, 19:34:04 UTC
c51b10a Merge pull request #34814 from lorentey/partitioning-cleanup [stdlib][NFC] Simplify partition(by:)’s implementation 30 November 2020, 19:33:32 UTC
f9e0649 [ome] Remove bad pattern of having a global SILBuilder with a global SILBuilderWithContext and multiple local SILBuilderWithScope. To make it a little less verbose, I added an always inline helper method called: template <typename ResultTy> ResultTy OME::withBuilder(SILInstruction *insertPt, function_ref<ResultTy (SILBuilder &, SILLocation)> visitor) { SILBuilderWithScope builder(insertPt, builderContext); return visitor(builder, insertPt->getLoc()); } Since it is always inline there shouldn't be any perf impact and it should be like invoking a lambda in the caller directly in the same function that the lambda was declared in. I just couldn't type SILBuilderWithScope builder(insertPt, builderContext) all the time. Seems error prone. 30 November 2020, 19:23:32 UTC
d2e3171 [ome] Invoke simplifyInstruction after lowering ownership and use replaceAllSimplifiedUsesAndErase instead of a manual RAUW. I am doing two things here: 1. simplifyInstruction expects its result to only be passed to replaceAllSimplifiedUsesAndErase. This was an oversite. 2. I am upstreaming support for InstSimplify in OSSA (to finish sil-combine work). The main assumption that inst-simplify is going to have is that it is looking at SIL in correct ownership ssa or non-ownership ssa. It is not going to be designed to work with an intermediate world that is the world where before this PR it was being invoked (specifically, we have marked the function as not being in OSSA but haven't finished transforming it into non-OSSA SIL). To avoid this problem, I moved the simplification to the end of the pass after we have done the initial traversal. Should be NFCI. 30 November 2020, 19:23:32 UTC
b0be562 Merge pull request #34829 from aschwaighofer/irgen_get_await_async_continuation IRGen: get/await_async_continuation support 30 November 2020, 19:22:55 UTC
c189398 Merge pull request #34877 from gottesmm/eliminate_typelowering_usage_of_and_fold [typelowering] Eliminate typelowering usage of And*Fold APIs 30 November 2020, 19:22:37 UTC
822f857 Merge pull request #34817 from jckarter/coalesce-unsafe-continuations Coalesce multiple `Unsafe*Continuation` definitions. 30 November 2020, 18:30:48 UTC
3aec862 Merge pull request #34848 from aschwaighofer/make_prespecialization_experimental Pre-specialization: This is an experimental feature 30 November 2020, 18:22:49 UTC
12b08ae Disable concurrency test on arm64e. ptrauth is not yet implemented for asynchronous functions. Fixes rdar://71809918. 30 November 2020, 18:20:26 UTC
158427b Merge pull request #34840 from Azoy/swift-5-4-hacks Bump backward compatibility to 5.4 30 November 2020, 18:14:32 UTC
3347f8d [Concurrency] Generalize futures tests 30 November 2020, 18:14:30 UTC
37f8f20 Merge pull request #34858 from HollowMan6/patch-1 Fix typo 30 November 2020, 18:09:34 UTC
356946f Merge pull request #34476 from scentini/implementation-only-symbol-visibility-fix [cxx-interop] Fix SR-13785 30 November 2020, 18:07:11 UTC
74e2cb6 Partially revert Float16 availability changes (#34847) * Partially revert Float16 availability changes Specifically, when building for macOS/x86_64, use the old availability annotation instead of marking Float16 unconditionally unavailable to give downstream clients a window to adjust their own annotations. 30 November 2020, 17:59:15 UTC
ba6c08f Merge pull request #34136 from gottesmm/pr-7da9c7145fbd96869d5e73a40a600d6c0e23fa91 [concurrency] Ban associated objects from being set on instances of actor classes. 30 November 2020, 17:56:25 UTC
517f4b7 Merge pull request #34859 from drodriguez/test-blocks-runtime-stub-as-stdlib [tests] Compile BlocksRuntimeStub with stdlib compiler settings 30 November 2020, 17:24:17 UTC
4e39e59 Add a field reflection function that constructs keypaths. (#34815) While the existing _forEachField in ReflectionMirror.swift already gives the offsets and types for each field, this isn't enough information to construct a keypath for that field in order to modify it. For reference, this should be sufficent to implement the features described here: (https://forums.swift.org/t/storedpropertyiterable/19218/62) purely at runtime without any derived conformances for many types. Note: Since there isn't enough reflection information for `.mutatingGetSet` fields, this means that we're not able to support reflecting certain types of fields (functions, nonfinal class fields, etc). Whether this is an error or not is controlled by the `.ignoreUnknown` option. 30 November 2020, 17:17:23 UTC
89fab1b Allow the creation of a shadow variable when the type is a refcounted pointer (#34835) 30 November 2020, 17:07:23 UTC
b9122ef Merge pull request #34866 from compnerd/not-so-optional-property test: repair Autodiff/validation-test/optional-property on Win32 30 November 2020, 16:32:02 UTC
41dddf4 [CMake] Extend copy-legacy-layouts dependency to swiftmodules (#34846) ... and other products as well. Before this change, the dependency was enforced only for stdlib object files -- since according to the Ninja dependency graph other libraries can be scheduled as soon as the swiftmodules are ready, there is a chance that we attempt to build those before legacy layours are copied. Addresses rdar://71559791 30 November 2020, 16:18:41 UTC
54910bd Merge pull request #34874 from compnerd/sdkroots test: handle spaces in paths better on macOS tests 30 November 2020, 15:40:51 UTC
d2b5a8e Merge pull request #34873 from compnerd/pythony build: handle spaces in Xcode better (NFC) 30 November 2020, 15:40:07 UTC
3d942d7 Merge pull request #34868 from compnerd/spacing-out build: handle spaces better when boostrapping Ninja 30 November 2020, 15:39:32 UTC
48a28ab Merge pull request #34882 from DougGregor/async-let-silgen [Concurrency] Implement SIL generation for "async let". 30 November 2020, 15:36:03 UTC
220757b Merge pull request #34888 from gottesmm/pr-a2129e0b4b1dab6c92b0aabf6225819c6404a4ad [allocbox-to-stack] Fix an ossa bug in PromotedParamCloner. 30 November 2020, 15:22:51 UTC
333737b [sil] Remove usage from TypeLowering of SILBuilder::create*AndFold(). These create*AndFold APIs are actively harmful when used in TypeLowering since: 1. In general they are a problem since it is weird for a builder API to remove an instruction. 2. These APIs do not take an erase callback that must be used in passes that need to update state before erasing the instruction. 3. The typelowering APIs that use this are emitDestroyValue/etc which are the main APIs that we are using to write code that works with OSSA/non-OSSA SIL. So we are going to use these APIs in many more places, introducing this bug in many places. With that in mind, I have been committing small cheap ARC optimizations to GuaranteedARCOpts (SemanticARCOpts with expensive optimizations turned off) so that we can eliminate this without massively churning the code. We are at this stage now, so it makes sense to turn this off. 30 November 2020, 12:51:39 UTC
3ef6fba Merge pull request #34844 from gottesmm/pr-b83c2f04638cb94494351a5eb9221c6a343adc57 [semantic-arc] Optimize more lifetime joining when a copy_value, destroy_value are in the same block. 30 November 2020, 12:49:01 UTC
c24e529 Merge pull request #34881 from apple/ad-manifesto-link-to-pitch 30 November 2020, 09:52:33 UTC
b0676be [allocbox-to-stack] Fix an ossa bug in PromotedParamCloner. For those who are unfamiliar, alloc-box-to-stack while generally not interprocedural, will look one level into the callgraph to see if a partial_apply that captures a box really needs to capture the box due to an escape. If not, allocbox-to-stack clones the closure with the address inside the box being passed instead of the box itself. This can then allow us to promote the box from the heap to the stack. What went wrong here is that in OSSA, this promoted param cloner drops copy_value, destroy_value, and project_box on the given box. Both the copy_value and destroy_value cases correctly looked through copy_values, but when porting, the author forgot to handle project_box as well. This then caused the cloner to assert since: 1. The project_box in the original function had a copy_value operand. 2. When we visited that copy_value, we saw it was for the box, so we dropped the copy_value and did not add it to the cloner's Value -> op(Value) map. 3. Then when the cloner tried to create op(project_box), it tries to lookup the value associated with the copy_value that is the project_box's operand... but we don't have any such value due to (2). =><=. The test change exercises this code path by adding a (project_box (copy_value)) to one of the allocbox to stack tests. 30 November 2020, 07:53:06 UTC
25ebb5d [autodiff] When asserts are enabled, verify all autodiff compiler generated functions. This ensures that any invalid SIL generated by these cloners is caught immediately at the source when asserts are enabled improving productivity. 30 November 2020, 07:44:31 UTC
back to top