profile
viewpoint
David Zarzycki davezarzycki Ithaca, New York http://znu.io/ I joined Apple in 1996 at 17, learned on the job, created launchd and libdispatch, and helped create Swift. I left Apple in 2014 and now I write code for fun.

apple/swift 53897

The Swift Programming Language

apple/swift-evolution 11546

This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.

apple/swift-package-manager 8005

The Package Manager for the Swift Programming Language

llvm/llvm-project 6310

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Note: the repository does not accept github pull requests at this moment. Please submit your patches at http://reviews.llvm.org.

apple/swift-corelibs-foundation 4029

The Foundation Project, providing core utilities, internationalization, and OS independence

apple/swift-corelibs-xctest 862

The XCTest Project, A Swift core library for providing unit test support

apple/swift-lldb 645

This is the version of LLDB that supports the Swift programming language & REPL.

apple/llvm-project 273

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. This fork is used to manage Apple’s stable releases of Clang as well as support the Swift project.

push eventdavezarzycki/swift

Butta

commit sha 69d04aad08da3245f87c6a2df35869126d48b55e

[linux] remove absolute rpath of /usr/lib/swift/linux added to many shared libraries This was presumably added as a backup, in case the libraries in a toolchain couldn't be found, but will not work well, so take it out.

view details

Joe Groff

commit sha 3364c51b1d53fd22a3adbaf3d406bd6685535221

SIL: Verify invariants of async_continuation instructions. - Enforce types of continuations and resume/error BBargs for await - Can't access the continuation again or exit the function mid-suspend

view details

Pavel Yaskevich

commit sha 17f7ad82cac717a0be4e8417a136348fb0365ca9

[CSBindings] Record all of the protocol requirements (not just literal)

view details

Pavel Yaskevich

commit sha 0c51159228992019f029530844d7c482256b2ed2

[CSBindings] Record constraint associated with a subtype relationship While inferring bindings, let's record not only the fact that current type variable is a subtype of some other type variable but track constraint which establishes this relationship.

view details

Pavel Yaskevich

commit sha a9cce605a4a4062366ce7c4ef2afedd055e79f2c

[CSBindings] Shrink binding "sources" to supertype and equivalence only Instead of recording all of the binding "sources" let's only record subtype, supertype and equivalence relationships which didn't materialize as bindings (because other side is a type variable). This is the only information necessary to infer transitive bindings and protocol requirements.

view details

Pavel Yaskevich

commit sha d011bf3d7d72adc8235d336a202241f8cda62971

[CSBindings] Implement transtive protocol requirement inference Implements iterative protocol requirement inference through subtype, conversion and equivalence relationships. This algorithm doesn't depend on a type variable finalization order (which is currently the order of type variable introduction). If a given type variable doesn't yet have its transitive protocol requirements inferred, algorithm would use iterative depth-first walk through its supertypes and equivalences and incrementally infer transitive protocols for each type variable involved, transferring new information down the chain e.g. T1 T3 \ / T4 T5 \ / T2 Here `T1`, `T3` are supertypes of `T4`, `T4` and `T5` are supertypes of `T2`. Let's assume that algorithm starts at `T2` and none of the involved type variables have their protocol requirements inferred yet. First, it would consider supertypes of `T2` which are `T4` and `T5`, since `T5` is the last in the chain algorithm would transfer its direct protocol requirements to `T2`. `T4` has supertypes `T1` and `T3` - they transfer their direct protocol requirements to `T4` and `T4` transfers its direct and transitive (from `T1` and `T3`) protocol requirements to `T2`. At this point all the type variables in subtype chain have their transitive protocol requirements resolved and cached so they don't have to be re-inferred later.

view details

Pavel Yaskevich

commit sha 5dc9919aff788fc71ab69603db997f0a45ca258e

[ConstraintSystem] NFC: Make `SemaTest` a friend of `ConstraintSystem` This is necessary in order to have access to private members of a `ConstraintSystem` for testing purposes, such as logic related to potential binding computation.

view details

Pavel Yaskevich

commit sha 1aecea17e41bde3508326c9ae72c47b432ed5c15

[unittest/Sema] Add a helper method to infer bindings for a given type variable This mimics what `determineBestBindings` does but without sorting.

view details

Pavel Yaskevich

commit sha a24383112214c2a23a2008f5b704a0acb513b9fe

[unittest/Sema] Add a test-case for a single hop protocol requirement inference In situations like: `$T0 <convertible> $T1` `$T1 <conforms to> P` `$T0` should know about `P` as a transitive protocol requirement.

view details

Pavel Yaskevich

commit sha 8024b7bef3a3907299656eab5c0dc9ac844a5d05

[CSBindings] Improve equivalence class handling in transitive protocol inference Let all of the members of the equivalence class be represented by the first type variable encountered during the depth-first walk. This means that supertypes are inferred from the members and all of the transitive protocol requirements are distributed among the members upon return back to the "representative".

view details

Pavel Yaskevich

commit sha a3c3981a68f9672e48823fda0661c06df5c9fbc3

[unittest/Sema] NFC: Add a way to create a protocol with a given name and parent type

view details

Pavel Yaskevich

commit sha 9598f1984833a76aaa38cdb080bf997e28dacd1b

[unittest/Sema] Cover transitive protocol inference with unit tests

view details

Andrew Trick

commit sha 85ff15acd30f6b1b6e5ead370ec9d99e6a67b0ab

Add indexTrieRoot to the SILModule to share across Analyses. ...and avoid reallocation. This is immediately necessary for LICM, in addition to its current uses. I suspect this could be used by many passes that work with addresses. RLE/DSE should absolutely migrate to it.

view details

Andrew Trick

commit sha 7774f06f10eabe16ef6b157f92e8fab5e9e5f029

Change IndexTrie to allow signed indices

view details

Andrew Trick

commit sha 2767b51d615d5fcf464557ef404c491f4259e262

Change Projection to support signed indices. Change ProjectionIndex for ref_tail_addr to std::numeric_limits<int>::max(); This is necessary to disambiguate the tail elements from ref_element_addr field zero.

view details

Andrew Trick

commit sha 7554a6aa3134b8b6078aac4ad21b58871a55d757

Fix a pointer addition bug in SwiftReflectionTest.

view details

Andrew Trick

commit sha 92a181671ea7a622286281a81a97a0b2f032c76d

Fix ValueTracking isUniquelyIdentified to use AccessedStorage. To clarify and unify logic, improve precision, and behave consistently with other code that does the same thing.

view details

Andrew Trick

commit sha cc0aa2f8b8740221420ac35e86d7e67cbcd8529b

Add an AccessPath abstraction and formalize memory access Things that have come up recently but are somewhat blocked on this: - Moving AccessMarkerElimination down in the pipeline - SemanticARCOpts correctness and improvements - AliasAnalysis improvements - LICM performance regressions - RLE/DSE improvements Begin to formalize the model for valid memory access in SIL. Ignoring ownership, every access is a def-use chain in three parts: object root -> formal access base -> memory operation address AccessPath abstracts over this path and standardizes the identity of a memory access throughout the optimizer. This abstraction is the basis for a new AccessPathVerification. With that verification, we now have all the properties we need for the type of analysis requires for exclusivity enforcement, but now generalized for any memory analysis. This is suitable for an extremely lightweight analysis with no side data structures. We currently have a massive amount of ad-hoc memory analysis throughout SIL, which is incredibly unmaintainable, bug-prone, and not performance-robust. We can begin taking advantage of this verifably complete model to solve that problem. The properties this gives us are: Access analysis must be complete over memory operations: every memory operation needs a recognizable valid access. An access can be unidentified only to the extent that it is rooted in some non-address type and we can prove that it is at least *not* part of an access to a nominal class or global property. Pointer provenance is also required for future IRGen-level bitfield optimizations. Access analysis must be complete over address users: for an identified object root all memory accesses including subobjects must be discoverable. Access analysis must be symmetric: use-def and def-use analysis must be consistent. AccessPath is merely a wrapper around the existing accessed-storage utilities and IndexTrieNode. Existing passes already very succesfully use this approach, but in an ad-hoc way. With a general utility we can: - update passes to use this approach to identify memory access, reducing the space and time complexity of those algorithms. - implement an inexpensive on-the-fly, debug mode address lifetime analysis - implement a lightweight debug mode alias analysis - ultimately improve the power, efficiency, and maintainability of full alias analysis - make our type-based alias analysis sensistive to the access path

view details

Andrew Trick

commit sha 1e9c4d13ad7caf62665ef996e898ec21f70e3fa1

Update LoadCopyToLoadBorrow for MemAccessUtils API.

view details

Andrew Trick

commit sha 7e435fa2de512117028e202ea001c28724674a80

Add AccessPath support to the AccessedStorageDumper pass. Add a flag: enable-accessed-storage-dump-uses

view details

push time in 9 hours

push eventdavezarzycki/llvm-project

David Sherwood

commit sha d67d8f879027ef401d22cc71b07a77b882d53376

[SVE][AArch64] Replace TypeSize comparisons with their integer equivalents In many places in the AArch64 backend we are comparing TypeSize objects, but in fact we are only ever expecting fixed width types. I've changed all such comparisons to use their integer equivalents by replacing calls to getSizeInBits() with getFixedSizeInBits(), etc. Differential Revision: https://reviews.llvm.org/D89116

view details

David Sherwood

commit sha f693f915a07eca94a3faeadc3b5dad59fc0eb1de

[SVE][CodeGen] Replace uses of TypeSize comparison operators In certain places in the code we can never end up in a situation where we're mixing fixed width and scalable vector types. For example, we can't have truncations and extends that change the lane count. Also, in other places such as GenWidenVectorStores and GenWidenVectorLoads we know from the behaviour of FindMemType that we can never choose a vector type with a different scalable property. In various places I have used EVT::bitsXY functions instead of TypeSize::isKnownXY, where it probably makes sense to keep an assert that scalable properties match. Differential Revision: https://reviews.llvm.org/D88654

view details

Lang Hames

commit sha 0aa5e34f659121da76c0ce18d06735930d9d0775

[ORC] Add a missing '&'.

view details

Lang Hames

commit sha d54c4e382114650ac8084b7511083253cbe9b8d1

[ORC] Move SimpleResourceManager function object inits out of constructor. MSVC doesn't seem to like capturing references to variables in lambdas passed to the variable's constructor. This should fix the windows bots that have been unable to build the new ResourceTracker unit test.

view details

David Sherwood

commit sha 72701773a7cae1243b0ccf820177dfa55c3a0343

[SVE] Replace TypeSize comparison operators in llvm/utils/TableGen In CodeGenDAGPatterns.cpp we were relying upon TypeSize comparison operators for ordering types, when we can actually just use the known minimum size since the scalable property is already being taken into account. Also, in TypeInfer::EnforceSameSize I fixed some implicit TypeSize->uint64_t casts by changing the code to test the equality of TypeSize objects instead. In other places I have replaced calls to getSizeInBits() with getFixedSizeInBits() because we are only ever expecting integer values. Differential Revision: https://reviews.llvm.org/D88947

view details

Lang Hames

commit sha 7579941d8b02af995e152a453da9b9cc0cc205e7

[examples] Fix Kaleidoscope-Ch3, which was broken by ad92f16ccc5.

view details

David Sherwood

commit sha 35a531fb456a5d8f68cf153ca2c35c7170b9b92f

[SVE][CodeGen][NFC] Replace TypeSize comparison operators with their scalar equivalents In certain places in llvm/lib/CodeGen we were relying upon the TypeSize comparison operators when in fact the code was only ever expecting either scalar values or fixed width vectors. I've changed some of these places to use the equivalent scalar operator. Differential Revision: https://reviews.llvm.org/D88482

view details

Haojian Wu

commit sha 45a15dc682c06b95cd9182a889e972e93b58aa8e

[clang-rename] Fix rename on function template specializations. previously, we missed to rename occurrences to explicit function template specilizations. Differential Revision: https://reviews.llvm.org/D89221

view details

Lang Hames

commit sha 039f3d01cbff8e162b38671f2e8ff802b74298c8

[examples] Fix test: Kaleidoscope Chapter 4 no longer supports redefinition. This may be fixed in the future, but since redefinition in OrcV2 requires more manual work on the JIT client's part it was left out of the most recent update to the tutorials.

view details

David Sherwood

commit sha 3945b69e815b3312125a0461b8b6ba53349ab3ed

[SVE][CodeGen] Replace more TypeSize comparison operators with their scalar equivalents In certain places in llvm/lib/CodeGen we were relying upon the TypeSize comparison operators when in fact the code was only ever expecting either scalar values or fixed width vectors. This patch changes a few functions that were always expecting to work on scalar or fixed width types: 1. DAGCombiner::mergeTruncStores - deals with scalar integers only. 2. DAGCombiner::ReduceLoadWidth - not valid for vectors. 3. DAGCombiner::createBuildVecShuffle - should only be used for fixed width vectors. 4. SelectionDAGLegalize::ExpandFCOPYSIGN and SelectionDAGLegalize::getSignAsIntValue - only work on scalars. Differential Revision: https://reviews.llvm.org/D88562

view details

Haojian Wu

commit sha 1e32df2f91f1aa1f8cd400ce50a621578fa0534e

[clang-rename] Fix rename on variable templates. This patch adds support for renaming variable templates. Differential Revision: https://reviews.llvm.org/D89300

view details

Kiran Chandramohan

commit sha a71a0d6d219a8d460e6aadadc47dbb04955f1375

[OpenMP][MLIR] Fix for nested parallel regions Usage of nested parallel regions were not working correctly and leading to assertion failures. Fix contains the following changes, 1) Don't set the insertion point in the body callback. 2) Save the continuation IP in a stack and set the branch to continuationIP at the terminator. Reviewed By: SouraVX, jdoerfert, ftynse Differential Revision: https://reviews.llvm.org/D88720

view details

Roman Lebedev

commit sha d083d55c2cd18437495abea791d3a8454c2f9861

[NFC][SCEV] Rename SCEVCastExpr into SCEVIntegralCastExpr All existing SCEV cast types operate on integers. D89456 will add SCEVPtrToIntExpr cast expression type. I believe this is best for consistency. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D89455

view details

Evgeny Leviant

commit sha f8b04e0653f16aafe8c41c22ed3859868575a4e9

[TableGen] Remove test case Differential revision: https://reviews.llvm.org/D89114

view details

Pavel Labath

commit sha dfb22663287602a90ba249a96c9916227430a99e

[lldb] Make DW_AT_declaration-with-children.s test more realistic (Re)add DW_AT_specification and DW_AT_object_pointer attributes. These were removed in fa89f641c, as they were bogus due to bad test case reduction.

view details

Evgeny Leviant

commit sha 8a7ca143f8bdc92824d949374c7e9ee9b33fb6af

[ARM][SchedModels] Convert IsPredicatedPred to MCSchedPredicate Differential revision: https://reviews.llvm.org/D89553

view details

Lang Hames

commit sha 680845ec0d6182c0dd3ac579daa37c1224d657e7

[ORC] Move MaterializationResponsibility methods to ExecutionSession. MaterializationResponsibility, JITDylib, and ExecutionSession collectively manage the OrcV2 core JIT state. Responsibility for maintaining and updating this state has previously been spread among these classes, resulting in implementations that are each non-trivial, but all tightly coupled. This has in turn made reading the code and reasoning about state update and locking rules difficult. The core state model can be simplified by thinking of MaterializationResponsibility and JITDylib as facets of ExecutionSession. This commit is the first in a series intended to refactor Core.cpp to reflect this model. Operations on MaterializationResponsibility and JITDylib will forward to implementation methods inside ExecutionSession. Raw state will remain with the original classes, but in most cases will only be modified by the ExecutionSession.

view details

Lang Hames

commit sha 5d2e359ce62f583d66d86daa7e9edfa82397a445

[ORC] Move DefinitionGenerator out of JITDylib. This will make it easier to implement asynchronous definition generators.

view details

Lang Hames

commit sha 069919c9ba33666786b80e89f30215ef2918ecdc

[ORC] Update Symbol Lookup / DefinitionGenerator system. This patch moves definition generation out from the session lock, instead running it under a per-dylib generator lock. It also makes the DefinitionGenerator::tryToGenerate method optionally asynchronous: Generators are handed an opaque LookupState object which can be captured to stop/restart the lookup process. The new scheme provides the following benefits and guarantees: (1) Queries that do not need to attempt definition generation (because all requested symbols matched against existing definitions in the JITDylib) can proceed without being blocked by any running definition generators. (2) Definition generators can capture the LookupState to continue their work asynchronously. This allows generators to run for an arbitrary amount of time without blocking a thread. Definition generators that do not need to run asynchronously can return without capturing the LookupState to eliminate unnecessary recursion and improve lookup performance. (3) Definition generators still do not need to worry about concurrency or re-entrance: Since they are still run under a (per-dylib) lock, generators will never be re-entered concurrently, or given overlapping symbol sets to generate. Finally, the new system distinguishes between symbols that are candidates for generation (generation candidates) and symbols that failed to match for a query (due to symbol visibility). This fixes a bug where an unresolved symbol could trigger generation of a duplicate definition for an existing hidden symbol.

view details

Lang Hames

commit sha c88d9eae8a71844b71ca529fd7b35d6025a84f55

[ORC] Fix a memory leak in the OrcV2 C API (and some comment typos). The LLVMOrcLLJITAddLLVMIRModule function was leaking its LLVMOrcThreadSafeModuleRef argument. Wrapping the argument in a unique_ptr fixes this.

view details

push time in 9 hours

push eventdavezarzycki/llvm-project

Alexander Belyaev

commit sha 1e1dd130349a59f1a5ecd6291ab2b6a081f603a6

[mlir][nfc] Move BaseOpWithOffsetSizesAndStrides to the beginning of Ops.td. Move the class to where all base classes are defined. Also remove all the builders since they are definted in subclasses anyway. Differential Revision: https://reviews.llvm.org/D89620

view details

Nathan James

commit sha accda625b8e10393f5ea681845dd6602c0096680

[nfc][clang-change-namespace] Remove unnecessary isScoped EnumDecl Matcher

view details

Sam Parker

commit sha 03f3ef221b0257a91182640563440fe8dd104c81

[LangRef] Correct return type llvm.test.set.loop.iterations.* The langref description for llvm.test.set.loop.iterations.* were missing the i1 return type. Differential Revision: https://reviews.llvm.org/D89564 Patch by: Janek van Oirschot

view details

Georgii Rymar

commit sha 6a5f9503640ff38f537e19ca0be3440b13de3120

[llvm-readobj/elf] - Change the behavior of handing DT_SONAME. The current situation/behavior is: 1) llvm-readelf doesn't need a string that is specified by `DT_SONAME`. 2) llvm-readobj/elf always tries to read it, even when there is no `DT_SONAME` tag. 3) Because of that both tools reports a warning for many our test cases. This patch delays getting a SOName string and changes the behavior (llvm-readobj) to only report a warning when there is a `DT_SONAME` and a string cab't be read. Warning is not reported for llvm-readelf, as it never tries to dump it. Differential revision: https://reviews.llvm.org/D89384

view details

Georgii Rymar

commit sha 5a8ac3cc63d22acbe9ce872b3c84911f02a39bf4

[yaml2obj] - Fix comments. NFC. This addressed post commit comments for D89391.

view details

Kazushi (Jam) Marukawa

commit sha fb2bb6fad4d477f5be5f110a640508e5ccde8089

[VE] Add cast to/from fp128 patterns Add cast to/from fp128 patterns. Clean other cast patterns too. Update a regression test by adding missing tests. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89682

view details

Kazushi (Jam) Marukawa

commit sha 6bb60d3e26808bd9189d94ee4abeb768263ca269

[VE] Add setcc for fp128 Add setcc for fp128 and clean existing ISel patterns. Also add a regression test. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89683

view details

Hans Wennborg

commit sha a7acee89d68473183cc5021d952a56cdf0ae27d3

Fix compiler-rt build on Windows after D89640 It moved the cmake code from the else-branch to the if-branch but forgot to flip the condition.

view details

Luís Marques

commit sha 7ddd354d47cc2f41a072e116b879c6bdf32a1578

[RISCV][ASAN] Fix TLS offsets Fix a RISC-V ASan test failure: `TestCases/Linux/static_tls.cpp`. Differential Revision: https://reviews.llvm.org/D89244

view details

Simon Pilgrim

commit sha aba7275bb31f5eb824dcabbd869f71f26c681e26

[InstCombine] Add (icmp ne A, 0) | (icmp ne B, 0) --> (icmp ne (A|B), 0) tests

view details

Piotr Sobczak

commit sha c872faf6e0913d05ead41975d72eeb9fc085ce2b

[AMDGPU] Do not generate S_CMP_LG_U64 on gfx7 S_CMP_LG_U64 was added in gfx8 and is guarded by hasScalarCompareEq64(). Rewrite S_CMP_LG_U64 to S_OR_B32 + S_CMP_LG_U32 for targets that do not support 64-bit scalar compare. Differential Revision: https://reviews.llvm.org/D89536

view details

Sam McCall

commit sha 375f7a416031b3a011a5a88ba5f80f5879d775ca

[ADT] Avoid use of result_of_t in function_ref It has bugs on some old libc++ versions and we don't need the power. See https://reviews.llvm.org/D88977

view details

David Carlier

commit sha 13e22961f8b45fb76e6d60c0f987a07009815f02

[clang] update of the DragonFlyBSD's driver for the 5.8.x releases Reviewers: sepavloff, jyknight Reviewed By: sepavloff Differential Revision: https://reviews.llvm.org/D89690

view details

Paul C. Anagnostopoulos

commit sha dc5d6632b0c25cc5c057325c517f28575452d602

[TableGen] Enhance !empty and !size to handle strings and DAGs. Fix bug in the type checking for !empty, !head, !size, !tail.

view details

Simon Pilgrim

commit sha 3ad9361254d3ed2ce8c02096102df6d1d4f1d0d6

[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) vector tests

view details

Simon Pilgrim

commit sha 1d90e530442477de247dcb613f5176fe7e9beded

[InstCombine] foldOrOfICmps - pull out repeated getOperand() calls. NFCI.

view details

Simon Pilgrim

commit sha a704d8238c86bac524f14adb6b04e0908a324e15

[InstCombine] Add or((icmp ult/ule (A + C1), C3), (icmp ult/ule (A + C2), C3)) uniform vector support

view details

Kadir Cetinkaya

commit sha 40749141030b8172b8490ebbdcd0d3440cbe041b

[clangd] Rename edge name for filesymbols to slabs in memorytree This was causing duplicate `symbols` components on the path as both the edge from an index to filesymbols and filesymbols to symbolslabs were named symbols. Differential Revision: https://reviews.llvm.org/D89685

view details

Nathan James

commit sha 866dc09784495bd2c204945144cd31cd8e653f0e

[clang-tidy] Better support for Override function in RenamerClangTidy based checks Methods that override virtual methods will now get renamed if the initial virtual method has a name violation. Addresses https://bugs.llvm.org/show_bug.cgi?id=34879 Reviewed By: alexfh Differential Revision: https://reviews.llvm.org/D79674

view details

Simon Pilgrim

commit sha ecd25086d142a0a07bb774c54ba51b042a47c31c

[InstCombine] Add (icmp eq B, 0) | (icmp ult/gt A, B) -> (icmp ule A, B-1) vector support

view details

push time in 9 hours

push eventdavezarzycki/swift

Erik Eckstein

commit sha 007351223eb96a1a0132953a219b12d9b06ec0e7

MemBehavior: handle begin_access when checking for apply side-effects.

view details

Erik Eckstein

commit sha 68db2e7c6ce6f2bf9cdce1add556ef69971bc6a1

TempRValueOpt: don't use collectLoads in tryOptimizeStoreIntoTemp This refactoring removes a lot of special-casing in collectLoads and also makes tryOptimizeStoreIntoTemp simpler. It's a NFC.

view details

Erik Eckstein

commit sha 673b8873ab2930c0497944411a28070877883591

TempRValueOpt: refactoring: simplify the signature of collectLoads It's sufficient to pass the operand instead of the operand, the user and the operand value. NFC.

view details

Erik Eckstein

commit sha d569031f1a367281871ba18c92f385ffa0cafa7d

TempRValueOpt: move the mayWrite-check for applies from collectLoads to checkNoSourceModification ... where it belongs. This is mostly refactoring, but it also fixes a bug: we don't recurse into a begin_access in collectLoads. If there is an apply in such a scope, the mayWrite-check wouldn't be done. In checkNoSourceModification all instructions are visited, so the check is always done.

view details

Erik Eckstein

commit sha 7c293d8de960045fbe2d1717aa21481d801cd036

TempRValueOpt: fix the handling of begin_access Consider the related end_access instructions as uses to correctly mark the end of the lifetime of the temporary. This fixes a miscompile in case there is a modification of the copy-source between an begin_access and end_access.

view details

Erik Eckstein

commit sha 6310dfcc939d88664d1fb63a908f1139e9cf6b47

TempRValueOpt: fix the handling of load [take] load [take] was not considered as a use and it was not detected if it's in a different basic block. This fixes a miscompile in case there is a modification of the copy-source before a load [take]. rdar://problem/69757314

view details

Erik Eckstein

commit sha 9a10ec7d581345cbfcd15990c54848ca1b25dc8c

SILBuilder: add an API to insert _after_ an instruction. ... and use that API in FullApplySite::insertAfterInvocation. Also change FullApplySite::insertAfterInvocation/insertAfterFullEvaluation to directly pass a SILBuilder instead of just an insertion point to the callback. This makes more sense (given the function names) and simplifies the usages. It's a NFC.

view details

Erik Eckstein

commit sha 4557f151b1e90b874f77736bdf4ab20df8affe69

TempRValueOpt: fix the placement of destroy_addr in case of a copy_addr [take] Instead of reusing the existing destroy_addr (or load/copy_addr [take]) of the temporary, insert a new destroy_addr - at the correct location. This fixes a memory lifetime failure in case the copy-source is modified (actually: re-initialized) after the last use of the temporary: E.g. (before copy elimination): copy_addr [take] %src to [initialization] %temp %x = load %temp // last use of %temp store %y to [init] %src destroy_addr %temp The correct location for the destroy_addr is after the last use (after copy elimination): %x = load %src destroy_addr %src store %y to [init] %src rdar://problem/69757314

view details

Erik Eckstein

commit sha 262c7b251f9d650231a394bedcd5d12ca527cc92

TempRValueOpt: don't allow copy_addr [take] from a projection of the temporary. This fixes a memory lifetime failure.

view details

Erik Eckstein

commit sha 1e5f3bd253f0fbfab7f39f176f321b3dce94d11b

TempRValueOpt: only do the check for "unusual" temp object destruction in non-OSSA mode. In OSSA, memory locations are always destroyed in a "visible" way, e.g. with destroy_addr or load [take].

view details

3405691582

commit sha f4b71b5077cd838ffe7caa8c1ae57653f033b766

[build] OpenBSD can install XCTest.

view details

Egor Zhdan

commit sha e893ecfaf0a3ec463994fa2f1cf46ef75177a95c

WinSDK: extract System.MCX submodule Currently this header gets included into `WinSDK.WinSock2` via `windows.h`

view details

Robert Widmann

commit sha f730ff1d54a874a68c8e04690d651e0f2544fe0b

Disregard Overridden Candidates in Infinite Recursion Check Disregard candidates that have known override points because those points are possible targets for dynamic dispatch. This removes a class of false positives involving classes with known override points in the module, as is this case in many node-based data structures. rdar://70410948

view details

Robert Widmann

commit sha baa45a1167023841b03ffebca9db58b67d9c80e2

[Gardening] Pull Out Callee Variable

view details

Saleem Abdulrasool

commit sha a757d7bd5c5e4e21cb861d911ab8d034041a243d

Merge pull request #34344 from egorzhdan/winsdk WinSDK: extract System.MCX submodule

view details

Robert Widmann

commit sha 789ada59f316f842d525980970b23c91b64b3f48

Merge pull request #34346 from CodaFi/override-overdrive Disregard Overridden Candidates in Infinite Recursion Check

view details

Mishal Shah

commit sha 21f4cf6a9c77a7999b91745b1ffedfd640c86c21

[XFAIL] Disable validation-test/stdlib/CommandLine.swift (70423908)

view details

swift-ci

commit sha cac4dd6ec5058025cbce497cef07f5fd5104c195

Merge pull request #34341 from 3405691582/OpenBSDCanInstallXCTest

view details

Mishal Shah

commit sha 9d5da03b0de0c66f93ad238a087430fe1813602f

Merge pull request #34348 from apple/shahmishal/xfail-stdlib-commandline-test [XFAIL] Disable validation-test/stdlib/CommandLine.swift (70423908)

view details

eeckstein

commit sha f55e65177f0e830a9d94d76f5b82e2273a0b7914

Merge pull request #34308 from eeckstein/fix-temp-rvalue-opt Fix several correctness issues in TempRValueOpt

view details

push time in a day

push eventdavezarzycki/llvm-project

Pedro Tammela

commit sha 60b19424bb2aebb9b4843e760e165129edcebaf7

[NFC] fix some typos in LoopUnrollPass This patch fixes a couple of typos in the LoopUnrollPass.cpp comments Differential Revision: https://reviews.llvm.org/D89603

view details

Nikita Popov

commit sha 50cc9a0e6124f6177633b9e5edcee25860cfa094

[MemCpyOpt] Extract common function for unwinding check These two cases should be using the same logic. Not NFC, as this resolves the TODO regarding use of the underlying object.

view details

Luís Marques

commit sha b7ff218f1c0443aca4cd621ff01e44428b88e85f

[RISCV][ASAN] Fix passing XFAIL tests These tests pass for RV64 Linux, but they are marked as XFAIL. This patch fixes that. Differential Revision: https://reviews.llvm.org/D89299

view details

Mircea Trofin

commit sha 57d3e9cd9bca9d71699abc9fb81862e2d80533dd

[NFC][ML] Avoid source of some signed/unsigned warnings in TFUtilsTest

view details

Sanjay Patel

commit sha 53e92b4c0efc95c8d9471f44829c86b6c9240ef4

[InstCombine] (~A & B) ^ A -> A | B Differential Revision: https://reviews.llvm.org/D86395

view details

Sylvestre Ledru

commit sha b9e789447f14c0330edd22c82746af29e7c3b259

Revert "[clang-format] Fix AlignConsecutive on PP blocks" This reverts commit b2eb439317576ce718193763c12bff9fccdfc166. Caused the regression: https://bugs.llvm.org/show_bug.cgi?id=47589 Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D89464

view details

Roman Lebedev

commit sha bd6d41f52e5655af3db28095c7574bae6b0cd788

[NFC][SCEV] Add some more ptrtoint/PR46786 -related tests

view details

Roman Lebedev

commit sha be1678bdb9d46ad7a1076dd10a773c4b457c072d

[NFC][SCEV] Add 'getMinusOne()' method

view details

Roman Lebedev

commit sha 130cc662b5d313db69b136d880ebe44e58b25418

[NFC][SCEV] Refactor getAbsExpr() out of createSCEV()

view details

Roman Lebedev

commit sha ec54867df5e7f20e12146e628af34f0384308bcb

[SCEV] Model `ashr exact x, C` as `(abs(x) EXACT/u (1<<C)) * signum(x)` It's not pretty, but probably better than modelling it as an opaque SCEVUnknown, i guess. It is relevant e.g. for the loop that was brought up in https://bugs.llvm.org/show_bug.cgi?id=46786#c26 as an example of what we'd be able to better analyze once SCEV handles `ptrtoint` (D89456). But as it is evident, even if we deal with `ptrtoint` there, we also fail to model such an `ashr`. Also, modeling of mul-of-exact-shr/div could use improvement. As per alive2: https://alive2.llvm.org/ce/z/tnfZKd ``` define i8 @src(i8 %0) { %2 = ashr exact i8 %0, 4 ret i8 %2 } declare i8 @llvm.abs(i8, i1) declare i8 @llvm.smin(i8, i8) declare i8 @llvm.smax(i8, i8) define i8 @tgt(i8 %x) { %abs_x = call i8 @llvm.abs(i8 %x, i1 false) %div = udiv exact i8 %abs_x, 16 %t0 = call i8 @llvm.smax(i8 %x, i8 -1) %t1 = call i8 @llvm.smin(i8 %t0, i8 1) %r = mul nsw i8 %div, %t1 ret i8 %r } ``` Transformation seems to be correct!

view details

Dávid Bolvanský

commit sha b77dd32a6fcc53908aaffc065d4d5b05026ddda7

[InferAttrs] Add argmemonly attribute to string libcalls Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89602

view details

Dávid Bolvanský

commit sha 2a75e956e5ce7ea212333a86fe65fc68185cbf48

Revert "[InferAttrs] Add argmemonly attribute to string libcalls" This reverts commit b77dd32a6fcc53908aaffc065d4d5b05026ddda7. Sanitizer tests are broken.

view details

Nikita Popov

commit sha 3c6fe0fc775781333eed591bf9e67e7c14810aa0

[BasicAA] Fix stale comment (NFC) DataLayout is always around...

view details

Nikita Popov

commit sha 9d2b8300b768715bb3e0e151de37136f29b29590

[BasicAA] Avoid alias query if result cannot be used (NFCI) Rather then querying first and then checking additional conditions, check the conditions first. They are much cheaper than the alias query.

view details

Dávid Bolvanský

commit sha 65e94cc946b0109bc4e1150a9a46d104317cc940

[InferAttrs] Add argmemonly attribute to string libcalls Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89602

view details

Dávid Bolvanský

commit sha 0334fa091a910778c0148918f19ba2da2d986534

[Tests] Added tests for D88328

view details

Craig Topper

commit sha 5d69eecc533817d19e62434f36409e0ff8df3d8a

[X86] Mark the Key Locker instructions as NotMemoryFoldable to make the X86FoldTablesEmitter not crash. loadiwkey and aesenc128kl share the same opcode but one is memory and one is register. But they're behavior is quite different. We were crashing because one has an output register and one doesn't and the backend couldn't account for that. But since they aren't foldable we can just add NotMemoryFoldable so they won't be looked at.

view details

Fangrui Song

commit sha 98797a5fc06c1e4885acf513d9254f285aeceeb8

[PrologEpilogInserter][test] Improve SpilledToReg test D39386 made CalleeSavedInfo possible to spill a register to another register (vector register for POWER9) but did not actually test live-in.

view details

Craig Topper

commit sha 8f7b6a904fab1a0490c6b7cdf182d219f90c5cd4

[X86] Remove unnecessary defaulted argument from function in X86FoldTablesEmitter.cpp. NFC Nothing ever calls it with anything other than the default value. So just delete it and the code that handled the non-default value.

view details

Fangrui Song

commit sha e7813a930a2c0c3a196cc145f1b4df80b4238fd8

Delete unneeded X86RegisterInfo::hasReservedSpillSlot. NFC Only PowerPC and RISCV need to override it.

view details

push time in a day

push eventdavezarzycki/llvm-project

Dave Lee

commit sha 5564ee495bddeb12d3a9a617631cfa478cf67959

Revert "Register TargetCXXABI.def as a textual header" Unbreak module builds. TargetCXXABI.def has been removed in a revert: 79829a47040512fe54001db839ac59146ca55aec. This reverts commit 0ff9116b36781d6fa61c25841edd53dc8f366bec.

view details

Dave Lee

commit sha ae4fe1984f0e47259b5e476a73749185cc24e1ac

[lldb] Enable cmake policy CMP0077 for option() In lldb, explicitly set the "option() honors normal variables" CMake policy. This applies for standalone lldb builds and matches what llvm, clang, etc do. This prevents potentially unwanted clearing of variables like `LLVM_ENABLE_WARNINGS`, and also prevents unnecessary build warnings. See: https://cmake.org/cmake/help/latest/policy/CMP0077.html Differential Revision: https://reviews.llvm.org/D89614

view details

David Green

commit sha d79ee3a807115f8b96f9f8aa13d99cdea1652980

[ARM] Add a very basic active_lane_mask cost This adds a very basic cost for active_lane_mask under MVE - making the assumption that they will be free and then apologizing for that in a comment. In reality they may either be free (by being nicely folded into a tail predicated loop), cost the same as a VCTP or be expanded into vdup's, adds and cmp's. It is difficult to detect the difference from a single getIntrinsicInstrCost call, so makes the assumption that the vectorizer is adding them, and only added them where it makes sense. We may need to change this in the future to better model predicate costs in the vectorizer, especially at -Os or non-tail predicated loops. The vectorizer currently does not query the cost of these instructions but that will change in the future and a zero cost there probably makes the most sense at the moment. Differential Revision: https://reviews.llvm.org/D88989

view details

David Green

commit sha b93d74ac9c4e304db6fbc434992c098104ba94a5

[ARM] Basic getArithmeticReductionCost reduction costs This adds some basic costs for MVE reductions - currently just costing the simple legal add vectors as a single MVE instruction. More complex costing can be added in the future when the framework more readily allows it. Differential Revision: https://reviews.llvm.org/D88980

view details

Pedro Tammela

commit sha 60b19424bb2aebb9b4843e760e165129edcebaf7

[NFC] fix some typos in LoopUnrollPass This patch fixes a couple of typos in the LoopUnrollPass.cpp comments Differential Revision: https://reviews.llvm.org/D89603

view details

Nikita Popov

commit sha 50cc9a0e6124f6177633b9e5edcee25860cfa094

[MemCpyOpt] Extract common function for unwinding check These two cases should be using the same logic. Not NFC, as this resolves the TODO regarding use of the underlying object.

view details

Luís Marques

commit sha b7ff218f1c0443aca4cd621ff01e44428b88e85f

[RISCV][ASAN] Fix passing XFAIL tests These tests pass for RV64 Linux, but they are marked as XFAIL. This patch fixes that. Differential Revision: https://reviews.llvm.org/D89299

view details

Mircea Trofin

commit sha 57d3e9cd9bca9d71699abc9fb81862e2d80533dd

[NFC][ML] Avoid source of some signed/unsigned warnings in TFUtilsTest

view details

Sanjay Patel

commit sha 53e92b4c0efc95c8d9471f44829c86b6c9240ef4

[InstCombine] (~A & B) ^ A -> A | B Differential Revision: https://reviews.llvm.org/D86395

view details

Sylvestre Ledru

commit sha b9e789447f14c0330edd22c82746af29e7c3b259

Revert "[clang-format] Fix AlignConsecutive on PP blocks" This reverts commit b2eb439317576ce718193763c12bff9fccdfc166. Caused the regression: https://bugs.llvm.org/show_bug.cgi?id=47589 Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D89464

view details

Roman Lebedev

commit sha bd6d41f52e5655af3db28095c7574bae6b0cd788

[NFC][SCEV] Add some more ptrtoint/PR46786 -related tests

view details

Roman Lebedev

commit sha be1678bdb9d46ad7a1076dd10a773c4b457c072d

[NFC][SCEV] Add 'getMinusOne()' method

view details

Roman Lebedev

commit sha 130cc662b5d313db69b136d880ebe44e58b25418

[NFC][SCEV] Refactor getAbsExpr() out of createSCEV()

view details

Roman Lebedev

commit sha ec54867df5e7f20e12146e628af34f0384308bcb

[SCEV] Model `ashr exact x, C` as `(abs(x) EXACT/u (1<<C)) * signum(x)` It's not pretty, but probably better than modelling it as an opaque SCEVUnknown, i guess. It is relevant e.g. for the loop that was brought up in https://bugs.llvm.org/show_bug.cgi?id=46786#c26 as an example of what we'd be able to better analyze once SCEV handles `ptrtoint` (D89456). But as it is evident, even if we deal with `ptrtoint` there, we also fail to model such an `ashr`. Also, modeling of mul-of-exact-shr/div could use improvement. As per alive2: https://alive2.llvm.org/ce/z/tnfZKd ``` define i8 @src(i8 %0) { %2 = ashr exact i8 %0, 4 ret i8 %2 } declare i8 @llvm.abs(i8, i1) declare i8 @llvm.smin(i8, i8) declare i8 @llvm.smax(i8, i8) define i8 @tgt(i8 %x) { %abs_x = call i8 @llvm.abs(i8 %x, i1 false) %div = udiv exact i8 %abs_x, 16 %t0 = call i8 @llvm.smax(i8 %x, i8 -1) %t1 = call i8 @llvm.smin(i8 %t0, i8 1) %r = mul nsw i8 %div, %t1 ret i8 %r } ``` Transformation seems to be correct!

view details

Dávid Bolvanský

commit sha b77dd32a6fcc53908aaffc065d4d5b05026ddda7

[InferAttrs] Add argmemonly attribute to string libcalls Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89602

view details

Dávid Bolvanský

commit sha 2a75e956e5ce7ea212333a86fe65fc68185cbf48

Revert "[InferAttrs] Add argmemonly attribute to string libcalls" This reverts commit b77dd32a6fcc53908aaffc065d4d5b05026ddda7. Sanitizer tests are broken.

view details

Nikita Popov

commit sha 3c6fe0fc775781333eed591bf9e67e7c14810aa0

[BasicAA] Fix stale comment (NFC) DataLayout is always around...

view details

Nikita Popov

commit sha 9d2b8300b768715bb3e0e151de37136f29b29590

[BasicAA] Avoid alias query if result cannot be used (NFCI) Rather then querying first and then checking additional conditions, check the conditions first. They are much cheaper than the alias query.

view details

Dávid Bolvanský

commit sha 65e94cc946b0109bc4e1150a9a46d104317cc940

[InferAttrs] Add argmemonly attribute to string libcalls Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89602

view details

Dávid Bolvanský

commit sha 0334fa091a910778c0148918f19ba2da2d986534

[Tests] Added tests for D88328

view details

push time in a day

push eventdavezarzycki/swift

Keith Smiley

commit sha ae0c380f1b0f37e11b111a06634dd4c64e67b96c

Improve -*prefix-map help text Before: ``` -coverage-prefix-map <value> -debug-prefix-map <value> ``` After: ``` -coverage-prefix-map <prefix=replacement> -debug-prefix-map <prefix=replacement> ```

view details

Dave Lee

commit sha 52bbe11161f908d4c58cbdd2a423c68b9688b191

[build] Remove dash-dash from build-presets.ini (NFC)

view details

Arnold Schwaighofer

commit sha 96a0d0e5840045e25d2c05f02999972f804201df

Rename various IncludeUsableFromInlineAndInlineable to IncludeUsableFromInline `@inlinable` implies `@usableFromInline`. NFC intended.

view details

Xi Ge

commit sha 29093b15df24e98dda65cd51e26a7bd618a2d709

Driver: -L= belongs to the linker option group rdar://70300892

view details

Arnold Schwaighofer

commit sha a7259558238eadd1c69a234baef1b67ab45f8492

More renaming

view details

Arnold Schwaighofer

commit sha d6d921d7fafcfa67e500e6013f93ac30f6248b79

IRGen: Fix fixLifetime emission of enums rdar://70270724

view details

Arnold Schwaighofer

commit sha 1c85d201921abcedbd3a693229f597a6d015f81d

Try to appease 32bit tests

view details

Holly Borla

commit sha 1e0038c3be0f6f2fbe1ba6ccb7fa394b7320aa22

[ConstraintSystem] Remove implementation of operator designated types in the solver.

view details

Holly Borla

commit sha 4c0f49f7a6a7a642cd57aeec70e8b392f3296cf1

[ConstraintSystem] Remove selectApplyDisjunction, which was only used by the operator designated types implementation.

view details

Vedant Kumar

commit sha 7145afbd9d5683eeb54d142b0eab5ea2ba91fe32

[Demangler] Null-check a pointer before using it in arithmetic This addresses a UBSan -fsanitize=null diagnostic seen when compiling the stdlib: runtime error: applying non-zero offset 128 to null pointer

view details

Slava Pestov

commit sha 3d0e35e082c5f18da4a6eff30fe08706f26695fa

Sema: Remove a bit of dead code

view details

Slava Pestov

commit sha 94e999a1b55dd14284d96b60e1b67de7aae71dac

Sema: Pull availability checking out of resolveType() We used to diagnose references to unavailable declarations in two places: - inside Exprs, right after type checking the expression - inside TypeReprs, from resolveType() In broad terms, resolveType() is called with TypeReprs stored inside both Stmts and Decls. To handle the first case, I added a new overload of diagAvailability() that takes a Stmt, to be called from typeCheckStmt(). This doesn't actually walk into any Exprs stored inside the statement; this means it only walks Patterns and such. For the second case, a new DeclAvailabilityChecker is now defined in TypeCheckAccess.cpp. It's structure is analogous to the other three walkers there: - AccessControlChecker - UsableFromInlineChecker - ExportabilityChecker The new implementation of availability checking for types introduces a lot more code than the old online logic it replaces. However, I hope to consolidate some of the code duplication among the four checkers that are defined in TypeCheckAccess.cpp, and do some other cleanups that will make the benefit of the new approach apparent.

view details

Slava Pestov

commit sha baa9d7142aa1e24f4cf07672d250307e71bc90ab

Sema: Pull conformance exportability checking out of resolveType()

view details

Slava Pestov

commit sha 2a678f29dbcfd48b7ace489937e404ff68fb8f1e

Sema: Remove TypeResolutionFlags::AllowUnavailable{,Protocol}

view details

Slava Pestov

commit sha 5b38671b1c6f7199ee8b074a9be560517bad2b7a

sil-opt: Disable parser lookup This caught some invalid SIL in a SIL parser test.

view details

John McCall

commit sha 1cc3a57e9107f0b788c382739ea845f192f1546e

Test the just-built dylibs when building unittests on Darwin

view details

John McCall

commit sha 8ac43627540483dfb8c7bd0562a37cfd59ed8388

Implement a simple library for task cancellation and status management. There are things about this that I'm far from sold on. In particular, I'm concerned that in order to implement escalation correctly, we're going to have to add a status record for the fact that the task is being executed, which means we're going to have to potentially wait to acquire the status lock; overall, that means making an extra runtime function call and doing some atomics whenever we resume or suspend a task, which is an uncomfortable amount of overhead. The testing here is pretty grossly inadequate, but I wanted to lay down the groundwork here.

view details

Erik Eckstein

commit sha 6c85f267bf5e3c63b9fb1c69b27102c6800269bf

SimplifyCFG: fix a crash caused by an unreachable CFG cycles with block arguments. When SimplifyCFG (temporarily) produces an unreachable CFG cycle, some other transformations in SimplifyCFG didn't deal with this situation correctly. Unfortunately I couldn't create a SIL test case for this bug, so I just added a swift test case. https://bugs.swift.org/browse/SR-13650 rdar://problem/69942431

view details

Slava Pestov

commit sha 52b847e9afbb3b1ea74837c75fbf3ba64781ee8d

Merge pull request #34318 from slavapestov/sil-opt-parser-lookup sil-opt: Disable parser lookup

view details

Slava Pestov

commit sha 5cebe1b8d13347786b157e03de76fd2ec760bf71

Merge pull request #34310 from slavapestov/refactor-availability-checking Sema: Pull availability checking out of resolveType()

view details

push time in 3 days

push eventdavezarzycki/llvm-project

David Blaikie

commit sha 1de0199748ef2a20cd146c100ea1b8e6726c4767

Fix llvm-symbolizer assembly-based test to require x86 and specify x86 when assembling

view details

Luqman Aden

commit sha f87c98def86be7b737799e9980af2a0b77e9bc28

Revert "[LLD] Set alignment as part of Characteristics in TLS table." Revert individual wip commits and will instead follow up with a single commit with all the changes. Makes cherry-picking easier and will contain all the right tags. This reverts commit 32a4ad3b6ce6028a371b028cf06fa5feff9534bf. This reverts commit 7fe13af676678815989a6d0ece684687953245e7. This reverts commit 51fbc1bef657bb0f5808986555ec3517a84768c4. This reverts commit f80950a8bb985c082b26534b0e157447bf803935. This reverts commit 0778cad9f325df4d7b32b22f3dba201a16a0b8fe. This reverts commit 8b70d527d7ec1c8b9e921177119a0d906ffad4f0.

view details

Luqman Aden

commit sha 6a73d6564a3c7d0757692aa93bdef5be0c8f01a5

[LLD] Set alignment as part of Characteristics in TLS table. Fixes https://bugs.llvm.org/show_bug.cgi?id=46473 LLD wasn't previously specifying any specific alignment in the TLS table's Characteristics field so the loader would just assume the default value (16 bytes). This works most of the time except if you have thread locals that want specific higher alignments (e.g. 32 as in the bug) *even* if they specify an alignment on the thread local. This change updates LLD to take the max alignment from tls section. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D88637

view details

Jason Molenda

commit sha af5504edd6815d085de8aa66efcd7150d6315a51

Increase timeout to find a dSYM in macos DownloadObjectAndSymbolFile With a large dSYM over a slow home connection, the two minute timeout would sometimes be exceeded, and we haven't seen instances of a long timeout causing people any problems, so we're bumping it up. 640 seconds ought to be enough for anyone. <rdar://problem/67759526>

view details

David Sherwood

commit sha 47f2dc7e5ff945f72264837bcad8595042c5e84f

[SVE][NFC] Replace some TypeSize comparisons in non-AArch64 Targets In most of lib/Target we know that we are not dealing with scalable types so it's perfectly fine to replace TypeSize comparison operators with their fixed width equivalents, making use of getFixedSize() and so on. Differential Revision: https://reviews.llvm.org/D89101

view details

Craig Topper

commit sha 50c9f1e11d18aa2a784a2e2f9676e7c3e356f5ad

[TargetLowering] Replace Log2_32_Ceil with Log2_32 in SimplifySetCC ctpop combine. This combine can look through (trunc (ctpop X)). When doing this it tries to make sure the trunc doesn't lose any information from the ctpop. It does this by checking that the truncated type has more bits that Log2_32_Ceil of the ctpop type. The Ceil is unnecessary and pessimizes non-power of 2 types. For example, ctpop of i256 requires 9 bits to represent the max value of 256. But ctpop of i255 only requires 8 bits to represent the max result of 255. Log2_32_Ceil of 256 and 255 both return 8 while Log2_32 returns 8 for 256 and 7 for 255 The code with popcnt enabled is a regression for this test case, but it does match what already happens with i256 truncated to i9. Since power of 2 is more likely, I don't think it should block this change. Differential Revision: https://reviews.llvm.org/D89412

view details

Georgii Rymar

commit sha 400103f3d5f1f1d3e7dd02531f9db71a049ac507

[yaml2obj/obj2yaml] - Add support of 'Size' and 'Content' keys for all sections. Many sections either do not have a support of `Size`/`Content` or support just a one of them, e.g only `Content`. `Section` is the base class for sections. This patch adds `Content` and `Size` members to it and removes similar members from derived classes. This allows to cleanup and generalize the code and adds a support of these keys for all sections (`SHT_MIPS_ABIFLAGS` is a only exception, it requires unrelated specific changes to be done). I had to update/add many tests to test the new functionality properly. Differential revision: https://reviews.llvm.org/D89039

view details

Guillaume Chatelet

commit sha c400e01c6295f45e395bdeff5e6c37bd5777aa98

[libc][NFC] Add probability distributions for memory function sizes This patch adds memory function size distributions sampled from different applications running in production. This will be used to benchmark and compare memory functions implementations. Differential Revision: https://reviews.llvm.org/D89401

view details

Georgii Rymar

commit sha d8bb30c5518054c787b4278ab5a4ab371d86defe

[yaml2obj] - Allow specifying no tags to create empty sections in few cases. Currently we have a few sections that does not support specifying no keys for them. E.g. it is required that one of "Content", "Size" or "Entries" key is present. There is no reason to have this restriction. We can allow this and emit an empty section instead. This opens road for a simplification and generalization of the code in `validate()` that is discussed in the D89039 thread. Depends on D89039. Differential revision: https://reviews.llvm.org/D89391

view details

Tyker

commit sha 53122ce2b39f5fb52c7a5933cc4cf32aad43568f

[NFC] Correct name of profile function to Profile in APValue Capitalize the profile function of APValue such that it can be used by FoldingSetNodeID Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D88643

view details

Denis Antrushin

commit sha 8c2b69d53a3234b24003929235cd2b4de62240dd

[Statepoints] Unlimited tied operands. Current limit on amount of tied operands (15) sometimes is too low for statepoint. We may get couple dozens of gc pointer operands on statepoint. Review D87154 changed format of statepoint to list every gc pointer only once, which makes it trivial to find tiedness relation between statepoint operands: defs are mapped 1-1 to gc pointer operands passed on registers. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D87915

view details

Sebastian Neubauer

commit sha 0ff4bc38ab088e75d15c4f1b76be67a9a64e8bae

[AMDGPU] Add objdump invalid metadata testcase Checks that metadata and invalid message are printed. Differential Revision: https://reviews.llvm.org/D89375

view details

Raphael Isemann

commit sha 82ed18601dbc816e1f64407a926602f95bbeda32

[lldb] Explicitly test the template argument SB API

view details

Simon Pilgrim

commit sha d7fa9030d47fa62ad443717f4d1c8da4096a1d6c

[CodeGen][X86] Emit fshl/fshr ir intrinsics for shiftleft128/shiftright128 ms intrinsics Now that funnel shift handling is pretty good, we can use the intrinsics directly and avoid a lot of zext/trunc issues. https://godbolt.org/z/YqhnnM Differential Revision: https://reviews.llvm.org/D89405

view details

Simon Pilgrim

commit sha 196bee9648a9b6f395c524b01be22898e7c3df33

[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector tests

view details

Simon Pilgrim

commit sha fadd152317598aa71538948613ce24b094c5c7c2

[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support Replace m_ConstantInt with m_APInt to support uniform vectors (with no undef elements) Adding non-undef support would involve some refactoring of the MaskOps struct but this might still be worth it.

view details

Jeremy Morse

commit sha c521e44defb53d38a46f39e29870c628f25d124a

[DebugInstrRef] Support recording of instruction reference substitutions Add a table recording "substitutions" between pairs of <instruction, operand> numbers, from old pairs to new pairs. Post-isel optimizations are able to record the outcome of an optimization in this way. For example, if there were a divide instruction that generated the quotient and remainder, and it were replaced by one that only generated the quotient: $rax, $rcx = DIV-AND-REMAINDER $rdx, $rsi, debug-instr-num 1 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 Became: $rax = DIV $rdx, $rsi, debug-instr-num 2 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 We could enter a substitution from <1, 0> to <2, 0>, and no substitution for <1, 1> as it's no longer generated. This approach means that if an instruction or value is deleted once we've left SSA form, all variables that used the value implicitly become "optimized out", something that isn't true of the current DBG_VALUE approach. Differential Revision: https://reviews.llvm.org/D85749

view details

Adrian Kuegel

commit sha ead2aa7098cfd693ed1842a88346ba67cfccd7df

Fix unused variable warning when compiling with asserts disabled. Differential Revision: https://reviews.llvm.org/D89454

view details

Serge Guelton

commit sha 50df5f24dc333e912f6eb8500ef84e648d43af93

[flang] Fix build with BUILD_SHARED_LIBS=ON and FLANG_BUILD_NEW_DRIVER=ON As usual, it's difficult to handle all different configuration in the first row, but this one has been extensively tested Differential Revision: https://reviews.llvm.org/D89452

view details

Andrew Ng

commit sha 88ce27c39c5e42d8a85ac1144d2ae0fae68e8853

[LLD][ELF] Improve ICF for relocations to ineligible sections via "aliases" ICF was not able to merge equivalent sections because of relocations to sections ineligible for ICF that use alternative symbols, e.g. symbol aliases or section relative relocations. Merging in this scenario has been enabled by giving the sections that are ineligible for ICF a unique ID, i.e. an equivalence class of their own. This approach also provides another benefit as it improves the hashing that is used to perform the initial equivalance grouping for ICF. This is because the ICF ineligible sections can now contribute a unique value towards the hashes instead of the same value of zero. This has been seen to reduce link time with ICF by ~68% for objects compiled with -fprofile-instr-generate. In order to facilitate this use of a unique ID, the existing inconsistent approach to the setting of the InputSection eqClass in ICF has been changed so that there is a clear distinction between the eqClass values of ICF eligible sections and those of the ineligible sections that have a unique ID. This inconsistency could have caused incorrect equivalence class equality in the past, although it appears that no issues were encountered in actual use. Differential Revision: https://reviews.llvm.org/D88830

view details

push time in 3 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha 196bee9648a9b6f395c524b01be22898e7c3df33

[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector tests

view details

Simon Pilgrim

commit sha fadd152317598aa71538948613ce24b094c5c7c2

[AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support Replace m_ConstantInt with m_APInt to support uniform vectors (with no undef elements) Adding non-undef support would involve some refactoring of the MaskOps struct but this might still be worth it.

view details

Jeremy Morse

commit sha c521e44defb53d38a46f39e29870c628f25d124a

[DebugInstrRef] Support recording of instruction reference substitutions Add a table recording "substitutions" between pairs of <instruction, operand> numbers, from old pairs to new pairs. Post-isel optimizations are able to record the outcome of an optimization in this way. For example, if there were a divide instruction that generated the quotient and remainder, and it were replaced by one that only generated the quotient: $rax, $rcx = DIV-AND-REMAINDER $rdx, $rsi, debug-instr-num 1 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 Became: $rax = DIV $rdx, $rsi, debug-instr-num 2 DBG_INSTR_REF 1, 0 DBG_INSTR_REF 1, 1 We could enter a substitution from <1, 0> to <2, 0>, and no substitution for <1, 1> as it's no longer generated. This approach means that if an instruction or value is deleted once we've left SSA form, all variables that used the value implicitly become "optimized out", something that isn't true of the current DBG_VALUE approach. Differential Revision: https://reviews.llvm.org/D85749

view details

Adrian Kuegel

commit sha ead2aa7098cfd693ed1842a88346ba67cfccd7df

Fix unused variable warning when compiling with asserts disabled. Differential Revision: https://reviews.llvm.org/D89454

view details

Serge Guelton

commit sha 50df5f24dc333e912f6eb8500ef84e648d43af93

[flang] Fix build with BUILD_SHARED_LIBS=ON and FLANG_BUILD_NEW_DRIVER=ON As usual, it's difficult to handle all different configuration in the first row, but this one has been extensively tested Differential Revision: https://reviews.llvm.org/D89452

view details

Andrew Ng

commit sha 88ce27c39c5e42d8a85ac1144d2ae0fae68e8853

[LLD][ELF] Improve ICF for relocations to ineligible sections via "aliases" ICF was not able to merge equivalent sections because of relocations to sections ineligible for ICF that use alternative symbols, e.g. symbol aliases or section relative relocations. Merging in this scenario has been enabled by giving the sections that are ineligible for ICF a unique ID, i.e. an equivalence class of their own. This approach also provides another benefit as it improves the hashing that is used to perform the initial equivalance grouping for ICF. This is because the ICF ineligible sections can now contribute a unique value towards the hashes instead of the same value of zero. This has been seen to reduce link time with ICF by ~68% for objects compiled with -fprofile-instr-generate. In order to facilitate this use of a unique ID, the existing inconsistent approach to the setting of the InputSection eqClass in ICF has been changed so that there is a clear distinction between the eqClass values of ICF eligible sections and those of the ineligible sections that have a unique ID. This inconsistency could have caused incorrect equivalence class equality in the past, although it appears that no issues were encountered in actual use. Differential Revision: https://reviews.llvm.org/D88830

view details

Denis Antrushin

commit sha 8f0ddd4a1a0d2e7b8004d8c3283bddf1a2e27a18

[Statepoints] Remove MI limit on number of tied operands. After D87915 statepoint can have more than 15 tied operands. Remove this restriction from statepoint lowering code.

view details

Caroline Concatto

commit sha 145e44bb18853bc9beeac0e64fffd9e6895e71f9

[SVE]Fix implicit TypeSize casts in EmitCheckValue Using TypeSize::getFixedSize() instead of relying upon the implicit TypeSize->uint64_cast as the type is always fixed width. Differential Revision: https://reviews.llvm.org/D89313

view details

Carl Ritson

commit sha b70cb5020416413bf5fbfe8111891912153f3034

[AMDGPU] Minimize number of s_mov generated by copyPhysReg Generate the minimal set of s_mov instructions required when expanding a SGPR copy operation in copyPhysReg. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D89187

view details

Simon Pilgrim

commit sha 09be7623e4e8e81f559b1c2dc74b0b3332261491

[InstCombine] visitXor - refactor ((X^C1)>>C2)^C3 -> (X>>C2)^((C1>>C2)^C3) fold. NFCI. This is still ConstantInt-only (scalar) but is refactored to use PatternMatch to make adding vector support in the future relatively trivial.

view details

Matt Arsenault

commit sha 663f16684d1a5f129874b7be9e1f486682977bfa

AMDGPU: Fix verifier error on killed spill of partially undef register This does unfortunately end up with extra waitcnts getting inserted that were avoided before. Ideally we would avoid the spills of these undef components in the first place.

view details

Jeremy Morse

commit sha 5e656ee48bccc73f1328db1770770acaec90a7c9

Add "not" to an llvm-symbolizer test that expects to fail In a7b209a6d40d77b, llvm-symbolizer was adjusted to return a failure status code when it produced an error, to flag up DWARF parsing problems. The test for missing PDB file is analogous, and returns a failure status now too. This should fix the llvm-clang-win-x-armv7l buildbot croaking: http://lab.llvm.org:8011/#/builders/60/builds/77

view details

Paul C. Anagnostopoulos

commit sha 81cec3943ab695c344900c1bcdeeda264ee41a30

[RISCV] [TableGen] Modify RISCVCompressInstEmitter.cpp to use getAllDerivedDefinitions().

view details

Paul C. Anagnostopoulos

commit sha 4767bb2c0c746eaf146927c8bcb0528bd36c7b8f

[TableGen] Add the !not and !xor operators. Update the TableGen Programmer's Reference.

view details

JonChesterfield

commit sha c66e091023b87b23459ed67158fd566ebc1f8a13

[NFC] Fix license header from D87841

view details

Stephan Herhut

commit sha 307124535f326d75725ecf6d3f4e9e0321162e9a

[mlir][standard] Fix parsing of scalar subview and canonicalize Parsing of a scalar subview did not create the required static_offsets attribute. This also adds support for folding scalar subviews away. Differential Revision: https://reviews.llvm.org/D89467

view details

JonChesterfield

commit sha 7d2ecef5ed11698ae106bfbf295c44d761c7f946

[openmp][libomptarget] Include header from LLVM source tree [openmp][libomptarget] Include header from LLVM source tree The change is to the amdgpu plugin so is unlikely to break anything. The point of contention is whether libomptarget can depend on LLVM. A community discussion was cautiously not opposed yesterday. This introduces a compile time dependency on the LLVM source tree, in this case expressed as skipping the building of the plugin if LLVM_MAIN_INCLUDE_DIR is not set. One the source files will #include llvm/Frontend/OpenMP/OMPGridValues.h, instead of copy&pasting the numbers across. For users that download the monorepo, the llvm tree is already on disk. This will inconvenience users who download only the openmp source as a tar, as they would now also have to download (at least a file or two) from the llvm source, if they want to build the parts of the openmp project that (post this patch) depend on llvm. There was interest expressed in going further - using llvm tools as part of building libomp, or linking against llvm libraries. That seems less clear cut an improvement and worthy of further discussion. This patch seeks only to change policy to support openmp depending on the llvm source tree. Including in the other direction, or using libraries / tools etc, are purposefully out of scope. Reviewers are a best guess at interested parties, please feel free to add others Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D87841

view details

Simon Pilgrim

commit sha 2b45639ea0f3fcafbc647874e0902c5798903afa

[InstCombine] InstCombineAndOrXor - refactor cast<ConstantInt> usages to PatternMatch. NFCI. First step towards replacing these to add full vector support.

view details

Simon Pilgrim

commit sha b3330ae42c73b204f6809b808308ee90a75bc921

[InstCombine] SimplifyDemandedUseBits - xor - refactor cast<ConstantInt> usage to PatternMatch. NFCI. First step towards replacing these to add full vector support.

view details

Simon Pilgrim

commit sha 23f161662645d145a6f4621150ab5a43762f6972

[InstCombine] Use m_SpecificInt instead of m_APInt + comparison. NFCI.

view details

push time in 3 days

issue commentcli/cli

gh "base repository" not worktree specific

I'd just formalize the workaround listed above: if the local branch has an upstream/tracking branch, then extract the "remote" of the upstream branch and use that as the GitHub "base".

This approach implicitly works with git worktrees.

davezarzycki

comment created time in 4 days

push eventdavezarzycki/swift

Dave Lee

commit sha 27330f169df5d2dcb018ab2c6615d66be91d04e2

[build] Remove unused lldb cmake

view details

Doug Gregor

commit sha f089ba9464fc164f6dc4ce01dafb1ec2f545912c

[Concurrency] Propagation of actor constraints. Implement propagation rules for global actor constraints, which can come from: * Enclosing extension or type * Superclass of a class * Overridden declaration * Requirement witnessed by a declaration * Storage declaration for an accessor

view details

Dave Lee

commit sha b02dc2b25bc2c9c258370265c54d744c178a101c

LLDB_PATH_TO_SWIFT_SOURCE too

view details

Doug Gregor

commit sha 2f7ff6aa398dfe65f09fb2e44bc5969fdebbc11b

[Concurrency] Allow ActorIsolation in diagnostic messages. ActorIsolation is rendered as a descriptive phrase before an entity, e.g, "actor-independent" or "global actor 'UIActor'-isolated" when used in diagnostics.

view details

Doug Gregor

commit sha 18fd4be17a6a4307e46eeeae5d5220e3b9179c23

[Concurrency] Check actor isolation consistency for overrides & subclasses. Both overriding declarations and subclasses must have the actor isolation as their overridden declarations or superclasses, respectively. Enforce this, ensuring that we're also doing the appropriate substitutions.

view details

Doug Gregor

commit sha 11cf3ceffe20ea7d32678c5d83347735cea94341

[Concurrency] Eliminate actor isolation checking for subclasses. Subclasses inherit the global actor from their superclass by default, but it's okay to change it---it's just a default that can be overridden on a per-member basis anyway.

view details

Doug Gregor

commit sha a5b15ed6309ce9c893204bec9ba8e9a2d19d9b66

[Concurrency] Substitute into superclass global actors when inheriting them.

view details

Doug Gregor

commit sha 3a651a61b7868c6b13a0cb90eaf1a5be92762a7c

[Concurrency] Fix circular reference on isolation propagation.

view details

Doug Gregor

commit sha db8402f998117b65a74ef34df16717526f0b6a36

Merge pull request #34301 from DougGregor/concurrency-actor-constraint-inference [Concurrency] Propagation and consistency checking for actor constraints.

view details

Zoe Carver

commit sha 722cc755f8ee5bd74eb8f6c4e7f0a6514838fd50

[cxx-interop] Cast data to the correct type. (#34266) The implicit conversions are OK in C but C++ will error. To make this header valid in both C and C++ we should just always cast.

view details

Doug Gregor

commit sha 21a0696e165747248ac5f4532feeb942e13e326b

[Concurrency] Clean up inference logic for @asyncHandler.

view details

Doug Gregor

commit sha dee5356021f49ea31954e3ecc2170d285d47804c

[Concurrency] Add inferred actor-isolation attributes. When we infer an actor-isolation attribute on a declaration, add an implicit attribute that will show up in the printed interface and get serialized. ... and clean up the type resolution logic for global actor attributes to make it use CustomAttrTypeRequest, so the result gets appropriately cached in CustomAttr for serialization.

view details

Doug Gregor

commit sha 4032cd8e7d4857dad9e07782212e30848580ca56

Rename CustomAttrTypeKind::PropertyDelegate to PropertyWrapper.

view details

Alexis Laferrière

commit sha e509d6883a068334df96f34ade141d8c38dfd1f0

Revert "[Sema] Fix availability checking in inlinable code"

view details

Dave Lee

commit sha 804459df815793cc3781addd3f14b0ee1a983abf

Merge pull request #34212 from apple/build-Remove-unused-lldb-cmake [build] Remove unused lldb cmake

view details

Robert Widmann

commit sha 6125d25cb4f5059f455b3c6f4bde70f6aa79f59e

[NFC] Silence Non-Exhaustive Switch Warnings on Windows

view details

Robert Widmann

commit sha 9c879c008e642278b2bce557db19b78ca391caad

Resolve Virtual Inheritance By Dominance By Being Explicit Since the alternative is name lookup selecting members from a pure virtual base, it's probably best to be explicit here.

view details

Alexis Laferrière

commit sha 0d8f689d1c50121c13980eadf7ee58917a930aef

Merge pull request #34306 from apple/revert-33855-availability-inlinable Revert "[Sema] Fix availability checking in inlinable code"

view details

Robert Widmann

commit sha ba737b563154e2e5261c57c482699d6ee8f4abf3

[NFC] Use an Explicit 64-Bit Shift

view details

Robert Widmann

commit sha 0d6a16258a1519b59644618be1ae2280476878ba

Silence a Deprecation Warning with FixedVectorType

view details

push time in 5 days

push eventdavezarzycki/llvm-project

Dominik Montada

commit sha 8c03fdf34a659925a3f09c8f54016e47ea1c7519

[libcxxabi,libunwind] support running tests in standalone mode Remove check for standalone and shared library mode in libcxxabi to allow including tests in said mode. This check prevented running the tests in standalone mode with static libraries, which is the case for baremetal targets. Fix check-unwind target trying to use a non-existent llvm-lit executable in standalone mode. Copy the HandleOutOfTreeLLVM logic from libcxxabi to libunwind in order to make the tests work in standalone mode. Reviewed By: ldionne, #libc_abi, #libc Differential Revision: https://reviews.llvm.org/D86540

view details

Luqman Aden

commit sha dc128e5968ccc632f7875ece639b0d2c94b170a6

[test][lld] Mark TLS tests as REQUIRES: x86. Fixes http://lab.llvm.org:8011/#/builders/119/builds/92

view details

Haojian Wu

commit sha 27c691cf62a9b34789516a24233fa0ee7bbd8111

[clang-rename] Simplify the code of handling class paritial specializations, NFC. Instead of collecting all specializations and doing a post-filterin, we can just get all targeted specializations from getPartialSpecializationsizations. Differential Revision: https://reviews.llvm.org/D89220

view details

sstefan1

commit sha ce16be253c4d772c072325df5776b5324c2c90c1

[Attributor][NFC] Make `createShallowWrapper()` available outside of Attributor D85703 will need to create shallow wrappers in order to track the spmd icv. We need to make it available. Differential Revision: https://reviews.llvm.org/D89342

view details

Raphael Isemann

commit sha cb81e662a58908913f342520e4c010564a68126a

[lldb] Reject redefinitions of persistent variables Currently one can redefine a persistent variable and LLDB will just silently ignore the second definition: ``` (lldb) expr int $i = 1 (lldb) expr int $i = 2 (lldb) expr $i (int) $i = 1 ``` This patch makes this an error and rejects the expression with the second definition. A nice follow up would be to refactor LLDB's persistent variables to not just be a pair of type and name, but also contain some way to obtain the original declaration and source code that declared the variable. That way we could actually make a full diagnostic as we would get from redefining a variable twice in the same expression. Reviewed By: labath, shafik, JDevlieghere Differential Revision: https://reviews.llvm.org/D89310

view details

Aden Grue

commit sha 2b60291285b241fc19f5a4e3f2e814157e0f5984

Fix typos in the documentation of dynamic values in subview ops Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D89338

view details

David Sherwood

commit sha af57a0838eba528c2e5bd805d92c611435fca0d8

[SVE] Add fatal error when running out of registers for SVE tuple call arguments When passing SVE types as arguments to function calls we can run out of hardware SVE registers. This is normally fine, since we switch to an indirect mode where we pass a pointer to a SVE stack object in a GPR. However, if we switch over part-way through processing a SVE tuple then part of it will be in registers and the other part will be on the stack. This is wrong and we'd like to avoid any silent ABI compatibility issues in future. For now, I've added a fatal error when this happens until we can get a proper fix. Differential Revision: https://reviews.llvm.org/D89326

view details

sameeran joshi

commit sha d95d3d2a42cb43fca956efe60ab5965d84b0efd5

[Flang][OpenMP] Rework parser changes for OpenMP atomic construct. `OmpStructureChecker` is supposed to work only with `parser::OmpClause` after tablegen changes for OpenMP and OpenACC were introduced. Hence `OmpMemoryOrderClause`, `OmpAtomicMemoryOrderClause` and similar ones were failing to catch semantic errors, inspite of having code for semantic checks. This patch tries to change parser for `OmpMemoryOrderClause` and similar dependent ones and use `OmpClauseList` which resides/comes from common tablegen for OpenMP/OpenACC eventually using `parser::OmpClause`. This patch also tries to : 1. Change `OmpCriticalDirective` in `openmp-parsers.cpp` to support `OmpClauseList`. 2. Check-flang regresses when changes were introduced due to missing semantic checks in OmpCritical, patch implements them at the minimal level to pass the regression. 3. Change tablegen to support Hint clause. 4. Adds missing source locations `CharBlock Source` in each atomic construct. 5. Remove dead code realted to `memory-order-clauses` after moving to `OmpClauseList`. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D88965

view details

Michał Górny

commit sha caedbc317a5a4f046c345c136387e3ca199d8503

[lldb] [test/Register] Add read/write tests for multithreaded process Add a test to verify that 'register read' and 'register write' commands work correctly in a multithreaded program, in particular that they read or write registers for the correct thread. The tests use locking to ensure that events are serialized and the test can execute reliably. Differential Revision: https://reviews.llvm.org/D89248

view details

Sjoerd Meijer

commit sha 20c7ab87a78c8d808a7d1e662d5bfd580dcdc12e

[LoopFlatten] Precommit new test cases. NFC.

view details

Eduardo Caldas

commit sha 4178f8f2f08e14abb341fb32dd0f4cc9320df072

[SyntaxTree] Improve safety of `replaceChildRangeLowLevel` * Add assertions for other preconditions. * If nothing is modified, don't mark it. Differential Revision: https://reviews.llvm.org/D89303

view details

Eduardo Caldas

commit sha 72732acade77d5ee55a818e2da77a2c5b7033ccb

[SyntaxTree] Bug fix in `MutationsImpl::addAfter`. * Add assertions to other `MutationsImpl` member functions * `findPrevious` is a free function Differential Revision: https://reviews.llvm.org/D89314

view details

Eduardo Caldas

commit sha 6fbad9bf304c05d37454420f7d5a1c2ab3adab20

[SyntaxTree][NFC] Nit on `replaceChildRangeLowLevel`

view details

Simon Pilgrim

commit sha 1e4d882f9afe3fa5d0085f056b56eec21eb2c087

[InstCombine] matchFunnelShift - add support for non-uniform vectors containing undefs. Replace m_SpecificInt with m_APIntAllowUndef to matching splats containing undefs, then use ConstantExpr::mergeUndefsWith to merge the undefs together in the result. The undef funnel shift amounts are getting replaced with zero later on - I'll address this in a later patch, otherwise we lose potential shift by splat value patterns.

view details

Evgeniy Brevnov

commit sha d0c95808e50c9f77484dacb8db0dc95b23f9f877

[LV] Unroll factor is expected to be > 0 LV fails with assertion checking that UF > 0. We already set UF to 1 if it is 0 except the case when IC > MaxInterleaveCount. The fix is to set UF to 1 for that case as well. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D87679

view details

Jeremy Morse

commit sha 2c5f3d54c5ee4efdf63736c23a3a7b448a308996

[DebugInstrRef] Parse debug instruction-references from/to MIR This patch defines the MIR format for debug instruction references: it's an integer trailing an instruction, marked out by "debug-instr-number", much like how "debug-location" identifies the DebugLoc metadata of an instruction. The instruction number is stored directly in a MachineInstr. Actually referring to an instruction comes in a later patch, but is done using one of these instruction numbers. I've added a round-trip test and two verifier checks: that we don't label meta-instructions as generating values, and that there are no duplicates. Differential Revision: https://reviews.llvm.org/D85746

view details

Vinay Madhusudan

commit sha a6ad5930d5f51a14b6828cfb4bd661c9e7e6e83e

[AArch64] Add more addv tests Differential Revision: https://reviews.llvm.org/D89365

view details

Rainer Orth

commit sha 3b956a58f3c51d49b54cfba24a5c241a68078a53

Reland "[Support][unittests] Enforce alignment in ConvertUTFTest" This relands commit 53b3873cf428fd78f1d92504cc20adf11181ead7. The failure of `ConvertUTFTest.UTF16WrappersForConvertUTF16ToUTF8String` detected the first time is fixed. Differential Revision: https://reviews.llvm.org/D88824

view details

Max Kazantsev

commit sha be8344f2a5d41650128fd046f4c8917a9a164830

[Test] Auto-update for some tests

view details

Jeremy Morse

commit sha abaa8706e9443dad12f7cf83ff4b777ebc186bb6

Add x86 REQUIRES to tests from 2c5f3d54c5ee / D85746

view details

push time in 5 days

push eventdavezarzycki/llvm-project

Eduardo Caldas

commit sha 6fbad9bf304c05d37454420f7d5a1c2ab3adab20

[SyntaxTree][NFC] Nit on `replaceChildRangeLowLevel`

view details

Simon Pilgrim

commit sha 1e4d882f9afe3fa5d0085f056b56eec21eb2c087

[InstCombine] matchFunnelShift - add support for non-uniform vectors containing undefs. Replace m_SpecificInt with m_APIntAllowUndef to matching splats containing undefs, then use ConstantExpr::mergeUndefsWith to merge the undefs together in the result. The undef funnel shift amounts are getting replaced with zero later on - I'll address this in a later patch, otherwise we lose potential shift by splat value patterns.

view details

Evgeniy Brevnov

commit sha d0c95808e50c9f77484dacb8db0dc95b23f9f877

[LV] Unroll factor is expected to be > 0 LV fails with assertion checking that UF > 0. We already set UF to 1 if it is 0 except the case when IC > MaxInterleaveCount. The fix is to set UF to 1 for that case as well. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D87679

view details

Jeremy Morse

commit sha 2c5f3d54c5ee4efdf63736c23a3a7b448a308996

[DebugInstrRef] Parse debug instruction-references from/to MIR This patch defines the MIR format for debug instruction references: it's an integer trailing an instruction, marked out by "debug-instr-number", much like how "debug-location" identifies the DebugLoc metadata of an instruction. The instruction number is stored directly in a MachineInstr. Actually referring to an instruction comes in a later patch, but is done using one of these instruction numbers. I've added a round-trip test and two verifier checks: that we don't label meta-instructions as generating values, and that there are no duplicates. Differential Revision: https://reviews.llvm.org/D85746

view details

Vinay Madhusudan

commit sha a6ad5930d5f51a14b6828cfb4bd661c9e7e6e83e

[AArch64] Add more addv tests Differential Revision: https://reviews.llvm.org/D89365

view details

Rainer Orth

commit sha 3b956a58f3c51d49b54cfba24a5c241a68078a53

Reland "[Support][unittests] Enforce alignment in ConvertUTFTest" This relands commit 53b3873cf428fd78f1d92504cc20adf11181ead7. The failure of `ConvertUTFTest.UTF16WrappersForConvertUTF16ToUTF8String` detected the first time is fixed. Differential Revision: https://reviews.llvm.org/D88824

view details

Max Kazantsev

commit sha be8344f2a5d41650128fd046f4c8917a9a164830

[Test] Auto-update for some tests

view details

Jeremy Morse

commit sha abaa8706e9443dad12f7cf83ff4b777ebc186bb6

Add x86 REQUIRES to tests from 2c5f3d54c5ee / D85746

view details

sameeran joshi

commit sha 3291041641febf73ba98f074a946fe92331de90b

[Flang][OpenMP] Fix issue in only a single nowait clause can appear on a sections directive. The OpenMP 5.0 standard restricts nowait clause to appear only once on sections directive. See OpenMP 5.0 - 2.8.1 - point 3 in restrictions. Added a test with fix. Reviewed By: DavidTruby Differential Revision: https://reviews.llvm.org/D88556

view details

Simon Pilgrim

commit sha 9b4db7f73331986768e113140e5b929b9cdcab33

[InstCombine] Add undef funnel shift amount test coverage

view details

Nicolas Vasilache

commit sha af5be38a01031ed3d9a9690c4ed881fbe781111f

[mlir][Linalg] Make a Linalg CodegenStrategy available. This revision adds a programmable codegen strategy from linalg based on staged rewrite patterns. Testing is exercised on a simple linalg.matmul op. Differential Revision: https://reviews.llvm.org/D89374

view details

Tim Northover

commit sha 630d2647986aa6d672dce184460d7ca3349eb006

Analysis: only query size of sized objects. Recently we started looking into sret parameters, though the issue could crop up elsewhere. If the pointee type is opaque, we should not try to compute its size because that leads to an assertion failure.

view details

Juneyoung Lee

commit sha 9b3c2a72e4cb3b0ae27f87064c11f728452b2af9

[ValueTracking] Use assume's noundef operand bundle This patch updates `isGuaranteedNotToBeUndefOrPoison` to use `llvm.assume`'s `noundef` operand bundle. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D89219

view details

Carl Ritson

commit sha 01549dd976faa93dcf18d7363ccf8b2509833f7c

[AMDGPU] Base getSubRegFromChannel on TableGen data Generate (at runtime) the table used to drive getSubRegFromChannel, base on AMDGPUSubRegIdxRanges from TableGen data. The is a step closer to it being staticly generated by TableGen and allows getSubRegFromChannel handle all bitwidths in the mean time. Reviewed By: rampitec, arsenm, foad Differential Revision: https://reviews.llvm.org/D89217

view details

Haojian Wu

commit sha 3fcca804b2916b68d34523e9f88c77272a256d77

[clangd] Refine recoveryAST flags in clangd so that we could start experiment for C. Previously, these flags in clangd were only meaningful for C++. We need to flip them for C, this patch repurpose these flags. - if true, just set it. - if false, just respect the value in clang. this would allow us to keep flags on for C++, and optionally flip them on for C. Differential Revision: https://reviews.llvm.org/D89233

view details

Gabor Marton

commit sha dd965711c9f0e4b6e1dc9b465fe049c38e05d5aa

[ASTImporter] Fix crash caused by unimported type of FromatAttr During the import of FormatAttrs we forgot to import the type (e.g `__scanf__`) of the attribute. This caused a segfault when we wanted to traverse the AST (e.g. by the dump() method). Differential Revision: https://reviews.llvm.org/D89319

view details

Gabor Marton

commit sha 73c6beb2f7053fe8b5150072c2b5cd930de38a22

[ASTImporter] Fix crash caused by unset AttributeSpellingListIndex During the import of attributes we forgot to set the spelling list index. This caused a segfault when we wanted to traverse the AST (e.g. by the dump() method). Differential Revision: https://reviews.llvm.org/D89318

view details

Kadir Cetinkaya

commit sha 82a71822a54d76c62bf730d8c0e8e86d68c60159

[clangd] Disable extract variable for RHS of assignments Differential Revision: https://reviews.llvm.org/D89307

view details

Serge Guelton

commit sha cde06f783ce9811ed5e6d4c9a4e803b76842eccc

[flang] Make flang build compatible with LLVM dylib Harmonize usage of LLVM components througout Flang. Explicit LLVM Libs where used across several CMakeFIles, which led to incompatibilities with LLVM shlibs. Fortunately, the LLVM component system can be relied on to harmoniously handle both cases. Differential Revision: https://reviews.llvm.org/D87893

view details

Pavel Labath

commit sha 6bb123b819c61c61197ec2ba54ceb6d16e9121cf

[lldb] Modernize PseudoTerminal::OpenFirstAvailablePrimary replace char*+length combo with llvm::Error

view details

push time in 5 days

push eventdavezarzycki/swift

Pavel Yaskevich

commit sha 9239692d00eb7a5362fe18f42dfcd9ddc687f45c

[unittests] Add a fixture for Sema unit tests

view details

Pavel Yaskevich

commit sha 0b22d91c9416e57a37829a6c471770e53f96fee2

[unittests] Extend Sema testing fixture to load stdlib (+ shims) Setup module importers, load stdlib, establish separate testing module and load a single main file there which imports standard library.

view details

Pavel Yaskevich

commit sha b2c31c394b02c0b2ae97f61e57daeeef8c770087

[unittests/Sema] Add an ability to retrieve stdlib types by name

view details

Pavel Yaskevich

commit sha dc7c9c2bfa0167180ec19f7a26029e16ef03dd60

[unittests/Sema] Add a simple integer literal type inference test

view details

Pavel Yaskevich

commit sha 6e470f5fcd55e94d5010e4621bec225314327f50

[unittest/Sema] NFC: Switch to use `AttributedImport` instead of deprecated `ImportedModuleDesc`

view details

Pavel Yaskevich

commit sha 2d6456c03e5d52372c628995f392bfc36f607a28

[ConstraintSystem] NFC: Remove obsolete `getPotentialBindings` declaration It has been related with `inferBindingsFor` but declaration was left in the header.

view details

Pavel Yaskevich

commit sha fde1af756d336cb4c22067c99fe2c83a3b026012

[unittest/Sema] Use default target triple to fix Windows build

view details

Alexis Laferrière

commit sha 8307a8d58e7ec6c5396b8e27ee4170a2f9fb844e

[Sema] Don't require availability for implicit decls Suppress warnings in synthesized code. The parent decls should already show a warning. require_explicit_availability.StructWithImplicitMembers:2:16: warning: public declarations should have an availability attribute when building with -require-explicit-availability public var hashValue: Int { get } ^

view details

Robert Widmann

commit sha d793878923e04ffddf68de3ff8bbbeff5318f1f1

Schedule merge-modules When modulewrap Job is in the Queue In order to unblock the SwiftWASM project, which relies on an incremental build of the Swift driver that relies on the merge-modules job always being run. The situation appears to be something like this: 1) An incremental build is run 2) Temporary swiftmodule outputs are laid down 3) merge-modules is skipped 4) modulewrap is run anyways and reads the empty temp file We should fix this by skipping modulewrap if we can skip merge-modules. But for now, be conservative and fall back to the status quo behavior of always running merge-modules whenever we encounter a modulewrap job.

view details

Pavel Yaskevich

commit sha 1d8f07ac7d7e183a13bd65fcb01cb53bb6201732

Merge pull request #34288 from xedin/remove-getpotentialbindings-from-cs [ConstraintSystem] NFC: Remove obsolete `getPotentialBindings` declar…

view details

Brent Royal-Gordon

commit sha a79417f48daeaa985100cafc30667a35015374b1

Tweak formatting of _Concurrency module CMakeLists.txt Helps fix rdar://66414410.

view details

Robert Widmann

commit sha 23605e1363f4b72e2cfbcc55aa8a84a8dc8e5c10

Merge pull request #34296 from CodaFi/seaweed-wrap Schedule merge-modules When modulewrap Job is in the Queue

view details

swift-ci

commit sha 2c3a6e06f4edc2ed64a638e30379bbcc83479768

Merge pull request #34298 from brentdax/a-catalyst-for-nothing

view details

Alexis Laferrière

commit sha 5d21200fdfc5b863869e6aa7aa285a3a69fd3ef2

Merge pull request #34295 from xymus/require-explicit-avail-ignore-implicit [Sema] Don't require explicit availability for implicit decls

view details

Pavel Yaskevich

commit sha 6a19d371663a4cb27975ab47c3653625862f21e5

Merge pull request #34286 from xedin/add-sema-unittest-fixture [unittests] Add a fixture for Sema unit tests

view details

push time in 6 days

push eventdavezarzycki/llvm-project

Erik Pilkington

commit sha 498c7fa48a02a5e0c12bbb90ef8c0d8468affcdd

[SemaObjC] Fix a crash on an invalid ternary with ARC pointers FindCompositeObjCPointerType nulls out the subexpressions on error, so bail out instead of trying to deref them.

view details

Richard Smith

commit sha 8f8b9f2cca0b73314342c721186ae9c860ca273c

PR47805: Use a single object for a function parameter in the caller and callee in constant evaluation. We previously made a deep copy of function parameters of class type when passing them, resulting in the destructor for the parameter applying to the original argument value, ignoring any modifications made in the function body. This also meant that the 'this' pointer of the function parameter could be observed changing between the caller and the callee. This change completely reimplements how we model function parameters during constant evaluation. We now model them roughly as if they were variables living in the caller, albeit with an artificially reduced scope that covers only the duration of the function call, instead of modeling them as temporaries in the caller that we partially "reparent" into the callee at the point of the call. This brings some minor diagnostic improvements, as well as significantly reduced stack usage during constant evaluation.

view details

Alexandre Ganea

commit sha 617d64f6c5f8fdcdacc4401704146247152b96aa

Re-land [ThinLTO] Re-order modules for optimal multi-threaded processing This reverts 9b5b3050237db3642ed7ab1bdb3ffa2202511b99 and fixes the unwanted re-ordering when generating ThinLTO indexes. The goal of this patch is to better balance thread utilization during ThinLTO in-process linking (in llvm-lto2 or in LLD). Before this patch, large modules would often be scheduled late during execution, taking a long time to complete, thus starving the thread pool. We now sort modules in descending order, based on each module's bitcode size, so that larger modules are processed first. By doing so, smaller modules have a better chance to keep the thread pool active, and thus avoid starvation when the bitcode compilation is almost complete. In our case (on dual Intel Xeon Gold 6140, Windows 10 version 2004, two-stage build), this saves 15 sec when linking `clang.exe` with LLD & -flto=thin, /opt:lldltojobs=all, no ThinLTO cache, -DLLVM_INTEGRATED_CRT_ALLOC=d:\git\rpmalloc. Before patch: 100 sec After patch: 85 sec Inspired by the work done by David Callahan in D60495. Differential Revision: https://reviews.llvm.org/D87966

view details

Kamil Rytarowski

commit sha d4b040473291c5b25bee05fae3a10ac9ad0baa99

[compiler-rt] [lldb] Mark syscall_acquire and syscall_release as USED Fixes build warnings on NetBSD.

view details

Richard Smith

commit sha 69f7c006ff72167231b569a0fd2d7955ca597ffa

Revert "PR47805: Use a single object for a function parameter in the caller and" Breaks a clangd unit test. This reverts commit 8f8b9f2cca0b73314342c721186ae9c860ca273c.

view details

Petr Hosek

commit sha b72813f4d6a0a0f1dc79afc1ca7e0e4d55ad6a72

[CMake][Fuchsia] Start building arm64 Darwin runtimes This enables arm64 Darwin support in Fuchsia toolchain.

view details

David Tenty

commit sha 19856c598289a1bd8ac09dc9f6c7a56ae606be16

[NFC][compiler-rt] Add ppc32 to the list of arch This should have been done when it was added to the symmetrical list in the builtins config-ix in D87383, but it was overlooked.

view details

Vitaly Buka

commit sha 20e78eb304c4b03666f9c1c2951be9dbef265b23

[sanitizer][NFC] Fix few cpplint warnings

view details

Stella Laurenzo

commit sha e379a68cd2e7217f38bb356131aef06572b8749f

[mlir] Remove obsolete "Quantization" section from the rationale. * It reads as more of a TODO for the future and has been long obsoleted by later work. * One of the authors of the referenced paper called this out as "weird stuff from two years ago" when reviewing the more recent TOSA RFC. Differential Revision: https://reviews.llvm.org/D89329

view details

Luqman Aden

commit sha 6b7738e204b4b24b8afeccf9937e18b1f9a0eaf7

[LLD] Add baseline test for TLS alignment. NFC. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D88646

view details

Dave Lee

commit sha 41f946a6d2a4c1b36ee0a63f615a1aa6edf37cab

[cmake] Limit missing external lit warning to be shown once When using a custom `LLVM_EXTERNAL_LIT`, it's possible the file may not exist at the CMake is generating the build. One example is LLDB standalone builds. When the external lit doesn't exist, a warning message is emitted, but the warning is printed once for every single lit target. This produces many redundant warnings. This changes the warning to only be emitted once, controlled by a CACHE variable. Other options are: 1. remove the warning 2. have callers pass an option to silence the warning if desired See https://reviews.llvm.org/D76945 for some context. Differential Revision: https://reviews.llvm.org/D89356

view details

Liu, Chen3

commit sha bd05afcb3f4093fe76dd64fe29255550bfd894ec

[X86][NFC] Fix RUN line bug in the testcase Testcase added in D78699 doesn't work because the wrong RUN line in the testcase. Differential Revision: https://reviews.llvm.org/D89361

view details

David Blaikie

commit sha 9670a45c980c371c5ece8047a00b8b2abec73823

libDebugInfoDWARF: Don't try to parse loclist[.dwo] headers when parsing debug_info[.dwo] There's no way to know whether there's a loclist contribution to parse if there's no loclistx encoding - and if there is one, there's no need to walk back from the loclist_base (or, uin the case of info.dwo/loclist.dwo - starting at 0 in the contribution) to parse the header, instead rely on the DWARF32/64 and address size in the CU that's already available. This would come up in split DWARF (non-split wouldn't try to read a loclist header in the absence of a loclist_base) when one unit had location lists and another does not (because the loclists.dwo section would be non-empty in that case - in the case where it's empty the parsing would silently skip). Simplify the testing a bit, rather than needing a whole dwp, etc - by creating a malformed loclists.dwo section (and use single file Split DWARF) that would trip up any attempt to parse it - but no attempt should be made.

view details

Arthur Eubanks

commit sha 518ec05a104a237b6ccae20e1e84c2b462fc3ca1

[LoopExtract][NewPM] Port -loop-extract to NPM -loop-extract-single is just -loop-extract on one loop. -loop-extract depended on -break-crit-edges and -loop-simplify in the legacy PM, but the NPM doesn't allow specifying pass dependencies like that, so manually add those passes to the RUN lines where necessary. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D89016

view details

Arthur Eubanks

commit sha 4b6e3ad9b40111852aa717fee2768f964b6d70a7

[test][NewPM] Pin -mergereturn tests to legacy PM Looks like this pass isn't really used and hasn't been worked on in a loooong time. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D89010

view details

Tony

commit sha 907d799070c351b3da0b0f4b9669f230d46e6d8d

[AMDGPU] Cleanup memory legalizer interfaces - Rename interfaces to be in terms of acquire and release. - Improve comments. Differential Revision: https://reviews.llvm.org/D89355

view details

Jonas Paulsson

commit sha 625fa47617022b2d1ed7b940f9621162874175ee

Revert "[clang] Improve handling of physical registers in inline assembly operands." This reverts commit c78da037783bda0f27f4d82060149166e6f0c796. Temporarily reverted due to https://bugs.llvm.org/show_bug.cgi?id=47837.

view details

Jonas Devlieghere

commit sha 1197ee35b84e1fe1c1884b3228b95351719fbb09

[lldb] Unconditionally strip the `.py(c)` extension when loading a module Currently we only strip the Python extension when the file exists on disk because we assumed that if it didn't exist it was a module. However, with the change from D89334 this is no longer the case as we want to be able to import a relative path to a .py as a module. Since we always import a scripting module as a "python module" we should always strip the extension if present. Differential revision: https://reviews.llvm.org/D89352

view details

Jonas Devlieghere

commit sha 3b33b41604784f903c7c5c38665d75da93dbf805

[lldb] Remove lexical block and fix formatting LoadScriptingModule (NFC)

view details

Evgeny Leviant

commit sha 2ad82b0ed1b4ad9e6ac462d6fe9b1247186861e5

[ARM.td] Make instruction definitions visible to sched models Differential revision: https://reviews.llvm.org/D89308

view details

push time in 6 days

push eventdavezarzycki/llvm-project

Artem Dergachev

commit sha 77bb3ebebbca13f0648beb433fbd1b06ba95a19c

Revert "[analyzer] NFC: Move path diagnostic consumer implementations to libAnalysis." This reverts commit 44b7cf2983b6a8373c99a9b254f8c3f944e03f35.

view details

Artem Dergachev

commit sha 662ed9e67adace3d011f42478bc8bcb1773a2821

Revert "[analyzer] NFC: Move IssueHash to libAnalysis." This reverts commit b76dc111dd02672488df794570d82e3edbbfa5d8.

view details

Artem Dergachev

commit sha 10f1ca99b498347186ec74b01046ad292bde9a4c

Revert "[analyzer] NFC: Separate PathDiagnosticConsumer options from AnalyzerOptions." This reverts commit fd4b3f123d6e64769881e4c6351d5bbbdac30ce3.

view details

Nikita Popov

commit sha 39c39e8a7f09ff8f0385ef9962d1075d9559d139

[MemCpyOpt] Don't shorten memset if destination observable through unwinding MemCpyOpt can shorten a memset if it is later partially overwritten by a memcpy. It checks that the destination is not read in between, but we also need to make sure that the destination cannot be observed via unwinding. Differential Revision: https://reviews.llvm.org/D89190

view details

LLVM GN Syncbot

commit sha 5f335285c16661f9bf05dd629b58545d48533501

[gn build] Port 662ed9e67ad

view details

LLVM GN Syncbot

commit sha e2c888f571680e98e0daec2b003663311035a607

[gn build] Port 77bb3ebebbc

view details

Nikita Popov

commit sha baa3b87015124798c9f0a040e76277e7e74b35b1

[MemCpyOpt] Don't shorten memset if memcpy operands may be the same If the memcpy operands are the same (which is allowed since D86815) then the memcpy is effectively a no-op and the partially overlapping memset is not dead. Differential Revision: https://reviews.llvm.org/D89192

view details

Roman Lebedev

commit sha e92a8e0c743f83552fac37ecf21e625ba3a4b11e

[SCEV] BuildConstantFromSCEV(): actually properly handle SExt-of-pointer case As being pointed out by @efriedma in https://reviews.llvm.org/rGaaafe350bb65#inline-4883 of course we can't just call ptrtoint in sign-extending case and be done with it, because it will zero-extend. I'm not sure what i was thinking there. This is very much not an NFC, however looking at the user of BuildConstantFromSCEV() i'm not sure how to actually show that it results in a different constant expression.

view details

Denis Antrushin

commit sha 1a82705c8d03121ece28c1ccdd8534609844515e

[Statepoints] Update statepoint mir tests. Update few tests after statepoint format change (D87154). These tests exercise functionality not affected by the format change, so they left unchanged.

view details

Reid Kleckner

commit sha 0ec1cf13f2a4e31aa2c5ccc665c5fbdcd3a94577

Revert "DirectoryWatcher: add an implementation for Windows" This reverts commit 5d74c435117526616d2c2665f030263b8f60da1b. The gtest tests appear to be flaky, and are failing in various places.

view details

Nikita Popov

commit sha e79ca751fc2bea9f80c4df1eebf61fce3fd4f439

[MemCpyOpt] Fix MemorySSA preservation moveUp() moves instructions, so we should move the corresponding memory accesses as well. We should also move the store instruction itself: Even though we'll end up removing it later, this gives us a correct MemoryDef to replace. The implementation is somewhat more complicated than it should be, because we also handle the case where P does not have a memory access due to a degnerate AA pipeline. Hopefully, the need for this will go away in the future, when the rest of the pass is based on MSSA. Differential Revision: https://reviews.llvm.org/D88778

view details

Alexander Belyaev

commit sha 323fd11df7718e68c37f9220a8e1056bb56778cf

[mlir][nfc] Add a func to compute numElements of a shape in Std -> LLVM. For some reason the variable `cumulativeSizeInBytes` in `getCumulativeSizeInBytes` was actually storing number of elements. I decided to fix it and refactor the function a bit. Differential Revision: https://reviews.llvm.org/D89336

view details

Nikita Popov

commit sha cd6f40f4326c8251ebb628122bf092ca5536a634

[MemCpyOpt] Add test scaffolding for MSSA based MemCpyOpt This adds an -enable-memcpyopt-memoryssa option that currently does nothing apart from requiring MSSA as a dependency. The tests are split to run both with the option disabled and enabled. I went with this rather than the separate directory DSE uses, as I found it convenient to have a direct side-by-side comparison of differences. Differential Revision: https://reviews.llvm.org/D89206

view details

Craig Topper

commit sha edf415b5b24572029e096695d5bccb64bcffec57

[X86] Add test cases for PR47825. NFC

view details

Nikita Popov

commit sha 3b31f05372f4ef881d0d11a2b8d339cd61b188df

[LICM] Don't require AST in LoopPromoter (NFC) While promotion currently always has an AST available, it is only relevant for invalidation purposes in LoopPromoter, so we do not need to have it as a hard dependency.

view details

Stella Laurenzo

commit sha ad958f648e46680966375a93a3f2f1f5ee870671

[mlir][Python] Add missing capsule->module and Context.create_module. * Extends Context/Operation interning to cover Module as well. * Implements Module.context, Attribute.context, Type.context, and Location.context back-references (facilitated testing and also on the TODO list). * Adds method to create an empty Module. * Discovered missing in npcomp. Differential Revision: https://reviews.llvm.org/D89294

view details

Andrew Paverd

commit sha cfd8481da1adba1952e0f6ecd00440986e49a946

Reland [CFGuard] Add address-taken IAT tables and delay-load support This patch adds support for creating Guard Address-Taken IAT Entry Tables (.giats$y sections) in object files, matching the behavior of MSVC. These contain lists of address-taken imported functions, which are used by the linker to create the final GIATS table. Additionally, if any DLLs are delay-loaded, the linker must look through the .giats tables and add the respective load thunks of address-taken imports to the GFIDS table, as these are also valid call targets. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D87544

view details

Benjamin Kramer

commit sha 97e48aadbd79184d1b3207c4f846c83e155be8dd

[mlir-cuda-runner] Unbreak the build CMake Error at llvm/cmake/modules/AddLLVM.cmake:870 (add_dependencies): The dependency target "Core" of target "mlir-cuda-runner" does not exist. Call Stack (most recent call first): llvm/cmake/modules/AddLLVM.cmake:1169 (add_llvm_executable) mlir/tools/mlir-cuda-runner/CMakeLists.txt:69 (add_llvm_tool) CMake Error at llvm/cmake/modules/AddLLVM.cmake:870 (add_dependencies): The dependency target "LINK_COMPONENTS" of target "mlir-cuda-runner" does not exist. Call Stack (most recent call first): llvm/cmake/modules/AddLLVM.cmake:1169 (add_llvm_executable) mlir/tools/mlir-cuda-runner/CMakeLists.txt:69 (add_llvm_tool) CMake Error at llvm/cmake/modules/AddLLVM.cmake:870 (add_dependencies): The dependency target "Support" of target "mlir-cuda-runner" does not exist. Call Stack (most recent call first): llvm/cmake/modules/AddLLVM.cmake:1169 (add_llvm_executable) mlir/tools/mlir-cuda-runner/CMakeLists.txt:69 (add_llvm_tool)

view details

Duncan P. N. Exon Smith

commit sha f0875971249b59b5a4c07cedc9633f0359cf6b73

Support: Add operator== for MemoryBufferRef and split out MemoryBufferRef.h As preparation for changing `LineIterator` to work with `MemoryBufferRef`: - Add an `operator==` that uses buffer pointer identity to ensure two buffers are equivalent. - Split out `MemoryBufferRef.h`, to avoid polluting `LineIterator.h` includers with everything from `MemoryBuffer.h`. This also means moving the `MemoryBuffer` constructor to a source file. Differential Revision: https://reviews.llvm.org/D89279

view details

Duncan P. N. Exon Smith

commit sha f2b7d9f7faa2788e362a91761a1624fb6b020851

Support: Allow use of MemoryBufferRef with line_iterator Split out from https://reviews.llvm.org/D66782, use `Optional<MemoryBufferRef>` in `line_iterator` so you don't need access to a `MemoryBuffer*`. Follow up patches in `clang/` will leverage this. Differential Revision: https://reviews.llvm.org/D89280

view details

push time in 6 days

push eventdavezarzycki/swift

Michael Gottesman

commit sha d3e6ffdbad9ed2af857508891a4530b7f11d4c6e

[lldb-toolbox] Add the ability to disassemble-to-file a specific function from a target without running the target. The routine already supports dumping the assembly to file if we are at a breakpoint using the current frame. This adds a -n option so one can without running just dump the assembly to a file of a specific function in a binary.

view details

Mike Ash

commit sha 630aff7b19b80f29445b645424e20fd1bb6bd551

[Runtime] Change SimpleGlobalCache to use ConcurrentReadableHashMap instead of ConcurrentMap. This gives us faster lookups and a small advantage in memory usage. Most of these maps need stable addresses for their entries, so we add a level of indirection to ConcurrentReadableHashMap for these cases to accommodate that. This costs some extra memory, but it's still a net win. A new StableAddressConcurrentReadableHashMap type handles this indirection and adds a convenience getOrInsert to take advantage of it. ConcurrentReadableHashMap is tweaked to avoid any global constructors or destructors when using it as a global variable. ForeignWitnessTables does not need stable addresses and it now uses ConcurrentReadableHashMap directly. rdar://problem/70056398

view details

Alexis Laferrière

commit sha e61ffea42c943044fe4fc8c35d5040bc8815e420

[Sema] Check availability in inlinable code using the explicit version Inlinable functions can be inlined in clients with a lower OS target version than the framework defining the function. For this reason, the availability in inlinable functions should always be checked using the explicit introduction OS version as lower bound and not the minimum deployment version. rdar://problem/67975153

view details

Alexis Laferrière

commit sha 53e04cb39db86d890ff674b775a5dbda47e9d599

[Sema] Test explicit versions in TypeRefinementContext

view details

Alexis Laferrière

commit sha 2f182c2b785f5f7b68ee756d1474f21f3050ba67

[Sema] Consider unavailable functions as being unreachable This has the effect of rejecting unavailable overrides to available methods in a similar way as overrides that are less available than the introduction are rejected.

view details

Alexis Laferrière

commit sha 39ee5916bd656cf56c75ddf45a47e628d0ff1db1

[SIL] Don't print availability for unreachable/unavailable functions

view details

Alexis Laferrière

commit sha c79d5cfbd6952c5dc141a24db10a87d548bc5f4f

[Sema] Still use the current minimum deployment target as fallback

view details

Alexis Laferrière

commit sha 25c9ddd7c817d4dee5a1643cc0fc32f3cf833af2

[Sema] Prioritize unavailability check for protocol witnesses The errors on explicit unavailability are more precise than those on availablity version. Make sure we prioritize the unavailability ones first.

view details

Alexis Laferrière

commit sha f536a581082633e33ea8849b7f1d2f9b0d816c6c

[Sema] Silence an inconsistent availability error for the stdlib Don't raise the error availability_decl_more_than_enclosing in the context is unavailable and if read in a swiftinterface file. This error was present in the stdlib in 5.3 without side effects so we still want to accept it.

view details

Alexis Laferrière

commit sha 429017fc7acc303d70c6251eec7c59c97255fa96

[ClangImporter] Import unavailable decls as unavailable

view details

Alexis Laferrière

commit sha d2343f23a4d14b37f1f603ae13e3421fb5455df4

[Sema] Create a new TypeRefinementContext only for explicit inlinables

view details

Alexis Laferrière

commit sha 1ca852e77a00bf8323494d7445d054ea28466b99

[Sema] Accept unavailable constructors override in unavailable types Preserve the old behavior of accepted unavailable override of constructors as this change would be source breaking.

view details

Alexis Laferrière

commit sha fca7d36cb42b044b1179254d6e38f2b8a263eeed

[Sema] Use the deployment target as minimum OS version in swiftinterfaces Preserve the previous behavior when parsing swiftinterfaces as the Swift stdlib for Swift 5.3 and a few other swiftinterfaces in Xcode 12.0 had issues that would now be reported as errors.

view details

Arnold Schwaighofer

commit sha b994bf319177ed07ab84402ec6e89590cbfdd5cd

Add support for `_specialize(exported: true, ...)` This attribute allows to define a pre-specialized entry point of a generic function in a library. The following definition provides a pre-specialized entry point for `genericFunc(_:)` for the parameter type `Int` that clients of the library can call. ``` @_specialize(exported: true, where T == Int) public func genericFunc<T>(_ t: T) { ... } ``` Pre-specializations of internal `@inlinable` functions are allowed. ``` @usableFromInline internal struct GenericThing<T> { @_specialize(exported: true, where T == Int) @inlinable internal func genericMethod(_ t: T) { } } ``` There is syntax to pre-specialize a method from a different module. ``` import ModuleDefiningGenericFunc @_specialize(exported: true, target: genericFunc(_:), where T == Double) func prespecialize_genericFunc(_ t: T) { fatalError("dont call") } ``` Specially marked extensions allow for pre-specialization of internal methods accross module boundries (respecting `@inlinable` and `@usableFromInline`). ``` import ModuleDefiningGenericThing public struct Something {} @_specializeExtension extension GenericThing { @_specialize(exported: true, target: genericMethod(_:), where T == Something) func prespecialize_genericMethod(_ t: T) { fatalError("dont call") } } ``` rdar://64993425

view details

Arnold Schwaighofer

commit sha 2a2cf91dcdf3fd5e50624eebfd3a0dc57b50ae0a

Add support for marking a _specialize attribute as SPI ``` @_specialize(exported: true, spi: SPIGroupName, where T == Int) public func myFunc() { } ``` The specialized entry point is only visible for modules that import using `_spi(SPIGroupName) import ModuleDefiningMyFunc `. rdar://64993425

view details

Arnold Schwaighofer

commit sha d6d79c66aa9bfa484547fa3be568d09bf21054bf

Merge two fields into a PointerUnion in SILDeclRef to save space

view details

Nathan Hawes

commit sha 90418612f400b3e2c58c4f42c635b55840ffeed8

[CodeCompletion] Reuse CompletionContextFinder for fallback completion when no typeCheckExpression call is made ...and adjust the fallback context it choses now that ErrorExprs no longer cause constraint generation to fail. Also fix some issues with the fallback logic in typeCheckForCodeCompletion: 1) For completion expressions in multi-statement closures, we were assuming a separate typeCheckExpression call would be made when the outer expression produced a single solution that had a resolved type for the closure. If the solution contained other fixes unrelated to the closure however, it wasn't applied and a separate call for the body was never made. 2) typeCheckForCodeComplation sometimes falls back to regular expression type checking but didn't update the passed-in target's expression after santizing and prechecking it, which may have modified it and its sub-expressions. This triggered assertion failures in certain cases due to the mix of the stale top-level expression pointer being used with updated subexpressions.

view details

Alexis Laferrière

commit sha fb76ff1aea6aee7282d1e8652107f3f0e78b5d46

[Sema] Report non-constructor unavailable overrides as warnings Report unavailable overrides as a warning to avoid breaking sources.

view details

Erik Eckstein

commit sha b0c9e69b6fd7bde871cf55570798094d51898fca

SideEffectAnalysis: don't assume that arguments with trivial type cannot be pointers. Even values of trivial type can contain a Builtin.RawPointer, which can be used to read/write from/to. To compensate for the removed check, enable the escape-analysis check in MemBehavior (as it was before). This fixes a recently introduced miscompile. rdar://problem/70220876

view details

eeckstein

commit sha 67d311d8da2b15e61ca866ffdd06fa125dd85d7f

Merge pull request #34289 from eeckstein/fix-side-effect-analysis SideEffectAnalysis: don't assume that arguments with trivial type can not be pointers.

view details

push time in 7 days

push eventdavezarzycki/llvm-project

Tobias Hieta

commit sha 61133e0b1110d03e35d0acc9ccfda2b6d9fb03cd

[llvm-install-name-tool] Add -delete_all_rpaths option This diff adds an option to remove all rpaths from a Mach-O binary. Test plan: make check-all Differential revision: https://reviews.llvm.org/D88674

view details

Jay Foad

commit sha acd0dd3a62d1a05bdc97d03a8a73326f7acb7c91

[AMDGPU] Use lowercase for subtarget feature names in RUN lines

view details

Max Kazantsev

commit sha 06a5e2f307891de2073f03fe3a1113384d1cccea

[Test] Use generated auto-checks to make further changes more visible

view details

Simon Pilgrim

commit sha 5df61724a171710570f37938eb229401fa0176c7

[InstCombine] Support uniform vector splats in ((((X >> C) & CC) + Y) << C) folds. Add support for uniform vector splats (no undefs).

view details

Simon Pilgrim

commit sha 6c23cbc5603cf0011f8d57b0354954aeca695daf

[X86] Convert integer _mm_reduce_* intrinsics to emit llvm.reduction intrinsics (PR47506) Emit the equivalent integer reduction intrinsics in IR instead of expanding to shuffle+arithmetic sequences. The fadd/fmul reductions might be trickier as they assume a similar bisection reduction while the generic intrinsics assume a sequential reduction (intel docs are ambiguous on the correct approach) - I'm not sure if we want to always tag them with reassoc? Anyway, that issue can wait until a separate fp patch along with the fmin/fmax reductions. Differential Revision: https://reviews.llvm.org/D87604

view details

Roman Lebedev

commit sha 7324616660fc0995fa8c166e3c392361222d5dbc

[SCEV] BuildConstantFromSCEV(): properly handle SCEVZeroExtend from ptr As being reported in https://reviews.llvm.org/D88806#2326944, this is pretty much the sibling problem of https://reviews.llvm.org/D88806#2325340, with root cause being that SCEV now models `ptrtoint` as trunc/zext/self of unknown. The appropriate (currently crashing) test coverage added.

view details

Pietro Albini

commit sha 05ef552e5660d05cb6cd730c734e709d8323fd6f

Add expected response time and escalation path to the security docs Following up on the discussion within the group during the roundtable at the 2020 LLVM Developers Meeting, this commit adds to the security docs: * How long we expect acknowledging security reports will take * The escalation path the reporter can follow if they get no response A temporary line inviting reporters to directly follow the escalation path while the mailing list is being setup is also added. Differential Revision: https://reviews.llvm.org/D89068

view details

Jay Foad

commit sha cdf0214845a1230d424bfdab0bafa9c484aa34e0

[AMDGPU] v_mac_legacy_f32 does not support DPP Differential Revision: https://reviews.llvm.org/D89245

view details

Roman Lebedev

commit sha aaafe350bb65dfc24c2cdad4839059ac81899fbe

[SCEV] BuildConstantFromSCEV(): properly handle SCEVSignExtend from ptr Much similar to the ZExt/Trunc handling. Thanks goes to Alexander Richardson for nudging towards noticing this one proactively. The appropriate (currently crashing) test coverage added.

view details

Ties Stuij

commit sha 208987844ffa5fef636fd6bd36b4f7a7597fe520

[ARM] Follow AACPS standard for volatile bit-fields access width This patch resumes the work of D16586. According to the AAPCS, volatile bit-fields should be accessed using containers of the widht of their declarative type. In such case: ``` struct S1 { short a : 1; } ``` should be accessed using load and stores of the width (sizeof(short)), where now the compiler does only load the minimum required width (char in this case). However, as discussed in D16586, that could overwrite non-volatile bit-fields, which conflicted with C and C++ object models by creating data race conditions that are not part of the bit-field, e.g. ``` struct S2 { short a; int b : 16; } ``` Accessing `S2.b` would also access `S2.a`. The AAPCS Release 2020Q2 (https://documentation-service.arm.com/static/5efb7fbedbdee951c1ccf186?token=) section 8.1 Data Types, page 36, "Volatile bit-fields - preserving number and width of container accesses" has been updated to avoid conflict with the C++ Memory Model. Now it reads in the note: ``` This ABI does not place any restrictions on the access widths of bit-fields where the container overlaps with a non-bit-field member or where the container overlaps with any zero length bit-field placed between two other bit-fields. This is because the C/C++ memory model defines these as being separate memory locations, which can be accessed by two threads simultaneously. For this reason, compilers must be permitted to use a narrower memory access width (including splitting the access into multiple instructions) to avoid writing to a different memory location. For example, in struct S { int a:24; char b; }; a write to a must not also write to the location occupied by b, this requires at least two memory accesses in all current Arm architectures. In the same way, in struct S { int a:24; int:0; int b:8; };, writes to a or b must not overwrite each other. ``` I've updated the patch D16586 to follow such behavior by verifying that we only change volatile bit-field access when: - it won't overlap with any other non-bit-field member - we only access memory inside the bounds of the record - avoid overlapping zero-length bit-fields. Regarding the number of memory accesses, that should be preserved, that will be implemented by D67399. Reviewed By: ostannard Differential Revision: https://reviews.llvm.org/D72932

view details

Paul Walker

commit sha 981b31c282eab6f3332c7bbed2674c10624a3fe1

[SVE] Add ISel patterns for "insert undef_nxv#f##, f##, 0" Differential Revision: https://reviews.llvm.org/D89235

view details

Evgeny Leviant

commit sha 6e56046f65c0f40215373e1cfc9ca6b788daabda

[TableGen][SchedModels] Fix aliasing of SchedWriteVariant Differential revision: https://reviews.llvm.org/D89114

view details

Cullen Rhodes

commit sha c87bd2d8eb378d152f2b6bde4cb088ad390a676c

[AArch64] Implement .variant_pcs directive A dynamic linker with lazy binding support may need to handle variant PCS function symbols specially, so an ELF symbol table marking STO_AARCH64_VARIANT_PCS [1] was added to address this. Function symbols that follow the vector PCS are marked via the .variant_pcs assembler directive, which takes a single parameter specifying the symbol name and sets the STO_AARCH64_VARIANT_PCS st_other flag in the object file. [1] https://github.com/ARM-software/abi-aa/blob/master/aaelf64/aaelf64.rst#st-other-values Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D89138

view details

Vitaly Buka

commit sha 710aceb645e7dba4de7053eef2c616311b9163d4

Revert "[VPlan] Use VPValue def for VPMemoryInstructionRecipe." It introduced a memory leak. This reverts commit 525b085a65d30a5f2ae2af38c0be252fe8d4781b.

view details

Vitaly Buka

commit sha 25a8881b724abf7251a9278e72224af7e82cb9c2

Revert " Enable LSAN for Android" Breaks android build. asan_malloc_dispatch_k needs memalign interceptor disabled in this patch. This reverts commit a2291a58bf1c860d026581fee6fe96019dc25440.

view details

Vinay Madhusudan

commit sha 37dce7475b2b97f27f65a80524a8ad8342e6cf7e

[AArch64] Identify SAD pattern (ABS (SUB (EXTEND a), (EXTEND b))) to ZERO_EXTEND((UABD a, b)) (ABS (SUB (SIGN_EXTEND a), (SIGN_EXTEND b))) to ZERO_EXTEND((SABD a, b)) This partially solves the bug: https://bugs.llvm.org/show_bug.cgi?id=46888 Meta ticket: https://bugs.llvm.org/show_bug.cgi?id=46929 Differential Revision: https://reviews.llvm.org/D88742

view details

Max Kazantsev

commit sha fb2627d8d21574a0d1a81596d00953075265ac88

[Test] Add test showing that SCEV cannot compute IV's range

view details

Mirko Brkusanin

commit sha 52ba4fa6aa21953a0d90c0c6e25a3ed95708d08b

[GlobalISel] Avoid making G_PTR_ADD with nullptr When the first operand is a null pointer we can avoid making a G_PTR_ADD and make a G_INTTOPTR with the offset operand. This helps us avoid making add with 0 later on for targets such as AMDGPU. Differential Revision: https://reviews.llvm.org/D87140

view details

Bevin Hansson

commit sha 9fa7f48459761fa13205f4c931484b0977c35746

[Fixed Point] Add fixed-point to floating point cast types and consteval. Reviewed By: leonardchan Differential Revision: https://reviews.llvm.org/D86631

view details

Bevin Hansson

commit sha 101309fe048e66873cfd972c47c4b7e7f2b99f41

[AST] Change return type of getTypeInfoInChars to a proper struct instead of std::pair. Followup to D85191. This changes getTypeInfoInChars to return a TypeInfoChars struct instead of a std::pair of CharUnits. This lets the interface match getTypeInfo more closely. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D86447

view details

push time in 7 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha 2e604d23b42e2b59b8884c7b4c2f27b62cba5fe3

[Analysis] findAffectedValues - remove unused ConstantInt argument. NFCI. We can use m_ConstantInt without a result value as we don't ever use it.

view details

Simon Pilgrim

commit sha 9c3138bd6d8b3e303f0f711753506b330ffa8df0

[InstCombine] visitTrunc - pass through undefs for trunc(shift(trunc/ext(x),c)) patterns Based on the recent patches D88475 and D88429 where we are losing undef values due to extension/comparisons. I've added a Constant::mergeUndefsWith method that merges the undef scalar/elements from another Constant into a specific Constant. Differential Revision: https://reviews.llvm.org/D88687

view details

Alexandre Ganea

commit sha 1dbf05f5b44db17dcd8520b032e83061189ff4f8

[ThinLTO][Documentation] Mention possible values for concurrency flags Differential Revision: https://reviews.llvm.org/D89309

view details

Paul C. Anagnostopoulos

commit sha 04b2191d69717d671cc4b5d007aac399a9e60bf6

[TableGen] Add new section to the TableGen Programmer's Reference. Fix typos in it and the TableGen Backend Developer's Guide.

view details

Raphael Isemann

commit sha 777df5c93da893819e9586949531ba9aaec97e1f

[lldb][NFC] Fix some invalid escapes sequences in Python strings I recently had to run the test suite with a debug Python which got started warning about some invalid escape sequences in LLDB's Python code. They all attempt to add a backslash by doing a single backslash instead of a double backslash in a normal string. This seems to work fine for now, but Python says this behaviour is deprecated, so this patch turns all those strings into raw strings (where a single backslash is actually a single backslash) Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D88289

view details

Raphael Isemann

commit sha 6b7a49bb43d58c2c08fddb9f6c538ee52806de0a

Fix all the CMake code that can only handle -stdlib= but not --stdlib= There are several places in LLVM's CMake setup that try to remove the `stdlib=...` flag from the CMake flags. All this code however only considered the `-stdlib=` variant of the flag but not the alternative spelling with a double dash. This causes that when one adds `--stdlib=...` to the user-provided CMake flags that this gets transformed into just `-` which ends up causing the build system to think it should read the source from stdin (which then lead to very confusing build errors). This just adds the alternative spelling before the`-stdlib=` variant in all these places Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D87133

view details

Lei Zhang

commit sha 08e4e08d7192c5523751e75030689ebb4a279445

[mlir-vulkan-runner] Clean up some stale CMake configurations

view details

ergawy

commit sha bddaa7a84868cf91d35b896ff773a269bae640df

[MLIR][SPIRV] Support identified and recursive structs. This PR adds support for identified and recursive structs. This includes: parsing, printing, serializing, and deserializing such structs. The following C struct: ```C struct A { A* next; }; ``` which is translated to the following MLIR code as: ```mlir !spv.struct<A, (!spv.ptr<!spv.struct<A>, Generic>)> ``` would be represented in the SPIR-V module as: ```spirv OpName %A "A" OpTypeForwardPointer %APtr Generic %A = OpTypeStruct %APtr %APtr = OpTypePointer Generic %A ``` In particular the following changes are included: - SPIR-V structs can now be either identified or literal (i.e. non-identified). - All structs now have their members surrounded by a ()-pair. - For recursive references, (1) an OpTypeForwardPointer instruction is emitted before the OpTypeStruct instruction defining the recursive struct (2) an OpTypePointer instruction is emitted after the OpTypeStruct instruction which actually defines the recursive pointer to struct type. Reviewed By: antiagainst, rriddle, ftynse Differential Revision: https://reviews.llvm.org/D87206

view details

Sanjay Patel

commit sha fab028b914c64db710c808250873c61d8ff716a2

[x86] add tests for cost model kinds of intrinsics; NFC This provides coverage for existing special-cases and a sampling of other intrinsics. Current output appears to be wrong in several cases.

view details

Sjoerd Meijer

commit sha 66f22411e1bba6eca935fd6447c5dceba48e2e35

[InstructionSimplify] Precommit tests for D89317. NFC.

view details

Sanjay Patel

commit sha 1c90878e60d7cae74552425475faa5a87562e4b3

[AArch64] fix spacing in test's RUN lines; NFC

view details

Eduardo Caldas

commit sha a8f1790fdb8ce1c53f024870cd51f32724d4c55f

[SyntaxTree] Fix rtti for `Expression`. Differential Revision: https://reviews.llvm.org/D89146

view details

Paulo Matos

commit sha 388fb67b0dd7f41630ab6c3400c96843852319af

[WebAssembly] Added .tabletype to asm and multiple table support in obj files Adds more testing in basic-assembly.s and a new test tables.s. Adds support to yaml reading and writing of tables as well. Differential Revision: https://reviews.llvm.org/D88815

view details

Raphael Isemann

commit sha ef733d9df486884aa33de9f5a9f6bade4e70f187

[lldb] Add targets for running test suite against Watch/TV/iPhone simulators This patch adds several build system targets that run the normal test suite but against the Watch/TV/iPhone simulators. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89224

view details

Raphael Isemann

commit sha 4cd873c4bd7ff66d4af2bf5e57c27e6924bfc92a

[lldb][NFC] Remove property predicate matcher That's supposed to be used to implement things such as `settings set target.run-args{basename==test&&arch==x86_64} arg1` but it's not actually fully implemented or tested anywhere. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D88910

view details

Raphael Isemann

commit sha 24e07570cc928b75e894b81639cabe96c660ccef

[lldb] Remove all the RegisterInfo name constification code RegisterInfo's `reg_name`/`reg_alt_name` fields are C-Strings and are supposed to only be generated from a ConstString. The reason for that is that `DynamicRegisterInfo::GetRegisterInfo` and `RegInfoBasedABI::GetRegisterInfoByName` try to optimise finding registers by name by only comparing the C string pointer values instead of the underlying strings. This only works if both C strings involved in the comparison come from a ConstString. If one of the two C strings doesn't come from a ConstString the comparison won't work (and most likely will silently fail). I added an assert in b0060c3a7868ef026d95d0cf8a076791ef74f474 which checks that both strings come from a ConstString. Apparently not all ABI plugins are generating their register names via ConstString, so this code is now not just silently failing but also asserting. In D88375 we did a shady fix for the MIPS plugins by just copying the ConstString setup code to that plugin, but we still need to fix ABISysV_arc, ABISysV_ppc and ABISysV_ppc64 plugins. I would say we just fix the remaining plugins by removing the whole requirement to have the register names coming from ConstStrings. I really doubt that we actually save any time with the whole ConstString search trick (searching ~50 strings that have <4 characters doesn't sound more expensive than calling the really expensive ConstString constructor + comparing the same amount of pointer values). Also whatever small percentage of LLDB's runtime is actually spend in this function is anyway not worth the complexity of this approach. This patch just removes all this and just does a normal string comparison. Reviewed By: JDevlieghere, labath Differential Revision: https://reviews.llvm.org/D88490

view details

Raphael Isemann

commit sha 02114e15daad7f02e65289412d37334618386ce5

[lldb] Allow limiting the number of error diagnostics when parsing an expression While debugging another bug I found out that we currently don't set any limit for the number of diagnostics Clang emits. If a user does something that generates a lot of errors (like including some long header file from within the expression function), then we currently spam the LLDB output with potentially thousands of Clang error diagnostics. Clang sets a default limit of 20 errors, but given that LLDB is often used interactively for small expressions I would say a limit of 5 is enough. The limit is implemented as a setting, so if a user cares about seeing having a million errors printed to their terminal then they can just increase the settings value. Reviewed By: shafik, mib Differential Revision: https://reviews.llvm.org/D88889

view details

Raphael Isemann

commit sha 6733b2544794f2703f19f07aa7c6806408e36160

[lldb][cmake] Remove custom logic for finding VCS file to fix LLDB's VCSVersion.inc generation We are still implementing our own logic for this that looks for a VCS file in the place where it was before the monorepo migration. This removes this logic and just uses the CMake function that LLVM/Clang are using. Reviewed By: JDevlieghere, kastiglione Differential Revision: https://reviews.llvm.org/D88950

view details

Jay Foad

commit sha b59d8d7c72546bf3f81889f4ce02a68c902eddd2

[AMDGPU][GlobalISel] Compute known bits for zero-extending loads Implement computeKnownBitsForTargetInstr for G_AMDGPU_BUFFER_LOAD_UBYTE and G_AMDGPU_BUFFER_LOAD_USHORT. This allows generic combines to remove some unnecessary G_ANDs. Differential Revision: https://reviews.llvm.org/D89316

view details

Christian Sigg

commit sha db1cf3d9ab33f56fcaea616baa71c6e4036beffa

[mlir][gpu] Add `gpu.wait` op. This combines two separate ops (D88972: `gpu.create_token`, D89043: `gpu.host_wait`) into one. I do after all like the idea of combining the two ops, because it matches exactly the pattern we are going to have in the other gpu ops that will implement the AsyncOpInterface (launch_func, copies, alloc): If the op is async, we return a !gpu.async.token. Otherwise, we synchronize with the host and don't return a token. The use cases for `gpu.wait async` and `gpu.wait` are further apart than those of e.g. `gpu.h2d async` and `gpu.h2d`, but I like the consistent meaning of the `async` keyword in GPU ops. Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D89160

view details

push time in 7 days

push eventdavezarzycki/llvm-project

Florian Hahn

commit sha 2322080bc3889145b7fb3c8798016467fe5e3b10

[ConstraintElimination] Add add/sub/and/or test cases. This adds a new set of tests for upcoming constraint elimination changes.

view details

Evgeny Leviant

commit sha 836d0addee4a2ce07d09d68484823221cbb062b7

Fix Windows/MSVC build after 6e56046f65 Commit 6e56046f65 may trigger SEGV in llvm-tablegen if the latter is built with -DLLVM_OPTIMIZED_TABLEGEN=OFF. The reason of SEGV was accessing stale memory after expansion of std::vector.

view details

Hans Wennborg

commit sha bddef54c502811fa1406d1161d4baa15b56ebc32

Raise the timeout in DirectoryWatcherTest to 10 s After D88666, which implemented DirectoryWatcher on Windows, we're seeing test failures on Chromium's Windows bots. Try raising the timeout in case the test is failing due to high load on the machine.

view details

Sanjay Patel

commit sha 937d782e38d44d078342cb6358c41db7a5795d00

[AArch64] add cost model test for scalable vector math; NFC Testing for the various cost model "TargetCostKind" is limited, and testing for scalable vectors is limited. The motivating example of an intrinsic is not included here yet because that just crashes.

view details

Raphael Isemann

commit sha f4f4d54ae0d8971e67fd64e10d700804105b720c

[lldb] Fill Watch/AppleTV simulator gaps in PlatformDarwin When running the test suite against the Watch/AppleTV simulator we currently hitting the unimplemented parts of PlatformDarwin for the respective simulator platforms. This just adds the respective switch cases. This whole code path depends on having a valid Target, so can't just unittest this code without refactoring it. So instead this is tested by just running the testsuite against the respective simulators (which is how I found this). Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D89106

view details

Raphael Isemann

commit sha 480c440f9a3cf3434355f24217cfa430dc1cabda

[lldb] Don't let dotest silently fall back to default SDK if the specified one can't be found If the SDK name passed to dotest can't be found by `xcrun` we silently fall back to the default SDK. This leads to rather cryptic errors being reported later on when linking the actual test executables. Instead just directly log and abort when this situation is encountered and inform the user about the invalid argument. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89053

view details

Raphael Isemann

commit sha dfc72439529c49e8bfeab9d604b1aa1cac7d89e8

[lldb] Don't add no-sandbox entitlement when running tests on simulator It seems that if codesigning the test executables with the `com.apple.private.security.no-sandbox` entitlement then the simulator refuses to launch them and every test fails with `Process launch failed: process exited with status -1 (no such process.)`. This patch checks if we're trying to run the test suite on the simulator and then avoids signing the executable with `no-sandbox`. Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D89052

view details

Jonas Paulsson

commit sha c78da037783bda0f27f4d82060149166e6f0c796

[clang] Improve handling of physical registers in inline assembly operands. Change EmitAsmStmt() to - Not tie physregs with the "+r" constraint, but instead add the hard register as an input constraint. This makes "+r" and "=r":"r" look the same in the output. Background: Macro intensive user code may contain inline assembly statements with multiple operands constrained to the same physreg. Such a case (with the operand constraints "+r" : "r") currently triggers the TwoAddressInstructionPass assertion against any extra use of a tied register. Furthermore, TwoAddress will insert a COPY to that physreg even though isel has already done so (for the non-tied use), which may lead to a second redundant instruction currently. A simple fix for this is to not emit tied physreg uses in the first place for the "+r" constraint, which is what this patch does. - Give an error on multiple outputs to the same physical register. This should be reported and this is also what GCC does. Review: Ulrich Weigand, Aaron Ballman, Jennifer Yu, Craig Topper Differential Revision: https://reviews.llvm.org/D87279

view details

Louis Dionne

commit sha 647fb6b37488080efd8dd5e5a40d21e926b6e726

[libc++] Update the <version> header in-place from generate_feature_test_macro_components This simplifies the workflow for adding new feature-test macros for contributors. Previously, they would have to move the generated <version> header from a temporary directory to libc++'s include directory by hand. This makes the behavior for the <version> header consistent with what's done for the tests and the documentation.

view details

Nathan Ridge

commit sha cb3c13fab6beac4666865b68bea59aae593aaf83

[clangd] Propagate CollectMainFileRefs to BackgroundIndex This appears to have been an omission in D83536. Differential Revision: https://reviews.llvm.org/D89284

view details

Hans Wennborg

commit sha f84c77f424e15316f7f46f484880162a7cbcd80b

Revert "Raise the timeout in DirectoryWatcherTest to 10 s" It didn't help. This reverts commit bddef54c502811fa1406d1161d4baa15b56ebc32.

view details

push time in 7 days

push eventdavezarzycki/swift

Alexey Komnin

commit sha 4fa17bf59774ae6543a33b1a29f01320705f4dfe

SR-12022: refactor LiteralExpr to combine common initializer code

view details

Erik Eckstein

commit sha aced5c74df5804b7c567a1ae9cf68b7e9cb336ee

SILOptimizer: Remove InspectionMode from MemBehehaviorVisitor The InspectionMode was never set to anything else than "IgnoreRetains"

view details

Erik Eckstein

commit sha d4a6bd39b686307028b850d25a2a2fbc337160a3

SILOptimizer: improve MemBehavior for apply instructions. 1. Do a better alias analysis for "function-local" objects, like alloc_stack and inout parameters 2. Fully support try_apply and begin/end/abort_apply So far we fully relied on escape analysis. But escape analysis has some shortcomings with SIL address-types. Therefore, handle two common cases, alloc_stack and inout parameters, with alias analysis. This gives better results. The biggest change here is to do a quick check if the address escapes via an address_to_pointer instructions.

view details

Erik Eckstein

commit sha 9f85cb8576becac281397e967e67ec44e5aabc5b

TempRValueElimination: handle potential modifications of the copy-source in a called functions correctly. This fixes a miscompile in case the source of the optimized copy_addr is modified in a called function with to a not visible alias. This can happen with class properties or global variables. This fix removes the special handling of function parameters, which was just wrong. Instead it simply uses the alias analysis API to check for modifications of the source object. The fix makes TempRValueElimination more conservative and this can cause some performance regressions, but this is unavoidable. rdar://problem/69605657

view details

Erik Eckstein

commit sha 68f485424c2b655075c77877acc9ed05756c5d08

SILOptimizer: add an additional TempRValueOpt pass later in the pipeline. This can compensate the performance regression of the more conservative handling of function calls in TempRValueOpt (see previous commit). The pass runs after the inlining passes and can therefore optimize in some cases where it's not possible before inlining.

view details

Mishal Shah

commit sha 2324aceec85904e20c5a5fd6ca097c87b854673e

Update the Apple Watch Simulator to Series 5

view details

Rintaro Ishizaki

commit sha df94c4f46414937856386d0e300f0348176197ba

[CodeCompletion] Remove parser hacks regarding type body fingerprints Take type body fingerprints into account for inteface hash checking. Since `SourceFile.getInterfacehash()` doesn't digest the type body fingerprints in the file, enabling type body fingerprints regressed fast-completion. rdar://problem/69890297

view details

Daniel Rodríguez Troitiño

commit sha b047f9e25277f3180b3d844b975b10023556bc45

[windows] Provide %long-tmp in Windows for extended length temp paths. In Windows %t might end up very close to the maximum path length of 260 characters. It is possible to use extended lenght paths with a \\?\ prefix. The changes introduce %long-tmp for cases that the test suite is going over those limits and need a hint in Windows that the path might be long. It expands to the same as %t in other platforms. This should fix the test/Misc/stats_dir_profiler.swift in the Windows VS 2017 CI machines and hopefully not affect anything else.

view details

eeckstein

commit sha 0f6f429ab3da07dc3ae2128ce27e4197bd29f957

Merge pull request #34252 from eeckstein/temp-rvalue-opt SILOptimizer: fix a miscompile in TempRValueOpt and improve MemBehavior

view details

Anthony Latsis

commit sha 826f17e53422d284edeeaf7ed6f13a122cd10f27

Decouple detection of «Self ==» constraints from SelfReferenceKind

view details

Anthony Latsis

commit sha 4ee517f65cded3bcfc707ed277113165db486167

AST: Refactor SelfReferenceKind in preparation for #33767 This will enable us to allow members containing references to Self or associated types only in covariant position to be used on an existential

view details

Eric Miotto

commit sha 0f6611cfad28c189784c7a88865fb039b5a9b24d

[build] properly install compiler-rt from Xcode toolchain (#31247) Similarly to what was done for #25547, copy the compiler-rt built-ins for embedded platforms from the Xcode toolchain into the new generated one, so to avoid link time errors. Addresses SR-12001, rdar://57837918

view details

Eric Miotto

commit sha be38df8e3d51c23294b6534db8c6bcc9de1ab1ae

[build] Adjust install name for Differentiation and Concurrency (#34216) This effectively reverts #31183 -- we need to match the install name convention of the other stdlib libraries. From the review feedback: > The right way to load the stdlib & runtime libraries from a custom toolchain is to set `DYLD_LIBRARY_PATH` when executing the generated binary. This is how we run tests against the just-built libraries and this is how downloadable toolchain snapshots are currently configured in Xcode -- see #33178

view details

Erik Eckstein

commit sha 77f16471951fbcdf0bba9929b8e6d5d9228e32f6

RCIdentityAnalysis: some refactoring to improve clarity. NFC.

view details

Simon Evans

commit sha 8c3081c750f2b22075e9bb2efc8ab3647996b7b8

test: Remove duplicate test for -static-executable - test/Driver/static-executable-linux.swift is duplicated by test/Driver/static-executable.swift so remove it. - Additionally, test/Driver/static-executable-linux.swift uses 'file' instead of 'lvm-readelf' to detect if the executable is statically linked and this breaks on Centos7.

view details

Rintaro Ishizaki

commit sha 1696f4d3ef6f2e10b6a40cd548617f07d92c54ed

Merge pull request #34256 from rintaro/ide-completion-rdar69890297 [CodeCompletion] Remove parser hacks regarding type body fingerprints

view details

Artem Chikin

commit sha f9d6c6a6196751b36e8efed736ba4d4ebae3a526

[Dependency Scanner] Refactor ModuleDependencies to represent binary-only Swift modules explicitly This matches the behavior of the current client (`swift-driver`) and reduces ambiguity in how the nodes in the graph are to be treated. Swift dependencies with a textual interface, for example, must be built into a binary module by clients. Swift dependencies without a textual interface, with only a binary module, are to be used directly, without any up-to-date checks. Note, this is distinct from Swift dependencies that have a textual interface, for which we also detect potential pre-build binary module candidates. Those are still reported in the `details` field of textual Swift dependencies as `prebuiltModuleCandidates`.

view details

Nate Chandler

commit sha 6fce6d9363dee7c3675f94635453a46507e26821

[Async CC] Pull poly params from entry point emission. Previously, EmitPolymorphicParameters dealt directly with an Explosion from which it pulled values. In one place, there was a conditional check for async which handled some cases. There was however another place where the polymorphic parameter was pulled directly from the explosion. That missed case resulted in attempting to pull a polymorphic parameter directly from an Explosion which contains only a %swift.context* per the async calling convention. Here, those parameters are now pulled from an EntryPointArgumentEmission subclasses of which are able to provide the relevant definition of what pulling a parameter means. rdar://problem/70144083

view details

Brent Royal-Gordon

commit sha 04606d5424e01b0e29d1450bb851e99a9ae6ca4e

Merge pull request #34275 from spevans/pr_remove_duplicate_test test: Remove duplicate test for -static-executable

view details

Pavel Yaskevich

commit sha 64d446582b7b49ef8180bb292d324eef74bbb16d

Merge pull request #34132 from Interfere/SR-12022-LiteralExpr-refactoring SR-12022: refactor LiteralExpr to combine common initializer code

view details

push time in 7 days

push eventdavezarzycki/llvm-project

Haojian Wu

commit sha 8852d30b1c1b3b65cec0147cdf442051aa35e31b

[AST][RecoveryExpr] Don't perform early typo correction in C. The dependent mechanism for C error-recovery is mostly finished, this is the only place we have missed. Differential Revision: https://reviews.llvm.org/D89045

view details

sstefan1

commit sha a64e8583dafe0fe407e521d546abc9dfb24ba1b3

[IR][FIX] Intrinsics - don't apply default willreturn if IntrNoReturn is specified Summary: Since willreturn will soon be added as default attribute, we can end up with both noreturn and willreturn on the same intrinsic. This was exposed by llvm.wasm.throw which has IntrNoReturn. Reviewers: jdoerfert, arsenm Differential Revision: https://reviews.llvm.org/D88644

view details

Evgeny Leviant

commit sha 7102793065f2329a2fde78f32a1f2582dd89b0e7

Add test for cortex-a57/ARM sched model. NFC

view details

Haojian Wu

commit sha f1bf41e433e196ecffcc4fb7cd04c58d48445425

Fix buildbot failure for 702529d899c87e9268bb33d836dbc91b6bce0b16.

view details

Kazushi (Jam) Marukawa

commit sha 6c32bc4875117696d23c035e9e11320e095e52a0

[VE] Change to expand BRCOND VE doesn't have BRCOND instruction, so need to expand it. Also add a regression test. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89173

view details

Kazushi (Jam) Marukawa

commit sha 9d6d4b07a21614be12edc063aeda2bd19b58f780

[VE] Support fneg and frem VE doesn't have fneg or frem instruction, so change them to expand. Add regression tests also. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89205

view details

Simon Pilgrim

commit sha 45d785e22b2c940e6203eceda979e2b2bca57b29

Revert rGb97093e520036f8 - "[InstCombine] matchFunnelShift - fold or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(a,b,x) iff x < bw" This reverts commit b97093e520036f88c5b39e572966f1c8c387661e. Funnel shift argument commutation isn't working correctly

view details

Sam McCall

commit sha 31a575bbc0fc925c29bcd6fc49b5a100ad22ae63

[JSON] Add ObjectMapper::mapOptional to validate optional data. Currently the idiom for mapping optional fields is: ObjectMapper O(Val, P); if (!O.map("required1", Out.R1) || !O.map("required2", Out.R2)) return false; O.map("optional1", Out.O1); // ignore result return true; If `optional1` is present but malformed, then we won't detect/report that error. We may even leave `Out` in an incomplete state while returning true. Instead, we'd often prefer to ignore `optional1` if it is absent, but otherwise behave just like map(). Differential Revision: https://reviews.llvm.org/D89128

view details

Sam McCall

commit sha c2d4280328e4f69fd9e1258196e9dbc8362fce95

[clangd] Validate optional fields more strictly. Differential Revision: https://reviews.llvm.org/D89131

view details

Nicolas Vasilache

commit sha 422aaf31daa520899303adaf82ba76743624ee0a

[mlir][Linalg] Add named Linalg ops on tensor to buffer support. This revision introduces support for buffer allocation for any named linalg op. To avoid template instantiating many ops, a new ConversionPattern is created to capture the LinalgOp interface. Some APIs are updated to remain consistent with MLIR style: `OwningRewritePatternList * -> OwningRewritePatternList &` `BufferAssignmentTypeConverter * -> BufferAssignmentTypeConverter &` Differential revision: https://reviews.llvm.org/D89226

view details

Nicolas Vasilache

commit sha 69d3247f35a7d73af217d9ca33c3731640f3938e

[mlir][Linalg] NFC - Automate the printing of canonicalizers and folders for nameds Linalg ops. This revision reduces the number of places that specific information needs to be modified when adding new named Linalg ops. Differential Revision: https://reviews.llvm.org/D89223

view details

Jan Kratochvil

commit sha 54434dc4dce9d59c4d6cebfd87e5f67e2966573b

[nfc] [lldb] Simplify calling SymbolFileDWARF::GetDWARFCompileUnit Only SymbolFileDWARF::ParseCompileUnit creates a CompileUnit and it uses DWARFCompileUnit for that. Differential Revision: https://reviews.llvm.org/D89165

view details

Sam McCall

commit sha 8f1de22c7681a21fcdbe2d8c39de7698baab724a

[clangd] Stop capturing trace args if the tracer doesn't need them. The tracer is now expected to allocate+free the args itself. Differential Revision: https://reviews.llvm.org/D89135

view details

Pavel Labath

commit sha e2f1fe361a9c7616a1d6459b036d15f47da4a073

[lldb/Utility] Introduce UnimplementedError This is essentially a replacement for the PacketUnimplementedError previously present in the gdb-remote server code. The reason I am introducing a generic error is because I wanted the native process classes to be able to signal that they do not support some functionality. They could not use PacketUnimplementedError as they are independent of a specific transport protocol. Putting the error class in the the native process code was also not ideal because the gdb-remote code is also used for lldb-server's platform mode, which does not (should not) know how to debug individual processes. I'm putting it under Utility, as I think it can be generally useful for notifying about unsupported/unimplemented functionality (and in particular, for programatically testing whether something is unsupported). Differential Revision: https://reviews.llvm.org/D89121

view details

Kazushi (Jam) Marukawa

commit sha 66be2e00ef29f8a747df2f7a57682e112266f525

[VE] Support copysign math function VE doesn't have instruction for copysign, so expand it. Add a regression test also. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89228

view details

Christian Sigg

commit sha 01dc85c173cb72b7dc42971942eb00c0be88924f

[mlir][gpu] Adding gpu runtime wrapper functions for async execution. Reviewed By: herhut Differential Revision: https://reviews.llvm.org/D89037

view details

Kadir Cetinkaya

commit sha 9407686687907fa2af24219e1d6e57787872bef8

[clangd][NFC] Fix formatting in ClangdLSPServer

view details

Alexander Kornienko

commit sha 1968a6155fd5ef178598b204cc6a176719b99f2e

[clang-tidy] Fix IncludeInserter usage example in a comment.

view details

Simon Pilgrim

commit sha c252200e4de4411478fb525e93cc7ae05b189a22

[DAG][ARM][MIPS][RISCV] Improve funnel shift promotion to use 'double shift' patterns Based on a discussion on D88783, if we're promoting a funnel shift to a width at least twice the size as the original type, then we can use the 'double shift' patterns (shifting the concatenated sources). Differential Revision: https://reviews.llvm.org/D89139

view details

Kadir Cetinkaya

commit sha f9317f7bf6bdac10d6f8a1c106ef8d489da7efbf

[clangd] Introduce MemoryTrees A structure that can be used to represent memory usage of a nested set of systems. Differential Revision: https://reviews.llvm.org/D88411

view details

push time in 7 days

push eventdavezarzycki/llvm-project

David Sherwood

commit sha c5ba0d33cc060cc06a28a5d9101060afd1c0ee9a

[SVE] Make ElementCount and TypeSize use a new PolySize class I have introduced a new template PolySize class, where the template parameter determines the type of quantity, i.e. for an element count this is just an unsigned value. The ElementCount class is now just a simple derivation of PolySize<unsigned>, whereas TypeSize is more complicated because it still needs to contain the uint64_t cast operator, since there are still many places in the code that rely upon this implicit cast. As such the class also still needs some of it's own operators. I've tried to minimise the amount of code in the base PolySize class, which led to a couple of changes: 1. In some places we were relying on '==' operator comparisons between ElementCounts and the scalar value 1. I didn't put this operator in the new PolySize class, and thought it was actually clearer to use the isScalar() function instead. 2. I removed the isByteSized function and replaced it with calls to isKnownMultipleOf(8). I've also renamed NextPowerOf2 to be coefficientNextPowerOf2 so that it's more consistent with coefficientDivideBy. Differential Revision: https://reviews.llvm.org/D88409

view details

Roman Lebedev

commit sha 1c021c64caef83cccb719c9bf0a2554faa6563af

[SCEV] Model ptrtoint(SCEVUnknown) cast not as unknown, but as zext/trunc/self of SCEVUnknown While we indeed can't treat them as no-ops, i believe we can/should do better than just modelling them as `unknown`. `inttoptr` story is complicated, but for `ptrtoint`, it seems straight-forward to model it just as a zext-or-trunc of unknown. This may be important now that we track towards making inttoptr/ptrtoint casts not no-op, and towards preventing folding them into loads/etc (see D88979/D88789/D88788) Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D88806

view details

David Sherwood

commit sha d765d12676905c9e51f4c3b23218cc1e330f9c4f

Fix build failure caused by c5ba0d33cc060cc06a28a5d9101060afd1c0ee9a

view details

Alexander Belyaev

commit sha b98e5e0f7e99d6b72aa637cc00790b98021e2086

[mlir] Move Linalg tensors-to-buffers tests to Linalg tests. The buffer placement preparation tests in test/Transforms/buffer-placement-preparation* are using Linalg as a test dialect which leads to confusion and "copy-pasta", i.e. Linalg is being extended now and when TensorsToBuffers.cpp is changed, TestBufferPlacement is sometimes kept in-sync, which should not be the case. This has led to the unnoticed bug, because the tests were in a different directory and the patterns were slightly off. Differential Revision: https://reviews.llvm.org/D89209

view details

Nicolas Vasilache

commit sha 60cf8453d0beeb510900eda82b5a26b21af49907

Revert "Revert "Give attributes C++ namespaces."" This reverts commit df295fac6cd14977672b2874700572e0f77b77da. Reactivates a spuriously rolled back change.

view details

Haojian Wu

commit sha 702529d899c87e9268bb33d836dbc91b6bce0b16

[clang] Fix returning the underlying VarDecl as top-level decl for VarTemplateDecl. Given the following VarTemplateDecl AST, ``` VarTemplateDecl col:26 X |-TemplateTypeParmDecl typename depth 0 index 0 `-VarDecl X 'bool' cinit `-CXXBoolLiteralExpr 'bool' true ``` previously, we returned the VarDecl as the top-level decl, which was not correct, the top-level decl should be VarTemplateDecl. Differential Revision: https://reviews.llvm.org/D89098

view details

Georgii Rymar

commit sha 25e437ec1e5b96028a319d3f2aca4129cdd3d85d

[llvm-readobj/elf] - Ignore the hash table when on EM_S390/EM_ALPHA platforms. Specification for `SHT_HASH` table says (https://refspecs.linuxbase.org/elf/gabi4+/ch5.dynamic.html#hash) that it contains `Elf32_Word` entries for both `32/64` bit objects. But there is a problem with `EM_S390` and `ELF::EM_ALPHA` platforms: they use 8-bytes entries. (see the issue reported: https://bugs.llvm.org/show_bug.cgi?id=47681). Currently we might infer the size of the dynamic symbols table from hash table, but because of the issue mentioned, the calculation is wrong. And also we don't dump the hash table properly. I am not sure if we want to support 8-bytes entries as they violates specification and also the `.hash` table is kind of deprecated by itself (the `.gnu.hash` table is used nowadays). So, the solution this patch suggests is to ban using of the hash table on `EM_S390/EM_ALPHA` platforms. Differential revision: https://reviews.llvm.org/D88817

view details

Haojian Wu

commit sha bb406f36dca3d53690a31e051d6f75f11eba6aa1

[AST][RecoveryExpr] Build dependent callexpr in C for error-recovery. See whole context: https://reviews.llvm.org/D85025 Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D84304

view details

Haojian Wu

commit sha 8852d30b1c1b3b65cec0147cdf442051aa35e31b

[AST][RecoveryExpr] Don't perform early typo correction in C. The dependent mechanism for C error-recovery is mostly finished, this is the only place we have missed. Differential Revision: https://reviews.llvm.org/D89045

view details

sstefan1

commit sha a64e8583dafe0fe407e521d546abc9dfb24ba1b3

[IR][FIX] Intrinsics - don't apply default willreturn if IntrNoReturn is specified Summary: Since willreturn will soon be added as default attribute, we can end up with both noreturn and willreturn on the same intrinsic. This was exposed by llvm.wasm.throw which has IntrNoReturn. Reviewers: jdoerfert, arsenm Differential Revision: https://reviews.llvm.org/D88644

view details

Evgeny Leviant

commit sha 7102793065f2329a2fde78f32a1f2582dd89b0e7

Add test for cortex-a57/ARM sched model. NFC

view details

Haojian Wu

commit sha f1bf41e433e196ecffcc4fb7cd04c58d48445425

Fix buildbot failure for 702529d899c87e9268bb33d836dbc91b6bce0b16.

view details

Kazushi (Jam) Marukawa

commit sha 6c32bc4875117696d23c035e9e11320e095e52a0

[VE] Change to expand BRCOND VE doesn't have BRCOND instruction, so need to expand it. Also add a regression test. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89173

view details

Kazushi (Jam) Marukawa

commit sha 9d6d4b07a21614be12edc063aeda2bd19b58f780

[VE] Support fneg and frem VE doesn't have fneg or frem instruction, so change them to expand. Add regression tests also. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D89205

view details

Simon Pilgrim

commit sha 45d785e22b2c940e6203eceda979e2b2bca57b29

Revert rGb97093e520036f8 - "[InstCombine] matchFunnelShift - fold or(shl(a,x),lshr(b,sub(bw,x))) -> fshl(a,b,x) iff x < bw" This reverts commit b97093e520036f88c5b39e572966f1c8c387661e. Funnel shift argument commutation isn't working correctly

view details

Sam McCall

commit sha 31a575bbc0fc925c29bcd6fc49b5a100ad22ae63

[JSON] Add ObjectMapper::mapOptional to validate optional data. Currently the idiom for mapping optional fields is: ObjectMapper O(Val, P); if (!O.map("required1", Out.R1) || !O.map("required2", Out.R2)) return false; O.map("optional1", Out.O1); // ignore result return true; If `optional1` is present but malformed, then we won't detect/report that error. We may even leave `Out` in an incomplete state while returning true. Instead, we'd often prefer to ignore `optional1` if it is absent, but otherwise behave just like map(). Differential Revision: https://reviews.llvm.org/D89128

view details

Sam McCall

commit sha c2d4280328e4f69fd9e1258196e9dbc8362fce95

[clangd] Validate optional fields more strictly. Differential Revision: https://reviews.llvm.org/D89131

view details

Nicolas Vasilache

commit sha 422aaf31daa520899303adaf82ba76743624ee0a

[mlir][Linalg] Add named Linalg ops on tensor to buffer support. This revision introduces support for buffer allocation for any named linalg op. To avoid template instantiating many ops, a new ConversionPattern is created to capture the LinalgOp interface. Some APIs are updated to remain consistent with MLIR style: `OwningRewritePatternList * -> OwningRewritePatternList &` `BufferAssignmentTypeConverter * -> BufferAssignmentTypeConverter &` Differential revision: https://reviews.llvm.org/D89226

view details

Nicolas Vasilache

commit sha 69d3247f35a7d73af217d9ca33c3731640f3938e

[mlir][Linalg] NFC - Automate the printing of canonicalizers and folders for nameds Linalg ops. This revision reduces the number of places that specific information needs to be modified when adding new named Linalg ops. Differential Revision: https://reviews.llvm.org/D89223

view details

Jan Kratochvil

commit sha 54434dc4dce9d59c4d6cebfd87e5f67e2966573b

[nfc] [lldb] Simplify calling SymbolFileDWARF::GetDWARFCompileUnit Only SymbolFileDWARF::ParseCompileUnit creates a CompileUnit and it uses DWARFCompileUnit for that. Differential Revision: https://reviews.llvm.org/D89165

view details

push time in 7 days

push eventdavezarzycki/swift

Anthony Latsis

commit sha 8f43d888b8fd88540c5ba3d770a857928ac0b3a7

Sema: Disallow usage of settable Self-returning storage requirements on existential base

view details

Daniel Rodríguez Troitiño

commit sha 8470a6624f08283719af2cbc6fdc10a2163d4888

[windows] Avoid %r for quoting module-cache-path in Windows. %r returns a representation of the object that is valid Python syntax. For numbers and strings this representation is very compatible with Unix shells, but for Windows, the quoting performed by Python will not be compatible. For example the Windows path separator `\` will be escaped as `\\`, which is not necessary for Windows and might make some tests that try to match path fail. Python 3.3 has `shlex.quote`, which was previously available as `pipes.quote` in earlier Python versions. `pipes.quote` was indeed used in several points of the `lit.cfg` file. For Windows, one need to do their own quoting. This change introduces `shell_quote` which uses `shlex.quote` or `pipes.quote` in Unix depending on the Python version, and provides an implementation of `shell_quote` for Windows. It replaces every usage of `pipes.quotes` for `shell_quote`, and modifies the value of `mcp_opt` to use `shell_quote` and not `%r`. This should fix the test `Driver\working-directory.swift` in the Windows Visual Studio 2017 builder.

view details

Rintaro Ishizaki

commit sha 411751218c82f22ac4d9193be3a28dc2eaf56701

[Syntax] Parse attributed types in expr position as TypeExprSyntax rdar://problem/70101520 https://bugs.swift.org/browse/SR-13711

view details

Brent Royal-Gordon

commit sha b440ab73315b4d4bb288078e241d974ae8a6e7d4

[NFC] Move several types/functions to Import.h To help consolidate our various types describing imports, this commit moves the following types and methods to Import.h: * ImplicitImports * ImplicitStdlibKind * ImplicitImportInfo * ModuleDecl::ImportedModule * ModuleDecl::OrderImportedModules (as ImportedModule::Order) * ModuleDecl::removeDuplicateImports() (as ImportedModule::removeDuplicates()) * SourceFile::ImportFlags * SourceFile::ImportOptions * SourceFile::ImportedModuleDesc This commit is large and intentionally kept mechanical—nothing interesting to see here.

view details

Brent Royal-Gordon

commit sha f3d99cefbb63960fdcd2b177b418d2a9a43930df

[NFC] Turn ImportedModuleDesc into AttributedImport Rename ImportedModuleDesc to AttributedImport and make it a template that’s parameterized on the representation of the module. This will allow us to reduce duplicated representations of “abstract” ImportDecls.

view details

Brent Royal-Gordon

commit sha c489fffb796432c4c463b4cb11a2d88f23b8b508

[NFC] Rename and document fields of AttributedImport Also renames a member in ImportResolution.cpp to align with this naming.

view details

Brent Royal-Gordon

commit sha 8070e8aaedf662bceea1483840cf0f61d5a8b8a4

[NFC] Use AttributedImport in import resolution Removes what amount to redundant definitions from UnboundImport.

view details

Brent Royal-Gordon

commit sha d55c5bd549fa17769c23be9708c33c8de9ed0ef1

[NFC] Add type for ModuleDecl::getImplicitImports() This doesn’t really change the design yet.

view details

Brent Royal-Gordon

commit sha 563386b06d8c1cf863be71c38345fcaefa00e423

[NFC] Eliminate ImplicitImport Instead, we will use AttributedImport<ImportedModule>, a common currency type which supports a superset of ImplicitImport’s current behavior.

view details

Brent Royal-Gordon

commit sha c13067a0e0e9a1ea474a307c10d177c27e57fd58

[NFC] Rework ImplicitImportInfo::ModuleNames Replace with an array of AttributedImport<UnloadedImportedModule> to add flexibility.

view details

Brent Royal-Gordon

commit sha d02b34cccc3edf3fece4c112bc8637ed94b1d407

[NFC] Add conveniences to clean up import code

view details

Brent Royal-Gordon

commit sha 7f14affda09fb57414fa7d0203a886845dbd47fc

[NFC] Give NullablePtr some PointerLikeTypeTraits Allows it to be used in PointerIntPair and PointerUnion.

view details

Brent Royal-Gordon

commit sha bf074b093ea9b8ef4dcb90a5494343edbef39939

Run some implicit imports through import resolution Unloaded implicit imports (e.g. the `-import-module` flag) will now be processed by import resolution, and will be fully validated and cross-imported. Preloaded imports, like the standard library import, are still not run through full import resolution, but this is a definite improvement over the status quo. This also folds `-import-underlying-module` and `@_exported import <ParentModule>` into a single code path, slightly changing the diagnostic for a failed overlay-style underlying module import.

view details

Brent Royal-Gordon

commit sha f71923778b6ddbb50500744e1460bca96ea35ff5

Add -testable-import-module frontend flag This is just like -import-module, but it does an @testable import. Simple, right? Fixes rdar://66544654.

view details

Brent Royal-Gordon

commit sha 48b866b8fe179faa49f2c407a9920f28539c496c

[NFC] Compare spiGroups in DenseMapInfo This ought to result in more consistent behavior.

view details

Brent Royal-Gordon

commit sha 944ad8845582e9de58745a99cf98dd9ced60864c

[NFC] Improve simple_display for AttributedImport

view details

John McCall

commit sha 4481e3bf358ca06702900ae3b95f25b1e5c43afe

Generalize SWIFT_RUNTIME_EXPORT to work for other runtime libraries. I intend to use this in the _Concurrency library.

view details

Daniel Rodríguez Troitiño

commit sha 169948ff9cae44f0548af1f4f4296c587de62581

Merge pull request #34176 from drodriguez/windows-percent-r-is-bad [windows] Avoid %r for quoting module-cache-path in Windows.

view details

Egor Zhdan

commit sha ec9f5a2311345ab82664512e1f52fdd8adca088d

WinSDK: extract WinNT into a separate submodule

view details

John McCall

commit sha 02907368ede5f43eddcf210bc788d08e1827faaf

Merge pull request #34245 from rjmccall/generalize-export-attributes Generalize SWIFT_RUNTIME_EXPORT to work for other runtime libraries

view details

push time in 8 days

push eventdavezarzycki/llvm-project

Denis Antrushin

commit sha 2b96dcebfae65485859d956954f10f409abaae79

[Statepoints] Allow deopt GC pointer on VReg if gc-live bundle is empty. Currently we allow passing pointers from deopt bundle on VReg only if they were seen in list of gc-live pointers passed on VRegs. This means that for the case of empty gc-live bundle we spill deopt bundle's pointers. This change allows lowering deopt pointers to VRegs in case of empty gc-live bundle. In case of non-empty gc-live bundle, behavior does not change. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D88999

view details

Nikita Popov

commit sha 5e855f1e8056ca0800134469ee82e0ff5ad5af59

[MemCpyOpt] Don't hoist store that's not guaranteed to execute MemCpyOpt can hoist stores while load+store pairs into memcpy. This hoisting can currently result in stores being executed that weren't guaranteed to execute in the original problem. Differential Revision: https://reviews.llvm.org/D89154

view details

Tatiana Shpeisman

commit sha 9909ef292daddccbd3b1154cec173014b847880a

[mlir][scf] Fix a bug in scf::ForOp loop unroll with an epilogue Fixes a bug in formation and simplification of an epilogue loop generated during loop unroll of scf::ForOp (https://bugs.llvm.org/show_bug.cgi?id=46689) Differential Revision: https://reviews.llvm.org/D87583

view details

David Green

commit sha f2741f2aeee5bfed621be67b6c7929e51317d3bc

[TblGen][Scheduling] Fix debug output. NFC This just moves some newlines to the expected places.

view details

David Green

commit sha 6d8eea61b18b5043bb510aa302d4576bbace3069

[AArch64][LV] Move vectorizer test to Transforms/LoopVectorize/AArch64. NFC

view details

Benjamin Kramer

commit sha 0db08e59c9d2d3b004ea61f96d823edff283ed25

[clangd] Map bits/stdint-intn.h and bits/stdint-uintn.h to cstdint. These are private glibc headers containing parts of the implementation of stdint.h.

view details

Alok Kumar Sharma

commit sha 96bd4d34a220359662d21b0a60e74e15c3d19663

[DebugInfo] Support for DWARF attribute DW_AT_rank This patch adds support for DWARF attribute DW_AT_rank. Summary: Fortran assumed rank arrays have dynamic rank. DWARF attribute DW_AT_rank is needed to support that. Testing: unit test cases added (hand-written) check llvm check debug-info Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D89141

view details

David Green

commit sha cb27006a9461b78b3f7e9128af22ba6311665c70

[ARM] Attempt to make Tail predication / RDA more resilient to empty blocks There are a number of places in RDA where we assume the block will not be empty. This isn't necessarily true for tail predicated loops where we have removed instructions. This attempt to make the pass more resilient to empty blocks, not casting pointers to machine instructions where they would be invalid. The test contains a case that was previously failing, but recently been hidden on trunk. It contains an empty block to begin with to show a similar error. Differential Revision: https://reviews.llvm.org/D88926

view details

Nikita Popov

commit sha 329dbdaaafd8d78901c4e0c197cda919fda8e5e6

[MemCpyOpt] Add test for incorrect memset DSE (NFC) We can't shorten the memset if there's a throwing call in between and the destination is non-local.

view details

Florian Hahn

commit sha 2c6fc28aba749e1316ba29999ec5d1f3a44e07df

[SCEV] Add a test case with ULE loop guard.

view details

Florian Hahn

commit sha 2e9fd754b41cba2253c066e9e8a7ab4770432550

[SCEV] Handle ULE in applyLoopGuards. Handle ULE predicate in similar fashion to ULT predicate in applyLoopGuards.

view details

Florian Hahn

commit sha d48b249b71628f3a73540734f50c6aae21828566

[SCEV] Add test cases where the max BTC is imprecise, due to step != 1. Add a test case where we fail to compute a tight max backedge taken count, due to the step being != 1. This is part of the issue with PR40961.

view details

Tim Renouf

commit sha 666ef0db208bb3880115bdc133e72e954ed55300

[AMDGPU] Add gfx602, gfx705, gfx805 targets At AMD, in an internal audit of our code, we found some corner cases where we were not quite differentiating targets enough for some old hardware. This commit is part of fixing that by adding three new targets: * The "Oland" and "Hainan" variants of gfx601 are now split out into gfx602. LLPC (in the GPUOpen driver) and other front-ends could use that to avoid using the shaderZExport workaround on gfx602. * One variant of gfx703 is now split out into gfx705. LLPC and other front-ends could use that to avoid using the shaderSpiCsRegAllocFragmentation workaround on gfx705. * The "TongaPro" variant of gfx802 is now split out into gfx805. TongaPro has a faster 64-bit shift than its former friends in gfx802, and a subtarget feature could be set up for that to take advantage of it. This commit does not make that change; it just adds the target. V2: Add clang changes. Put TargetParser list in order. V3: AMDGCNGPUs table in TargetParser.cpp needs to be in GPUKind order, so fix the GPUKind order. Differential Revision: https://reviews.llvm.org/D88916 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d

view details

Philip Reames

commit sha d89de5a14e5a28a6085f8af136118c4a268d0aa0

Step down from security group Resigning from security group as Azul representative as I have left Azul. Previously communicated via email with security group. Differential Revision: https://reviews.llvm.org/D88933

view details

Michał Górny

commit sha d83cd73e9ddf9ba4cc5754560ef9a2abaaa30749

[lldb] [Process/FreeBSD] Mark methods override in RegisterContext* Differential Revision: https://reviews.llvm.org/D89181

view details

Michał Górny

commit sha 9a37587ee33bcf2fe27b49f48c9ddd8128f8ac13

[lldb] [Process/FreeBSDRemote] Kill process via PT_KILL Use PT_KILL to kill the stopped process. This ensures that the process termination is reported properly and fixes delay/error on killing it. Differential Revision: https://reviews.llvm.org/D89182

view details

Michał Górny

commit sha 8dc2faf642b720c7abad06fd4cea51e6b4333cfe

[lldb] [Process/FreeBSDRemote] Fix double semicolon

view details

Simon Pilgrim

commit sha 803b71233078d979c15bb4dabc9a8459a3567be5

[InstCombine] Add test case showing rotate intrinsic being split by SimplifyDemandedBits Noticed while triaging regression report on D88834

view details

Simon Pilgrim

commit sha f2e08c688e6c3223d14c4817c5ce0b55c03a8d1b

[PowerPC] Add ppc32 funnel shift test coverage

view details

Martin Storsjö

commit sha abaca237c519a406ab00606b0464c32079831803

[lldb] [Windows] Add missing 'override', silencing warnings. NFC. Also remove superfluous 'virtual' in overridden methods.

view details

push time in 8 days

push eventdavezarzycki/llvm-project

David Green

commit sha 6d8eea61b18b5043bb510aa302d4576bbace3069

[AArch64][LV] Move vectorizer test to Transforms/LoopVectorize/AArch64. NFC

view details

Benjamin Kramer

commit sha 0db08e59c9d2d3b004ea61f96d823edff283ed25

[clangd] Map bits/stdint-intn.h and bits/stdint-uintn.h to cstdint. These are private glibc headers containing parts of the implementation of stdint.h.

view details

Alok Kumar Sharma

commit sha 96bd4d34a220359662d21b0a60e74e15c3d19663

[DebugInfo] Support for DWARF attribute DW_AT_rank This patch adds support for DWARF attribute DW_AT_rank. Summary: Fortran assumed rank arrays have dynamic rank. DWARF attribute DW_AT_rank is needed to support that. Testing: unit test cases added (hand-written) check llvm check debug-info Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D89141

view details

David Green

commit sha cb27006a9461b78b3f7e9128af22ba6311665c70

[ARM] Attempt to make Tail predication / RDA more resilient to empty blocks There are a number of places in RDA where we assume the block will not be empty. This isn't necessarily true for tail predicated loops where we have removed instructions. This attempt to make the pass more resilient to empty blocks, not casting pointers to machine instructions where they would be invalid. The test contains a case that was previously failing, but recently been hidden on trunk. It contains an empty block to begin with to show a similar error. Differential Revision: https://reviews.llvm.org/D88926

view details

Nikita Popov

commit sha 329dbdaaafd8d78901c4e0c197cda919fda8e5e6

[MemCpyOpt] Add test for incorrect memset DSE (NFC) We can't shorten the memset if there's a throwing call in between and the destination is non-local.

view details

Florian Hahn

commit sha 2c6fc28aba749e1316ba29999ec5d1f3a44e07df

[SCEV] Add a test case with ULE loop guard.

view details

Florian Hahn

commit sha 2e9fd754b41cba2253c066e9e8a7ab4770432550

[SCEV] Handle ULE in applyLoopGuards. Handle ULE predicate in similar fashion to ULT predicate in applyLoopGuards.

view details

Florian Hahn

commit sha d48b249b71628f3a73540734f50c6aae21828566

[SCEV] Add test cases where the max BTC is imprecise, due to step != 1. Add a test case where we fail to compute a tight max backedge taken count, due to the step being != 1. This is part of the issue with PR40961.

view details

Tim Renouf

commit sha 666ef0db208bb3880115bdc133e72e954ed55300

[AMDGPU] Add gfx602, gfx705, gfx805 targets At AMD, in an internal audit of our code, we found some corner cases where we were not quite differentiating targets enough for some old hardware. This commit is part of fixing that by adding three new targets: * The "Oland" and "Hainan" variants of gfx601 are now split out into gfx602. LLPC (in the GPUOpen driver) and other front-ends could use that to avoid using the shaderZExport workaround on gfx602. * One variant of gfx703 is now split out into gfx705. LLPC and other front-ends could use that to avoid using the shaderSpiCsRegAllocFragmentation workaround on gfx705. * The "TongaPro" variant of gfx802 is now split out into gfx805. TongaPro has a faster 64-bit shift than its former friends in gfx802, and a subtarget feature could be set up for that to take advantage of it. This commit does not make that change; it just adds the target. V2: Add clang changes. Put TargetParser list in order. V3: AMDGCNGPUs table in TargetParser.cpp needs to be in GPUKind order, so fix the GPUKind order. Differential Revision: https://reviews.llvm.org/D88916 Change-Id: Ia901a7157eb2f73ccd9f25dbacec38427312377d

view details

Philip Reames

commit sha d89de5a14e5a28a6085f8af136118c4a268d0aa0

Step down from security group Resigning from security group as Azul representative as I have left Azul. Previously communicated via email with security group. Differential Revision: https://reviews.llvm.org/D88933

view details

Michał Górny

commit sha d83cd73e9ddf9ba4cc5754560ef9a2abaaa30749

[lldb] [Process/FreeBSD] Mark methods override in RegisterContext* Differential Revision: https://reviews.llvm.org/D89181

view details

Michał Górny

commit sha 9a37587ee33bcf2fe27b49f48c9ddd8128f8ac13

[lldb] [Process/FreeBSDRemote] Kill process via PT_KILL Use PT_KILL to kill the stopped process. This ensures that the process termination is reported properly and fixes delay/error on killing it. Differential Revision: https://reviews.llvm.org/D89182

view details

Michał Górny

commit sha 8dc2faf642b720c7abad06fd4cea51e6b4333cfe

[lldb] [Process/FreeBSDRemote] Fix double semicolon

view details

Simon Pilgrim

commit sha 803b71233078d979c15bb4dabc9a8459a3567be5

[InstCombine] Add test case showing rotate intrinsic being split by SimplifyDemandedBits Noticed while triaging regression report on D88834

view details

Simon Pilgrim

commit sha f2e08c688e6c3223d14c4817c5ce0b55c03a8d1b

[PowerPC] Add ppc32 funnel shift test coverage

view details

Martin Storsjö

commit sha abaca237c519a406ab00606b0464c32079831803

[lldb] [Windows] Add missing 'override', silencing warnings. NFC. Also remove superfluous 'virtual' in overridden methods.

view details

Martin Storsjö

commit sha 5d330f435e12d4a7f97cde406d29ce7413f96b47

[lldb] [Windows] Remove unused functions. NFC. These became unused in 51117e3c51754f3732e.

view details

Krzysztof Parzyszek

commit sha 4af6c6bf3c28d2bfb220e7a0226908613f88a1b6

Define splat_vector for ISD::SPLAT_VECTOR in TargetSelectionDAG.td

view details

Simon Pilgrim

commit sha 2c3e4a21f93d5cd93321db08add991f992a64f18

[PowerPC] ReplaceNodeResults - bail on funnel shifts and let generic legalizers deal with it Fixes regression raised on D88834 for 32-bit triple + 64-bit cpu cases (which apparently is a thing).

view details

Simon Pilgrim

commit sha f68d174c16217dd28858af2ce9ce5f33ac8af756

Remove %tmp variables from test cases to appease update_test_checks.py

view details

push time in 8 days

push eventdavezarzycki/swift

Artem Chikin

commit sha 939f547d517a2f9f6906d739dbb9da5a231be8aa

[Build Script] Pass Foundation and Dispatch build directories to the swift-driver build This is required in order to build swift-driver using CMake on Linux

view details

Pavel Yaskevich

commit sha 767c1a0ed6377470c2afdcd2a53281d13e88a099

[ConstraintSystem] NFC: Move `SolutionResult.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha 087906a013ad278deae80c2a64dcfe7a49f41b90

[ConstraintSystem] NFC: Move `OverloadChoice.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha f2614dec4a2fecef64de73e3e6c50df5effc25d3

[ConstraintSystem] NFC: Move `ConstraintLocator.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha ab951c208ab0f9bf8127ee1049dfd7c1174bfa2d

[ConstraintSystem] NFC: Move `ConstraintGraph{Scope}.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha 4954763524b92fcac638efdee3f84233c4dbc9bf

[ConstraintSystem] NFC: Move `CSFix.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha 6ba7ecb7c2d525f1f84dace06336669e37c5556d

[ConstraintSystem] NFC: Move `Constraint.h` to `include/swift/Sema`

view details

Pavel Yaskevich

commit sha 461eafff54b44a59ac4a1f8e1c3ee536b94ff895

[ConstraintSystem] NFC: Move `ConstraintSystem.h` to `include/swift/Sema`

view details

Slava Pestov

commit sha c5e138824544531fdf55935061afea1e999cc4b1

ASTScope: Remove cull()

view details

Slava Pestov

commit sha 89ea51e90ce69e62cd169b453db2e2d4d63b6728

ASTScope: Remove isLocalizable()

view details

Slava Pestov

commit sha ea9f84f66ee9f010cbedb2eff17e956ffe5db450

ASTScope: Remove addSiblingsToScopeTree()

view details

Slava Pestov

commit sha 885f6ebba3c39fe2b097631769b2ac8451e01e82

ASTScope: Rename addChildrenForAllLocalizableAccessorsInSourceOrder()

view details

Slava Pestov

commit sha b720c04f4b8f03dc93a00943ca9c3048f6305d42

ASTScope: Simplify a couple of getSourceRangeOfThisASTNode() methods

view details

Slava Pestov

commit sha 4b0d39c49d96c32f1ec0a1bdc8b54c9ef5c7365f

AST: Clean up and write better comments for source range assertions in addMember()

view details

John McCall

commit sha d8f46ddc3c983511d0f7f6f3972636771b2820fd

Fix a ptrauth test that I broke in #34213. Still not sure how the test run didn't catch this. rdar://70104537

view details

Slava Pestov

commit sha ef26ecfb13754ca9d641bc2081410564ec4d0935

ASTScope: Allocate list of local bindings for BraceStmt in the ASTContext Scopes need to register cleanups for non-trivial ivars in the ASTContext. Instead of doing that here, let's just change the SmallVectors into ArrayRefs. Fixes <rdar://problem/69908937>.

view details

Slava Pestov

commit sha 9bcec37db326bda80d698cc7b74f550c10a3d0ae

Add testcase for rdar://problem/17503169 / https://bugs.swift.org/browse/SR-10069 This now works thanks to ASTScope lookup. Also add a release note.

view details

Nathan Hawes

commit sha be231208f36e91d9b20d8bc52fb8d5012ce1277b

[CodeCompletion][CSGen] Treat ErrorExprs as holes when generating constraints for code completion This lets us still provide member completions when the base expression contains parse errors or unresolved decls e.g. returnsAString(undefined).<complete here>

view details

Doug Gregor

commit sha 98903b7cd2671e9147002b46b391a97885551202

[Concurrency] Add globalActor attribute. The globalActor attribute indicates that a particular type describes a global actor. Global actors allow the notion of actor state isolation to be spread across various declarations throughout a program, rather than being centered around a single actor class. There are useful primarily for existing notions such as "main thread" or subsystems accessed through global/singleton state.

view details

Argyrios Kyrtzidis

commit sha b848bf785dd95350508f7115d32d7f57ff5181d7

[parser lib build] For the "parser lib only" build, avoid building unnecessary llvm libraries that clangBasic brings

view details

push time in 10 days

push eventdavezarzycki/llvm-project

Kadir Cetinkaya

commit sha 2ff44935a5f56f755a4f47ad00ee0dec48e19832

[clangd] Reduce availability of extract function This patch introduces hoisting detection logic into prepare state with a partial AST traversal of the enclosing function. We had some complaints from the users about this code action being almost always available but failing most of the time. Hopefully this should reduce that noise. The latency/correctness tradeoff is a bunch of hand-waving, but at least today we don't have any other actions that are available on selection of statements, so when we get to do the traversal it is quite likely that all the other checks will bail out early. But this is still up for discussion, I am happy to abandon the patch if you believe this is not practical. Differential Revision: https://reviews.llvm.org/D85354

view details

Kadir Cetinkaya

commit sha 6f1a56d37ac6a541f585846ab0734ab0bedc264f

[clangd] Enable partial namespace matches for workspace symbols This will enable queries like "clangd::" to find symbols under clangd namespace, without requiring full "clang::clangd::" qualification. Since Fuzzyfind performs the search under all scopes and only boosts the symbols from relevant namespaces, we might get symbols from non-matching namespaces. This patch chooses to drop those as they clearly do not match the query. Fixes https://github.com/clangd/clangd/issues/550. Differential Revision: https://reviews.llvm.org/D88814

view details

Sam McCall

commit sha 6ee47f552ba7654a0997c8deb71f65d0d91f4a28

[clangd] Fix dead variable, typo. NFC

view details

Bevin Hansson

commit sha 14a217534b791b68ea4e5b85ae98d92846bbd430

[IR] Add Type::getFloatingPointTy. It is possible to get a fltSemantics of a particular Type, but there is no way to produce a Type based on a fltSemantics. This adds the function Type::getFloatingPointTy, which will return the appropriate floating point Type for a given fltSemantics. ConstantFP is modified to use this function instead of implementing it itself. Also some minor refactors to use Type::getFltSemantics instead of a hand-rolled version. Differential Revision: https://reviews.llvm.org/D87512

view details

Bevin Hansson

commit sha 9c26eb8b915e5e20afa7d3e07996ea112c18ccc3

Refactor fixed point conversion test. Differential Revision: https://reviews.llvm.org/D88648

view details

Bevin Hansson

commit sha dd3014f3dc7c1a42614be0488b0ab79bdcce995c

[Fixed Point] Add floating point methods to APFixedPoint. This adds methods to APFixedPoint for converting to and from floating point values. Differential Revision: https://reviews.llvm.org/D85961

view details

Pavel Labath

commit sha 0610a25a85a0a204c994331e1ab275f86010f9ad

[lldb] Delete copy operations on PluginInterface class This is a polymorphic class, copying it is a bad idea. This was not a problem because most classes inheriting from it were deleting their copy operations themselves. However, this enables us to delete those explicit deletions, and ensure noone forgets to add them in the future.

view details

Georgii Rymar

commit sha 73d964646c91975cd2fae00ccf9ce5d3c3c0ba40

[llvm-readelf/obj][test] - Stop using precompiled binary in mips-plt.test This removes the precompiled binary and rewrites test to use YAML. After this change we'll have no more precompiled inputs in `llvm-readobj/ELF/Inputs`. Differential revision: https://reviews.llvm.org/D89097

view details

Esme-Yi

commit sha e9fd8823baf508ff4e96cff9c24bc301ef4d100e

[DAGCombiner] Add decomposition patterns for Mul-by-Imm. Summary: This patch is derived from D87384. In this patch we expand the existing decomposition of mul-by-constant to be more general by implementing 2 patterns: ``` mul x, (2^N + 2^M) --> (add (shl x, N), (shl x, M)) mul x, (2^N - 2^M) --> (sub (shl x, N), (shl x, M)) ``` The conversion will be trigged if the multiplier is a big constant that the target can't use a single multiplication instruction to handle. This is controlled by the hook `decomposeMulByConstant`. More over, the conversion benefits from an ILP improvement since the instructions are independent. A case with the sequence like following also gets benefit since a shift instruction is saved. ``` *res1 = a * 0x8800; *res2 = a * 0x8080; ``` Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D88201

view details

Luís Marques

commit sha 32f2f0d78aa09823fd45464f11db792c23d62e53

[NFC] Fix banner

view details

Christian Sigg

commit sha 701fbe8725f4be067510b43805b68ec614b71518

[mlir] NFC: small improvement to how we print a gpu.launch op. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D89033

view details

Roman Lebedev

commit sha 32cc8f7998abe1824e0832a49b66559471c9b879

[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)

view details

Dávid Bolvanský

commit sha caf28b0a1288eb06720acf11d7ad09186b27b74f

[Diagnostics] Diagnose -Wsizeof-array-div for array of pointers Differential Revision: https://reviews.llvm.org/D87990

view details

Jonas Paulsson

commit sha d851495f2fe614c4c860bda1bd3c80bfbe48360b

[SystemZ] Use LA instead of AGR in eliminateFrameIndex(). Since AGR clobbers CC it should not be used here. Fixes https://bugs.llvm.org/show_bug.cgi?id=47736. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D89034

view details

Roman Lebedev

commit sha 2aeae1617cbe0969630a804945551022f8f63a26

Revert "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)" Buildbots aren't happy, need to investigate. This reverts commit 32cc8f7998abe1824e0832a49b66559471c9b879.

view details

James Molloy

commit sha 8bdbe29519236b0dc6a701deb455440c336f2773

[mlir] Fix bug in computing operation order When attempting to compute a differential orderIndex we were calculating the bailout condition correctly, but then an errant "+ 1" meant the orderIndex we created was invalid. Added test. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D89115

view details

Max Kazantsev

commit sha 225df71951cb7b870d078167de1a375a674c79df

[NFC] Add option to disable IV widening if needed IV widening is sometimes a strictly harmful transform (some examples of this are shown in tests 11, 12 in widen-loop-comp.ll). One of the reasons of this is that sometimes SCEV fails to prove some facts after part of guards has been widened. Though each single such case looks like a bug that can be addressed, it seems that disabling of IV widening may be profitable in some cases. We want to have an option to do so. By default, existing behavior is preserved and IV widening is on.

view details

Nithin Vadukkumchery Rajendrakumar

commit sha 0b4fe8086f03294907180007e7de98c80a83b0d7

[Analyzer] Fix for dereferece of smart pointer after branching on unknown inner pointer Summary: Enabling warning after dereferece of smart pointer after branching on unknown inner pointer. Reviewers: NoQ, Szelethus, vsavchenko, xazax.hun Reviewed By: NoQ Subscribers: martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D87043

view details

Jonas Toth

commit sha e517e5cfec90a00a488ad8df901ab9b903ebb966

[clang] improve accuracy of ExprMutAnalyzer This patch extracts the ExprMutAnalyzer changes from https://reviews.llvm.org/D54943 into its own revision for simpler review and more atomic changes. The analysis results are improved. Nested expressions (e.g. conditional operators) are now detected properly. Some edge cases, especially template induced imprecisions are improved upon. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D88088

view details

Roman Lebedev

commit sha 027e7a7721753ea35e339b05dd3439d310c6ecae

Reland "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)" I messed up runlines in the original commit.

view details

push time in 10 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha af1f016436b29ef23eaecd5d909753d3b19f3cf8

[InstCombine] Add lshr(trunc(lshr(x,c1)), c2) -> trunc(lshr(lshr(x,c1),c2)) vector tests

view details

Simon Pilgrim

commit sha 8a836daaa97bc979cd589f5efb060d2223225d8d

[InstCombine] Support lshr(trunc(lshr(x,c1)), c2) -> trunc(lshr(lshr(x,c1),c2)) uniform vector tests FoldShiftByConstant is hardcoded for scalar/uniform outer shift amounts atm so that needs to be fixed first to support non-uniform cases

view details

Tres Popp

commit sha 46dd827232e73135eca1b6f05dc5bebdb277c9db

[mlir] Forward listeners when utilizing scf::IfOp::get*BodyBuilder. Without this PatternRewriting infrastructure does not know of modifications and cannot properly legalize nor rollback changes. Differential Revision: https://reviews.llvm.org/D89129

view details

Jay Foad

commit sha 1dfbc2ea144174f751ed3527e9b453e47a3a38e0

[AMDGPU] Only enable mad/mac legacy f32 patterns if denormals may be flushed Following on from D88890, this makes the newly added patterns conditional on NoFP32Denormals. mad/mac f32 instructions always flush denormals regardless of the MODE register setting, and I believe the legacy variants do the same. Differential Revision: https://reviews.llvm.org/D89123

view details

Arthur Eubanks

commit sha 9c21c6c96630c1dbc9dadbdc55717822acea7b17

[LoopInterchange][NewPM] Port -loop-interchange to NPM Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D89058

view details

Arthur Eubanks

commit sha 0689dab8443fd196c239cfee8a4bfd289a9458bf

[FixIrreducible][NewPM] Port -fix-irreducible to NPM In the NPM, a pass cannot depend on another non-analysis pass. So pin the test that tests that -lowerswitch is run automatically to legacy PM. Reviewed By: sameerds Differential Revision: https://reviews.llvm.org/D89051

view details

Louis Dionne

commit sha 12805513a6a29c58f35240a40200f9fd215ef6c8

[libc++] Remove some workarounds for C++03 We don't support any compiler that doesn't support variadics and rvalue references in C++03 mode, so these workarounds can be dropped. There's still *a lot* of cruft related to these workarounds, but I try to tackle a bit of it here and there.

view details

Louis Dionne

commit sha a3a24316087d0e1b4db0b8fee19cdee8b7968032

[clang] Don't look into <sysroot> for C++ headers if they are found alongside the toolchain Currently, Clang looks for libc++ headers alongside the installation directory of Clang, and it also adds a search path for headers in the -isysroot. This is problematic if headers are found in both the toolchain and in the sysroot, since #include_next will end up finding the libc++ headers in the sysroot instead of the intended system headers. This patch changes the logic such that if the toolchain contains libc++ headers, no C++ header paths are added in the sysroot. However, if the toolchain does *not* contain libc++ headers, the sysroot is searched as usual. This should not be a breaking change, since any code that previously relied on some libc++ headers being found in the sysroot suffered from the #include_next issue described above, which renders any libc++ header basically useless. Differential Revision: https://reviews.llvm.org/D89001

view details

Louis Dionne

commit sha c778f6c4f9d511023c0d71b9e14a90e60445d314

[libc++] Clean up logic around aligned/sized allocation and deallocation Due to the need to support compilers that implement builtin operator new/delete but not their align_val_t overloaded versions, there was a lot of complexity. By assuming that a compiler that supports the builtin new/delete operators also supports their align_val_t overloads, the code can be simplified quite a bit. Differential Revision: https://reviews.llvm.org/D88301

view details

Giorgis Georgakoudis

commit sha 3a6bfcf2f902341bb618c4d5e06b2b10d9f02c72

[OpenMPOpt] Merge parallel regions There are cases that generated OpenMP code consists of multiple, consecutive OpenMP parallel regions, either due to high-level programming models, such as RAJA, Kokkos, lowering to OpenMP code, or simply because the programmer parallelized code this way. This optimization merges consecutive parallel OpenMP regions to: (1) reduce the runtime overhead of re-activating a team of threads; (2) enlarge the scope for other OpenMP optimizations, e.g., runtime call deduplication and synchronization elimination. This implementation defensively merges parallel regions, only when they are within the same BB and any in-between instructions are safe to execute in parallel. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D83635

view details

Jonas Devlieghere

commit sha 5d501096ca1fae74f910411cfeb0491d94c635b7

[lldb] Update docs with new buildbot URLs Buildbot got upgraded and now the (LLDB) builders have different URLs.

view details

Simon Pilgrim

commit sha 191fbda5d2a5ceb4b5af894d987a69537b8431b4

[ARM][MIPS] Add funnel shift test coverage Based on offline discussions regarding D89139 and D88783 - we want to make sure targets aren't doing anything particularly dumb Tests copied from aarch64 which has a mixture of general, legalization and special case tests

view details

Arthur Eubanks

commit sha 2218e6d0a873f6bad4c4cdd5bccbdc0ae6f4c760

[BPF] Make BPFAbstractMemberAccessPass required Or else on optnone functions we get the following during instruction selection: fatal error: error in backend: Cannot select: intrinsic %llvm.preserve.struct.access.index Currently the -O0 pipeline doesn't properly run passes registered via TargetMachine::registerPassBuilderCallbacks(), so don't add that RUN line yet. That will be fixed after this. Reviewed By: yonghong-song Differential Revision: https://reviews.llvm.org/D89083

view details

Louis Dionne

commit sha 4abb519619694de12e401de5454a6eed5c1384ea

[libc++] NFCI: Define small methods of basic_stringstream inline It greatly increases readability because defining the methods out-of-line involves a ton of boilerplate template declarations.

view details

Louis Dionne

commit sha e0d66ccf068752b7d194bb231993f171ba23d830

[libc++] Rename LIBCXX_ENABLE_DEBUG_MODE to LIBCXX_ENABLE_DEBUG_MODE_SUPPORT To make it clearer this is about whether the library supports the debug mode at all, not whether the debug mode is enabled. Per comment by Nico Weber on IRC.

view details

Louis Dionne

commit sha 877667287fa5515d525edfee169b18207b342cd5

[libc++] Fixup a missing occurrence of LIBCXX_ENABLE_DEBUG_MODE

view details

Nikita Popov

commit sha 466c8296f20f5940fc282b228e28408b7c4d7d9b

[MemCpyOpt] Add test for incorrectly hoisted store (NFC)

view details

Craig Topper

commit sha 662024df331bd1f1a206678435e51232683e3cf6

[X86] Don't copy kill flag when expanding LCMPXCHG16B_SAVE_RBX The expansion code creates a copy to RBX before the real LCMPXCHG16B. It's possible this copy uses a register that is also used by the real LCMPXCHG16B. If we set the kill flag on the use in the copy, then we'll fail the machine verifier on the use on the LCMPXCHG16B. Differential Revision: https://reviews.llvm.org/D89151

view details

Craig Topper

commit sha f34bb06935aa3bab353d70d515b767fdd2f5625c

[X86] When expanding LCMPXCHG16B_NO_RBX in EmitInstrWithCustomInserter, directly copy address operands instead of going through X86AddressMode. I suspect getAddressFromInstr and addFullAddress are not handling all addresses cases properly based on a report from MaskRay. So just copy the operands directly. This should be more efficient anyway.

view details

Scott Linder

commit sha 40cef5a00eb83f44e946912b74be83e8dc02effb

[clang] Add a test for CGDebugInfo treatment of blocks There doesn't seem to be a direct test of this, and I'm planning to make future changes which will affect it. I'm not particularly familiar with the blocks extension, so suggestions for better tests are welcome. Differential Revision: https://reviews.llvm.org/D88754

view details

push time in 10 days

push eventdavezarzycki/swift

Argyrios Kyrtzidis

commit sha 771738c1eb7f55196ad4443eaa24abce85de11f2

[utils/build-parser-lib] Add '--no-install' option to skip installing.

view details

Argyrios Kyrtzidis

commit sha a665ba632a21bc4479c8410433c5b6af713d0def

Merge pull request #34248 from akyrtzi/build-parser-lib-no-install [utils/build-parser-lib] Add '--no-install' option to skip installing.

view details

push time in 11 days

push eventdavezarzycki/llvm-project

Christian Sigg

commit sha 701fbe8725f4be067510b43805b68ec614b71518

[mlir] NFC: small improvement to how we print a gpu.launch op. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D89033

view details

Roman Lebedev

commit sha 32cc8f7998abe1824e0832a49b66559471c9b879

[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)

view details

Dávid Bolvanský

commit sha caf28b0a1288eb06720acf11d7ad09186b27b74f

[Diagnostics] Diagnose -Wsizeof-array-div for array of pointers Differential Revision: https://reviews.llvm.org/D87990

view details

Jonas Paulsson

commit sha d851495f2fe614c4c860bda1bd3c80bfbe48360b

[SystemZ] Use LA instead of AGR in eliminateFrameIndex(). Since AGR clobbers CC it should not be used here. Fixes https://bugs.llvm.org/show_bug.cgi?id=47736. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D89034

view details

Roman Lebedev

commit sha 2aeae1617cbe0969630a804945551022f8f63a26

Revert "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)" Buildbots aren't happy, need to investigate. This reverts commit 32cc8f7998abe1824e0832a49b66559471c9b879.

view details

James Molloy

commit sha 8bdbe29519236b0dc6a701deb455440c336f2773

[mlir] Fix bug in computing operation order When attempting to compute a differential orderIndex we were calculating the bailout condition correctly, but then an errant "+ 1" meant the orderIndex we created was invalid. Added test. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D89115

view details

Max Kazantsev

commit sha 225df71951cb7b870d078167de1a375a674c79df

[NFC] Add option to disable IV widening if needed IV widening is sometimes a strictly harmful transform (some examples of this are shown in tests 11, 12 in widen-loop-comp.ll). One of the reasons of this is that sometimes SCEV fails to prove some facts after part of guards has been widened. Though each single such case looks like a bug that can be addressed, it seems that disabling of IV widening may be profitable in some cases. We want to have an option to do so. By default, existing behavior is preserved and IV widening is on.

view details

Nithin Vadukkumchery Rajendrakumar

commit sha 0b4fe8086f03294907180007e7de98c80a83b0d7

[Analyzer] Fix for dereferece of smart pointer after branching on unknown inner pointer Summary: Enabling warning after dereferece of smart pointer after branching on unknown inner pointer. Reviewers: NoQ, Szelethus, vsavchenko, xazax.hun Reviewed By: NoQ Subscribers: martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D87043

view details

Jonas Toth

commit sha e517e5cfec90a00a488ad8df901ab9b903ebb966

[clang] improve accuracy of ExprMutAnalyzer This patch extracts the ExprMutAnalyzer changes from https://reviews.llvm.org/D54943 into its own revision for simpler review and more atomic changes. The analysis results are improved. Nested expressions (e.g. conditional operators) are now detected properly. Some edge cases, especially template induced imprecisions are improved upon. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D88088

view details

Roman Lebedev

commit sha 027e7a7721753ea35e339b05dd3439d310c6ecae

Reland "[NFC][SCEV] Improve tests for ptrtoint modelling (D88806)" I messed up runlines in the original commit.

view details

Sam McCall

commit sha 7530b254e93a18991a86d145eff066fbe88d6164

[clangd] Make the tweak filter a parameter to enumerateTweaks. NFC (Required for CodeActionContext.only) Differential Revision: https://reviews.llvm.org/D88724

view details

Ben Dunbobbin

commit sha 4eb627ed96e3f2f9f24aec8a0654ce5204874bb8

first upstream review

view details

Ben Dunbobbin

commit sha a9f1bb92bfb1efc005b53bf9ea18ad5e902386fc

Revert "first upstream review" Pushed by accident :( This reverts commit 4eb627ed96e3f2f9f24aec8a0654ce5204874bb8.

view details

Ben Dunbobbin

commit sha bb148ad426f8c7e6a6f968d54796f872685a00b2

[windows-itanium] make dllimport/export handling closer to MS behavior Differential Revision: https://reviews.llvm.org/D86828

view details

Konstantin Zhuravlyov

commit sha b581c5a42f052d4d02f1152d0e1ff2d54668e6a0

Regenerate ClangCommandLineReference.rst Differential Revision: https://reviews.llvm.org/D89091

view details

Martin Storsjö

commit sha 1dbfd87319cf3a7138292253ff086ee8fe1d0a76

[LLD] [ELF] Fix the help listing for the wrap option. NFC. This option just takes a single symbol name per invocation of the option. Differential Revision: https://reviews.llvm.org/D89007

view details

Simon Pilgrim

commit sha 2efcb6438a8184a3d5bb1b5bafc35306530a2773

[InstCombine] Add nonuniform/undef vector tests for shift(binop(shift(x,c1),y),c2) patterns

view details

Stephan Herhut

commit sha 366d8435b41dcc01013c507681523c65cdee2180

[mlir][gpu] Fix bug in kernel outlining The updated version of kernel outlining did not handle cases correctly where an operand of a candidate for sinking itself was defined by an operation that is a sinking candidate. In such cases, it could happen that sunk operations were inserted in the wrong order, breaking ssa properties. Differential Revision: https://reviews.llvm.org/D89112

view details

Simon Pilgrim

commit sha 556316cf724e5a2c569f07a5e04d27e2ff1a6c66

[InstCombine] foldShiftOfShiftedLogic - replace cast<BinaryOperator> with m_BinOp matcher. NFCI. Allows us to drop the !isa<ConstantExpr> check.

view details

Alexander Kornienko

commit sha fe4715c47f9c02a83b339c12067f1d27a3115fe4

Remove old create(MainFile)?IncludeInsertion overloads Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D89117

view details

push time in 11 days

push eventdavezarzycki/llvm-project

Alexey Baturo

commit sha 7ce4dfb4dd2ca431f17b62ef563cc3b2737c677e

[RISCV][ASAN] support code for architecture-specific parts of asan [9/11] patch series to port ASAN for riscv64 Depends On D87579 Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D87580

view details

Mark de Wever

commit sha 1113fbf44c2250621548e278d2a1e11ab2b2d63d

[CodeGen] Improve likelihood branch weights Bruno De Fraine discovered some issues with D85091. The branch weights generated for `logical not` and `ternary conditional` were wrong. The `logical and` and `logical or` differed from the code generated of `__builtin_predict`. Adjusted the generated code for the likelihood to match `__builtin_predict`. The patch is based on Bruno's suggestions. Differential Revision: https://reviews.llvm.org/D88363

view details

Anatoly Parshintsev

commit sha a566f0525a692e6e696add6f369edab979d6f300

[RISCV][ASAN] instrumentation pass now uses proper shadow offset [10/11] patch series to port ASAN for riscv64 Depends On D87580 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D87581

view details

Simon Pilgrim

commit sha e4e5c42896df5ed61a98926ea42f5b1ab734e1c4

[X86][SSE] isTargetShuffleEquivalent - ensure shuffle inputs are the correct size. Preliminary patch for the next stage of PR45974 - we don't want to be creating 'padded' vectors on-the-fly at all in combineX86ShufflesRecursively, and only pad the source inputs if we have a definite match inside combineX86ShuffleChain. This means that the inputs to combineX86ShuffleChain might soon be smaller than the final root value type, so we should ensure that isTargetShuffleEquivalent only matches with the inputs if they are the correct size.

view details

Nikita Popov

commit sha 2c48dd7c3ac5f8a0287d1fc7455d45d755d664aa

[MemCpyOpt] Add additional call slot tests (NFC) The case of a destination read between call and memcpy was not covered anywhere (but is handled correctly). However, a potentially throwing call between the call and the memcpy appears to be miscompiled.

view details

Sanjay Patel

commit sha 2ccbf3dbd5bac9d4fea8b67404b4c6b006d4adbe

[SDAG] fold x * 0.0 at node creation time In the motivating case from https://llvm.org/PR47517 we create a node that does not get constant folded before getNegatedExpression is attempted from some other node, and we crash. By moving the fold into SelectionDAG::simplifyFPBinop(), we get the constant fold sooner and avoid the problem.

view details

Esme-Yi

commit sha e3475f5b91c8dc3142b90b2bb4a1884d6e8d8c2c

[PowerPC] Add builtins for xvtdiv(dp|sp) and xvtsqrt(dp|sp). Summary: This patch implements the builtins for xvtdivdp, xvtdivsp, xvtsqrtdp, xvtsqrtsp. The instructions correspond to the following builtins: int vec_test_swdiv(vector double v1, vector double v2); int vec_test_swdivs(vector float v1, vector float v2); int vec_test_swsqrt(vector double v1); int vec_test_swsqrts(vector float v1); This patch depends on D88274, which fixes the bug in copying from CRRC to GPRC/G8RC. Reviewed By: steven.zhang, amyk Differential Revision: https://reviews.llvm.org/D88278

view details

Roman Lebedev

commit sha aaae13d0c29ec2a20f93e6adb9d9b5c2656d2af6

[NFC][clang][codegen] Autogenerate a few ARM SVE tests that are being affected by an upcoming patch

view details

Florian Hahn

commit sha f5fe7abe8a8c8150b7b305bae963b429f15ea217

[VPlan] Account for removed users in replaceAllUsesWith. Make sure we do not iterate using an invalid iterator. Another small fix/step towards traversing the def-use chains in VPlan.

view details

Florian Hahn

commit sha 357bbaab666b212c5bfb65df80e76aace5367eff

[VPlan] Add VPRecipeBase::toVPUser helper (NFC). This adds a helper to convert a VPRecipeBase pointer to a VPUser, for recipes that inherit from VPUser. Once VPRecipeBase directly inherits from VPUser this helper can be removed.

view details

Craig Topper

commit sha 6c6cd5f8a9750865800ce26bdeacd84533335db3

[X86] Consolidate wide Key Locker intrinsics into the same header as the other Key Locker intrinsics.

view details

Craig Topper

commit sha 28595cbbeb2cc75584410b8b974f67ec99a853f2

[X86] Synchronize the loadiwkey builtin operand order with gcc version.

view details

Craig Topper

commit sha 230c57b0bd8321085a5e0339baf37b509d5c76f6

[X86] Synchronize the encodekey builtins with gcc. Don't assume void* is 16 byte aligned. We were taking multiple pointer arguments in the builtin. gcc accepts a single void*. The cast from void* to _m128i* caused the IR generation to assume the pointer was aligned. Instead make the builtin take a single void*, emit i8* GEPs to adjust then cast to <2 x i64>* and perform a store with align of 1.

view details

Craig Topper

commit sha a02b449bb1556fe0f17b86eaa69f6bcda945d123

[X86] Sync AESENC/DEC Key Locker builtins with gcc. For the wide builtins, pass a single input and output pointer to the builtins. Emit the GEPs and input loads from CGBuiltin.

view details

LLVM GN Syncbot

commit sha 955b926b0b37ee3f56d32a90702cea9878eb9c78

[gn build] Port 6c6cd5f8a97

view details

Fangrui Song

commit sha c36d441b6b64e412a975adb1401657870588563c

[SDA] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off builds

view details

Martin Storsjö

commit sha b4288f278a254e597295001f7e544b680b54e61a

[X86] Remove an accidentally added file. NFC. This file seems to have been accidentally added as part of commit 413577a8790407d75ba834fa5668c2632fe1851e.

view details

Nikita Popov

commit sha 22664a325167086260aa2d1ff629686020f2b27d

[MemCpyOpt] Don't use array allocas in tests (NFC) Apparently querying dereferenceability of array allocations is being intentionally penalized (https://reviews.llvm.org/D41398), so avoid using them in tests.

view details

Mehdi Amini

commit sha f05173d0bfc268530afd9fb9622caf7f1db5f8d6

Implement callee/caller type checking for llvm.call This aligns the behavior with the standard call as well as the LLVM verifier. Reviewed By: ftynse, dcaballe Differential Revision: https://reviews.llvm.org/D88362

view details

Nikita Popov

commit sha 8aaa73134954b5e5ad51631665fd188f38ded75e

[MemCpyOpt] Add tests for call slot optimization with GEPs (NFC)

view details

push time in 11 days

push eventdavezarzycki/llvm-project

Alexey Baturo

commit sha 51beb0c80dc45d45efada5cd6e3a13c9fef0805c

[RISCV][ASAN] unwind fixup [8/11] patch series to port ASAN for riscv64 Depends On D87577 Reviewed By: eugenis, vitalybuka Differential Revision: https://reviews.llvm.org/D87579

view details

Roman Lebedev

commit sha 03bd5198b6f7d9f49d72e6516d813a206f3b6d0d

[OldPM] Pass manager: run SROA after (simple) loop unrolling I have stumbled into this pretty accidentally, when rewriting some spaghetti-like code into something more structured, which involved using some `std::array<>`s. And to my surprise, the `alloca`s remained, causing about `+160%` perf regression. https://llvm-compile-time-tracker.com/compare.php?from=bb6f4d32aac3eecb51909f4facc625219307ee68&to=d563e66f40f9d4d145cb2050e41cb961e2b37785&stat=instructions suggests that this has geomean compile-time cost of `+0.08%`. Note that D68593 / cecc0d27ad58c0aed8ef9ed99bbf691e137a0f26 already did this chage for NewPM, but left OldPM in a pessimized state. This fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40011 | PR40011 ]], [[ https://bugs.llvm.org/show_bug.cgi?id=42794 | PR42794 ]] and probably some other reports. Reviewed By: nikic, xbolva00 Differential Revision: https://reviews.llvm.org/D87972

view details

Alexey Baturo

commit sha 7ce4dfb4dd2ca431f17b62ef563cc3b2737c677e

[RISCV][ASAN] support code for architecture-specific parts of asan [9/11] patch series to port ASAN for riscv64 Depends On D87579 Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D87580

view details

Mark de Wever

commit sha 1113fbf44c2250621548e278d2a1e11ab2b2d63d

[CodeGen] Improve likelihood branch weights Bruno De Fraine discovered some issues with D85091. The branch weights generated for `logical not` and `ternary conditional` were wrong. The `logical and` and `logical or` differed from the code generated of `__builtin_predict`. Adjusted the generated code for the likelihood to match `__builtin_predict`. The patch is based on Bruno's suggestions. Differential Revision: https://reviews.llvm.org/D88363

view details

Anatoly Parshintsev

commit sha a566f0525a692e6e696add6f369edab979d6f300

[RISCV][ASAN] instrumentation pass now uses proper shadow offset [10/11] patch series to port ASAN for riscv64 Depends On D87580 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D87581

view details

Simon Pilgrim

commit sha e4e5c42896df5ed61a98926ea42f5b1ab734e1c4

[X86][SSE] isTargetShuffleEquivalent - ensure shuffle inputs are the correct size. Preliminary patch for the next stage of PR45974 - we don't want to be creating 'padded' vectors on-the-fly at all in combineX86ShufflesRecursively, and only pad the source inputs if we have a definite match inside combineX86ShuffleChain. This means that the inputs to combineX86ShuffleChain might soon be smaller than the final root value type, so we should ensure that isTargetShuffleEquivalent only matches with the inputs if they are the correct size.

view details

Nikita Popov

commit sha 2c48dd7c3ac5f8a0287d1fc7455d45d755d664aa

[MemCpyOpt] Add additional call slot tests (NFC) The case of a destination read between call and memcpy was not covered anywhere (but is handled correctly). However, a potentially throwing call between the call and the memcpy appears to be miscompiled.

view details

Sanjay Patel

commit sha 2ccbf3dbd5bac9d4fea8b67404b4c6b006d4adbe

[SDAG] fold x * 0.0 at node creation time In the motivating case from https://llvm.org/PR47517 we create a node that does not get constant folded before getNegatedExpression is attempted from some other node, and we crash. By moving the fold into SelectionDAG::simplifyFPBinop(), we get the constant fold sooner and avoid the problem.

view details

Esme-Yi

commit sha e3475f5b91c8dc3142b90b2bb4a1884d6e8d8c2c

[PowerPC] Add builtins for xvtdiv(dp|sp) and xvtsqrt(dp|sp). Summary: This patch implements the builtins for xvtdivdp, xvtdivsp, xvtsqrtdp, xvtsqrtsp. The instructions correspond to the following builtins: int vec_test_swdiv(vector double v1, vector double v2); int vec_test_swdivs(vector float v1, vector float v2); int vec_test_swsqrt(vector double v1); int vec_test_swsqrts(vector float v1); This patch depends on D88274, which fixes the bug in copying from CRRC to GPRC/G8RC. Reviewed By: steven.zhang, amyk Differential Revision: https://reviews.llvm.org/D88278

view details

Roman Lebedev

commit sha aaae13d0c29ec2a20f93e6adb9d9b5c2656d2af6

[NFC][clang][codegen] Autogenerate a few ARM SVE tests that are being affected by an upcoming patch

view details

Florian Hahn

commit sha f5fe7abe8a8c8150b7b305bae963b429f15ea217

[VPlan] Account for removed users in replaceAllUsesWith. Make sure we do not iterate using an invalid iterator. Another small fix/step towards traversing the def-use chains in VPlan.

view details

Florian Hahn

commit sha 357bbaab666b212c5bfb65df80e76aace5367eff

[VPlan] Add VPRecipeBase::toVPUser helper (NFC). This adds a helper to convert a VPRecipeBase pointer to a VPUser, for recipes that inherit from VPUser. Once VPRecipeBase directly inherits from VPUser this helper can be removed.

view details

Craig Topper

commit sha 6c6cd5f8a9750865800ce26bdeacd84533335db3

[X86] Consolidate wide Key Locker intrinsics into the same header as the other Key Locker intrinsics.

view details

Craig Topper

commit sha 28595cbbeb2cc75584410b8b974f67ec99a853f2

[X86] Synchronize the loadiwkey builtin operand order with gcc version.

view details

Craig Topper

commit sha 230c57b0bd8321085a5e0339baf37b509d5c76f6

[X86] Synchronize the encodekey builtins with gcc. Don't assume void* is 16 byte aligned. We were taking multiple pointer arguments in the builtin. gcc accepts a single void*. The cast from void* to _m128i* caused the IR generation to assume the pointer was aligned. Instead make the builtin take a single void*, emit i8* GEPs to adjust then cast to <2 x i64>* and perform a store with align of 1.

view details

Craig Topper

commit sha a02b449bb1556fe0f17b86eaa69f6bcda945d123

[X86] Sync AESENC/DEC Key Locker builtins with gcc. For the wide builtins, pass a single input and output pointer to the builtins. Emit the GEPs and input loads from CGBuiltin.

view details

LLVM GN Syncbot

commit sha 955b926b0b37ee3f56d32a90702cea9878eb9c78

[gn build] Port 6c6cd5f8a97

view details

Fangrui Song

commit sha c36d441b6b64e412a975adb1401657870588563c

[SDA] Fix -Wunused-function in -DLLVM_ENABLE_ASSERTIONS=off builds

view details

Martin Storsjö

commit sha b4288f278a254e597295001f7e544b680b54e61a

[X86] Remove an accidentally added file. NFC. This file seems to have been accidentally added as part of commit 413577a8790407d75ba834fa5668c2632fe1851e.

view details

Nikita Popov

commit sha 22664a325167086260aa2d1ff629686020f2b27d

[MemCpyOpt] Don't use array allocas in tests (NFC) Apparently querying dereferenceability of array allocations is being intentionally penalized (https://reviews.llvm.org/D41398), so avoid using them in tests.

view details

push time in 11 days

push eventdavezarzycki/swift

Antoine Cœur

commit sha 4c30f8bd6de5487603ed645cc4dd2a2983f4f0ba

appendingPathComponent(:isDirectory:) should account for isDirectory

view details

Xiaodi Wu

commit sha 26cda274ca78b1df246521ba1eeea33285b57d5f

[stdlib] Simplify 'BinaryFloatingPoint.init?<T: BinaryFloatingPoint>(exactly: T)'

view details

Mike Ash

commit sha ece0399d601eec1069131f465bdbe7e16f4c6a50

[Runtime] Have ConcurrentReadableHashMap use 1-byte or 2-byte indices when possible.

view details

Arnold Schwaighofer

commit sha 8e8c57caf59f043b4046ad0df6e7c358bcac9903

SIL type lowering: Compute IsTypeExpansionSensitive and use it instead of TypeBase's hasOpaqueArchetypePropertiesOrCases A type is IsTypeExpansionSensitive if it contains an opaque result type that influences how the type is lowered. This could be because the type mentions an opaque archetype and therefore we would look through to the underlying type depending on the type expansion and could get a different SIL type. For example '() -> out some P' could lower to '() -> @out Int'. Or this could be because when we lower an aggregate type some of its fields are opaque types that could be looked through and therefore the aggregate has different lowering (e.g address vs. loadable) in different type expansion contexts. By replacing it this change also fixes an infinite recursion in hasOpaqueArchetypePropertiesOrCases. rdar://68798822

view details

Cassie Jones

commit sha e01893cb56f989b20ba4309286450105211f031e

[build-script] Add a flag for sccache This adds a flag to enable sccache in order to simplify the build-script invocation, particularly for new contributors.

view details

Cassie Jones

commit sha 6d92486c9a6ddc8b71f7c842d546ae3599be5c30

[build-script] Add SWIFT_ prefix to USE_SCCACHE env var

view details

Nate Chandler

commit sha 4cfadfae00f31fc66581ad270176e4916682bf51

[NFC] Documented IRGenFunction::IndirectReturn.

view details

Nate Chandler

commit sha 607772aaa21ce58db04236cb817b5958c72b2123

[Runtime] Stubbed entry points for task de/alloc.

view details

Cassie Jones

commit sha 7ef9b3287ab097ce2bdd1ab70f9ed9df20d39ff1

[build-script] Fix CMake sccache test

view details

Cassie Jones

commit sha b5247d2c8f9c4133ba165370d92370600cf67ece

Fix formatting issue

view details

Nate Chandler

commit sha 59bb1fc23592bcc4eb18bca32dcbff9de4b7e751

[Concurrency] Pass "async" into SILFunctionTypes. This reverts commit 3a48396110d2639d7b90970bc0369a559adbc0c1.

view details

Doug Gregor

commit sha e36011def493dceec79381f2e4a051f1f1e610fe

[Type checker] Delay the diagnosis of missing witnesses further. The handling of "global" missing witnesses would diagnose a missing witness (showing "almost" matches) and then, later, provide the Fix-It to add the declaration if the user wants it. Delay the diagnostic part until later, when we add the missing witness. While here, correct an existing issue with memory corruption that occurs because we would diagnose some of these witnesses, then clear a "global" witness list, while still iterating through parts of that list.

view details

Doug Gregor

commit sha fe4a8bb9f926684d2621fba13cc326580380bcbc

[Clang importer] Allow both sync and async imports with the same name. The Clang importer was filtering out cases where the same declaration is imported twice under the same name, which can now happen when one is synchronous and one is asynchronous. This happens when, e.g., an Objective-C class provides both a completion-hander-based asynchronous version and a synchronous version, and the Swift names line up after the completion-handler parameter is dropped. Stop filtering these out. Overload resolution is capable of handling synchronous/asynchronous overloading based on context.

view details

Doug Gregor

commit sha 50f870566a1a35b4073adb1bce078451790b74a5

Handle conformance with multiple protocol requirements with the same selector. When concurrency is enabled, the same Objective-C method on a protocol can be imported as two different protocol requirements, both of which have the same selector. When performing conformance checking, only treat a given @objc protocol requirement as "unsatisfied" by a conformance if none of the requirements with the same Objective-C selector (+ instance/class designation) are satisfied.

view details

Doug Gregor

commit sha 591e6e89e259818a8dd56bbba41057e776d92c8a

[Concurrency] Only infer @asyncHandler for witnesses within actor classes. Actor classes are by definition new code, so only perform inference of @asyncHandler from a protocol requirement to witnesses when those witnesses are within an actor class. This is partly because @asyncHandler might not have reasonable semantics outside of actor classes anywhere (where would you execute the detached task?), and partly because it is a source-compatibility problem due to the combination of... 1) Inferring @asyncHandler on imported Objective-C protocol methods for existing protocols, 2) Inferring @asyncHandler from those protocol methods to an existing method in a class that conforms to that protocol, and 3) Using an API that is now overloaded for both synchronous and asynchronous callers will end up preferring the asynchronous version, then fail due to a missing "await". The individual steps here are all reasonable, but the result is a source break, so back off on @asyncHandler inference for witnesses outside of actor classes. New code gets the more-asynchronous behavior for free.

view details

Doug Gregor

commit sha bb066b6fa68f06885c84838be7f7e264d70bc0e6

[Concurrency] Make actor-isolated protocol witnesses an error. With actor isolation checking for protocol witnesses moved out of the witness-matching phase, move the corresponding diagnostics from notes (that would have been on the "type does not conform" error) to freestanding errors.

view details

Butta

commit sha f7576a7bef5ca33c5598ad6b63a37f6d4c69aa98