main
Commits on Dec 23, 2021
-
Merge pull request #40625 from buttaface/droid-remove-icu
[android] Remove ICU build flags since that requirement was dropped in #40340
-
Migrate options from
stdlib/CMakeLists.txtinto dedicated file (#40640 -
Merge pull request #40697 from xedin/dist-accessor-fixes
[Distributed] IRGen: A couple of fixes for accessor
-
[Distributed] IRGen: Fix method pointer retrieval
`getPointerToMethod()` should acoount for the fact that distributed thunk is an async function, so direct pointer should be to "async pointer" information instead of SIL function.
-
Merge pull request #40686 from compnerd/serialization
tests: enable Serialization test on Windows
-
[Distributed] IRGen: Make accessor
thinand require actor as (last)…… guaranteed argument
Commits on Dec 22, 2021
-
Merge pull request #40685 from compnerd/normalized
Serialization: normalize the path before use
-
Merge pull request #40689 from compnerd/cleanup
Revert "build: add a workaround for CMake[>=3.22] and SourceKit"
-
-
-
Merge pull request #40670 from adrian-prantl/77344315
Fix the module hash stored in -gmodules skeleton units
-
Add a SSADestroyHoisting utility and pass
Extract and rewrite the destroy hoisting algorithm originally from CopyForwarding (in 2014). This is now a light-weight utility for hoisting destroy_addr instructions. Shrinking an object's memory lifetime can allow removal of copy_addr and other optimization. This is extremely low-overhead and can run at any optimization level without dependency on any analysis. This algorithm is: - Incremental - SSA-based - Canonical - Free from alias analysis See file-level comments. The immediate purpose is to specify and test the constraints introduced by adding lexical variable lifetimes to SIL semantics. It can be used as a template for end_borrow hoisting. Ultimately, this utility can be invoked within any pass that needs to optimize a particular uniquely identified address. It will be used to remove much of the complexity from CopyForwarding.
-
Add a general BackwardReachability analysis.
Pessimistic, non-iterative data flow for analyzing backward reachability from a set of last uses to their dominating def or nearest barrier. Meet: ReachableEnd(predecessor) = intersection(ReachableBegin, successors) Intended for frequently called utilities where minimizing the cost of data flow is more important than analyzing reachability across loops. Expected to visit very few blocks because barriers often occur close to a last use. Note: this does not require initializing bitsets for all blocks in the function for each SSA value being analyzed.
-
Revert "build: add a workaround for CMake[>=3.22] and SourceKit"
This reverts commit 1e5df70. This does not actually impact the build, so revert it to reduce the complexity in the build.
-
Merge pull request #40688 from rintaro/disble-rdar86809003
[SourceKit] Disable a failing test case for 'request.compile'
-
tests: enable Serialization test on Windows
Enable the Serialization/restrict-swiftmodule-to-revision on Windows. This test was unnecessarily disabled on Windows due to the use of environment variables which can be accommodated by using the `env` command.
-
Serialization: normalize the path before use
This normalizes the path so that we always have the mapping in normal form. This fixes a bug in the cross-module import tracing, allowing us to finally enable the test on Windows.
-
Merge pull request #40668 from etcwilde/ewilde/an-actor-for-your-thou…
…ghts Fix miss-parse diagnostic to say "actor"
-
test/SourceKit/Compile/basic.swift also fails on aarch64 linux
rdar://86809003
-
test/SILOptimizer/shrink_borrow_scope.sil fails on a bot
rdar://86809882
-
Merge pull request #40676 from compnerd/definitely-wrong
test: enable SILOptimizer.definite-init-wrongscope
-
test/SourceKit/Compile/basic.swift fails on arm64 macOS
rdar://86809003
-
Merge pull request #40629 from eeckstein/rename-libswift
Rename libswift
-
[Regex] Infer capture types of regex literals.
When parsing a regular expression literal, accept a serialized capture structure from the regex parser. During type checking, decode it and form Swift types. Examples: ```swift '/(.)(.)/' // ==> `Regex<(Substring, Substring)>` '/(?<label>.)(.)/' // ==> `Regex<(label: Substring, Substring)` '/((.))*((.)?)/' //==> `Regex<([Substring], [Substring], Substring, Substring?)>` ``` Also: - Fix a bug where a regex literal parsing error is not returning an error parser result. Note: - This needs to land after apple/swift-experimental-string-processing#92 and after `dev/4` tag has been created. - See apple/swift-experimental-string-processing#92 for regex parser changes and the capture structure encoding. - The `RegexLiteralParsingFn` `CaptureStructureOut` pointer type change from `char *` to `void *` will not break builds due to implicit pointer conversion (SE-0324) and unchanged ABI. Resolves rdar://83253511.
-
rename initializeLibSwift -> InitializeSwiftModules
and some updates in comments.
-
-
cmake/build-script: rename the libswift option to "bootstrapping"
In cmake, rename LIBSWIFT_BUILD_MODE to BOOTSTRAPPING_MODE. Also, rename the lit feature "libswift" to "swift_in_compiler".
-
libswift: rename cmake targets and functions
libswift -> swiftCompilerModules or swiftCompilerSources
-
Set the single-pass pipeline's isMandatory flag based on the opt-mode.
-
Add a UniqueAddressUses utility.
Analyze and classify the leaf uses of unique storage. Storage that has a unique set of roots within this function includes alloc_stack, alloc_box, exclusive argument, and global variables. All access to the storage within this function is derived from these roots. Gather the kinds of uses that are typically relevant to algorithms: - loads (including copies out of, not including inout args) - stores (including copies into and inout args) - destroys (of the entire aggregate) - debugUses (only populated when preserveDebugInfo == false)
-

