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 51830

The Swift Programming Language

apple/swift-evolution 11155

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

apple/swift-package-manager 7754

The Package Manager for the Swift Programming Language

llvm/llvm-project 4810

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 3888

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

apple/swift-corelibs-xctest 822

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

apple/swift-lldb 643

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

apple/llvm-project 198

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

Saleem Abdulrasool

commit sha 63c8c005d7b2ecaa85e77725113241f562adb73b

test: add a ODR violation check for the static standard library The static version of the standard library was leaking symbols in the `llvm::` namespace which would result in ODR violations were the artifact linking against `LLVMSupport` (via another dependency). In particular, `llvm::SmallVector` and `llvm::StringSwitch` symbols were being leaked. This adds a test case specifically for the static variant of the library. The dynamic variant of the library is already tested in a separate test.

view details

Doug Gregor

commit sha fa2d4dc6e62b4891ad50d0e74c1826de87cf9d39

[AST] DoStmt always contains a BraceStmt

view details

Doug Gregor

commit sha 2fc2b157538f6ace81e1ed3c7d7d08e175852727

[Function builders] Align buildDo() implementation with the pitch. Rather than passing the result of buildBlock() into buildDo(), follow the (better) design from the function builders pitch by passing in the components from the block directly into buildDo(). This means that buildDo() will need to take separate parameters for each component, but allows buildDo() to treat the components separately.

view details

Doug Gregor

commit sha 014466de5ab32254252491ae84106ab77a9ab22e

[Function builders] Update test case

view details

Ben Rimmington

commit sha 5942d0635c844f1d59d6d933a0059414687d97fe

Update README.md to fix CentOS 8 build status icon

view details

Mishal Shah

commit sha adcd312e6c2df05c0856e64211dfb6496cee08a9

Merge pull request #32104 from benrimmington/readme-build-status Update README.md to fix CentOS 8 build status icon

view details

Dan Zheng

commit sha a6bb9742fec376151a23341dbbf45166eda548d9

[AutoDiff] NFC: garden tests. (#32102) Remove extraneous code. Clarify test name: test/AutoDiff/SIL/Serialization/differentiable_function_type.swift.

view details

Saleem Abdulrasool

commit sha 50c0534206481bb7eebe1b4639f590a7eb5c07c0

Merge pull request #32078 from compnerd/if-it-isnt-tested-its-broken test: add a ODR violation check for the static standard library

view details

Doug Gregor

commit sha 2f62eb8281fad9bbf9a2c3663cfa6a61f383a7c5

Merge pull request #32100 from DougGregor/function-builders-do-block [Function builders] Align buildDo() implementation with the pitch.

view details

Dan Zheng

commit sha 756788eb95e993176229bcfc95af84b262971687

[AutoDiff upstream] Add forward-mode differentiation runtime tests. (#32106) Forward-mode differentiation development isn't currently prioritized, but upstreaming tests allows us to prevent regressions.

view details

Dan Zheng

commit sha dd645d88d14126af9747fd768f98581cdc729e37

[AutoDiff] Enable .swiftinterface verification for _Differentiation. (#32110) Enable .swiftinterface verification for the _Differentiation module to prevent regressions.

view details

push time in 7 hours

push eventdavezarzycki/llvm-project

Mariya Podchishchaeva

commit sha bd85b7d6688725e854a694f9f3e8baa6a3077a4a

[OpenMP][SYCL] Do not crash on attempt to diagnose unsupported type use Summary: Do not ask size of type if it is dependent. ASTContext doesn't seem expecting this. Reviewers: jdoerfert, ABataev, bader Reviewed By: ABataev Subscribers: yaxunl, guansong, ebevhan, Anastasia, sstefan1, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80829

view details

David Zarzycki

commit sha 1c4238e7a00b28043e209d0b2c0dda76ee5af82e

[libcxx testing] Stop using arbitrary timeouts in one test On a busy and/or slow system, 100ms might not be long enough. Instead, we now use atomic variables to communicate between threads.

view details

Simon Pilgrim

commit sha f5a59bea4ff9369c6dfcf947c7a58a9d570491b9

IPDBRawSymbol.h - reduce StringRef.h include to forward declaration. NFC.

view details

Simon Pilgrim

commit sha f75e91fa131cd91efdb0935d163d8858390f459a

IPDBRawSymbol.h - remove already declared forward declarations. NFC. PDBTypes.h holds most PDB forward declarations already, move IPDBSession in there as well.

view details

Simon Pilgrim

commit sha a8eb06ccffdd3ee1b004be489cf9a970035c523c

Architecture.h - reduce includes to forward declarations. NFC. Move includes to Architecture.cpp.

view details

Simon Pilgrim

commit sha d1765cf1974bdf298d7cec8302013f314a70a032

ArchitectureSet.h - reduce raw_ostream.h include to forward declaration. NFC. Move raw_ostream.h include to ArchitectureSet.cpp.

view details

Simon Pilgrim

commit sha 5a918b7e134cbaa29d272ed38c5dabcecac8aac8

ArchitectureSet.h - add missing <tuple> include. MSVC seems to implicitly include this from <utility> but other toolchains don't

view details

Simon Pilgrim

commit sha 0f461c39df70a0b555745770a445850e39e1dff7

TBEHandler.h - remove unnecessary VersionTuple forward declaration. NFC. We already have to include VersionTuple.h

view details

mydeveloperday

commit sha 50bdd60731130dbde81fa477ba8916c58039d73a

[clang-format] [PR46130] When editing a file with unbalance {} the namespace comment fixer can incorrectly comment the wrong closing brace Summary: https://bugs.llvm.org/show_bug.cgi?id=46130 from Twitter https://twitter.com/ikautak/status/1265998988232159232 I have seen this myself many times.. if you have format on save and you work in an editor where you are constantly saving (:w muscle memory) If you are in the middle of editing and somehow you've missed a { or } in your code, somewhere, often way below where you are at the bottom of your file the namespace comment fixer will have put the namespace on the previous closing brace. This leads to you having to fix up the bottom of the file. This revision prevents that happening by performing an initial pass of the tokens and simply counting the number of `{` and `}` and ensuring they balance. If they don't balance we don't do any namespace fixing as it will likely be unstable and incorrect. Reviewed By: curdeius Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D80830

view details

Simon Pilgrim

commit sha 179f8ad08de07d52dbccd4da339103a4d03937c7

PackedVersion.h - reduce includes to forward declarations. NFC.

view details

Simon Pilgrim

commit sha 9d0bfcec8377acc29e8a9983e8343dba8e7e900d

[SelectionDAG] ComputeNumSignBits - use Valid Min/Max shift amount helpers directly. NFCI. We are calling getValidShiftAmountConstant first followed by getValidMinimumShiftAmountConstant/getValidMaximumShiftAmountConstant if that failed. But both are used in the same way in ComputeNumSignBits and the Min/Max variants call getValidShiftAmountConstant internally anyhow.

view details

Simon Pilgrim

commit sha 63824ad94778c54c4c17210591448af746d092ad

[TargetLowering] SimplifyDemandedBits - remove shift amount clamps from getValidShiftAmountConstant calls. NFC. getValidShiftAmountConstant only returns a value if the shift amount is in range, so we don't need to check it again.

view details

Simon Pilgrim

commit sha e5bc07634d6277bd2e071511d1b826950016972c

SafeStackLayout.cpp - remove includes directly defined in SafeStackLayout.h module header. NFC.

view details

Simon Pilgrim

commit sha 2b881f7911d585086a92fdb57e93109c432be1fb

CriticalAntiDepBreaker.cpp - remove includes directly defined in CriticalAntiDepBreaker.h header. NFC.

view details

Simon Pilgrim

commit sha e6aba43cda848f4a8cfa5ce9f174b77def10e9df

SafeStackColoring.h - reduce Instructions.h include to forward declaration. NFC. SafeStackColoring.cpp - remove includes directly defined in SafeStackColoring.h header. NFC.

view details

Florian Hahn

commit sha d99a1848c4f8ca164c0c0768e10eafc850b2a68a

[BasicAA] Use known lower bounds for index values for size based check. Currently, BasicAA does not exploit information about value ranges of indexes. For example, consider the 2 pointers %a = %base and %b = %base + %stride below, assuming they are used to access 4 elements. If we know that %stride >= 4, we know the accesses do not alias. If %stride is a constant, BasicAA currently gets that. But if the >= 4 constraint is encoded using an assume, it misses the NoAlias. This patch extends DecomposedGEP to include an additional MinOtherOffset field, which tracks the constant offset similar to the existing OtherOffset, which the difference that it also includes non-negative lower bounds on the range of the index value. When checking if the distance between 2 accesses exceeds the access size, we can use this improved bound. For now this is limited to using non-negative lower bounds for indices, as this conveniently skips cases where we do not have a useful lower bound (because it is not constrained). We potential miss out in cases where the lower bound is constrained but negative, but that can be exploited in the future. Reviewers: sanjoy, hfinkel, reames, asbirlea Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D76194

view details

Raphael Isemann

commit sha fd0ab3b3eb88de3fe4792c34b50084595e22d68d

[lldb] Pass -fPIC flag even when DYLIB_ONLY is set Summary: It seems that when we rewrite a few rules to only build a dylib (i.e., when DYLIB_ONLY is set), the rule for setting the CFLAGS for the dylib's object file compilation will no longer work. From what I can see this is because in DYLIB_ONLY mode we pretend to compile the main executable so the DYLIB_OBJECTS scope is actually never used. This patch makes `-fPIC` unstopped if DYLIB_ONLY is set so that -fPIC actually ends up in the CFLAGS for the dylib object file compilation. The test for this is D80798 which only compiles on Linux with this patch. Reviewers: friss, labath Reviewed By: friss Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D80789

view details

zoecarver

commit sha 065bf124fde8fd9d37eba0a387833cdfe9e68d08

[DSE] Remove noop stores in MSSA. Adds a simple fast-path check for the pattern: v = load ptr store v to ptr I took the tests from the bugzilla post, I can add more if needed (but I think these should be sufficent). Refs: https://bugs.llvm.org/show_bug.cgi?id=45795 Differential Revision: https://reviews.llvm.org/D79391

view details

Whitney Tsang

commit sha 7873376bb36b4f9646fbc26d6da88e2edbf796e4

[LoopUnroll] Fix build failure for allyesconfig. Differential Revision: https://reviews.llvm.org/D80477.

view details

Nathan James

commit sha 44119626dedfebe245fe6ce26487949201299d38

[clang-tidy] RenamerClangTidyChecks ignore builtin and command line macros Summary: Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=42635 | readability-identifier-naming option MacroDefinitionCase should ignore macros passed as parameters. ]] Reviewers: aaron.ballman, alexfh, gribozavr2, hokein Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80631

view details

push time in 7 hours

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha f5a59bea4ff9369c6dfcf947c7a58a9d570491b9

IPDBRawSymbol.h - reduce StringRef.h include to forward declaration. NFC.

view details

Simon Pilgrim

commit sha f75e91fa131cd91efdb0935d163d8858390f459a

IPDBRawSymbol.h - remove already declared forward declarations. NFC. PDBTypes.h holds most PDB forward declarations already, move IPDBSession in there as well.

view details

Simon Pilgrim

commit sha a8eb06ccffdd3ee1b004be489cf9a970035c523c

Architecture.h - reduce includes to forward declarations. NFC. Move includes to Architecture.cpp.

view details

Simon Pilgrim

commit sha d1765cf1974bdf298d7cec8302013f314a70a032

ArchitectureSet.h - reduce raw_ostream.h include to forward declaration. NFC. Move raw_ostream.h include to ArchitectureSet.cpp.

view details

Simon Pilgrim

commit sha 5a918b7e134cbaa29d272ed38c5dabcecac8aac8

ArchitectureSet.h - add missing <tuple> include. MSVC seems to implicitly include this from <utility> but other toolchains don't

view details

Simon Pilgrim

commit sha 0f461c39df70a0b555745770a445850e39e1dff7

TBEHandler.h - remove unnecessary VersionTuple forward declaration. NFC. We already have to include VersionTuple.h

view details

mydeveloperday

commit sha 50bdd60731130dbde81fa477ba8916c58039d73a

[clang-format] [PR46130] When editing a file with unbalance {} the namespace comment fixer can incorrectly comment the wrong closing brace Summary: https://bugs.llvm.org/show_bug.cgi?id=46130 from Twitter https://twitter.com/ikautak/status/1265998988232159232 I have seen this myself many times.. if you have format on save and you work in an editor where you are constantly saving (:w muscle memory) If you are in the middle of editing and somehow you've missed a { or } in your code, somewhere, often way below where you are at the bottom of your file the namespace comment fixer will have put the namespace on the previous closing brace. This leads to you having to fix up the bottom of the file. This revision prevents that happening by performing an initial pass of the tokens and simply counting the number of `{` and `}` and ensuring they balance. If they don't balance we don't do any namespace fixing as it will likely be unstable and incorrect. Reviewed By: curdeius Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D80830

view details

Simon Pilgrim

commit sha 179f8ad08de07d52dbccd4da339103a4d03937c7

PackedVersion.h - reduce includes to forward declarations. NFC.

view details

Simon Pilgrim

commit sha 9d0bfcec8377acc29e8a9983e8343dba8e7e900d

[SelectionDAG] ComputeNumSignBits - use Valid Min/Max shift amount helpers directly. NFCI. We are calling getValidShiftAmountConstant first followed by getValidMinimumShiftAmountConstant/getValidMaximumShiftAmountConstant if that failed. But both are used in the same way in ComputeNumSignBits and the Min/Max variants call getValidShiftAmountConstant internally anyhow.

view details

Simon Pilgrim

commit sha 63824ad94778c54c4c17210591448af746d092ad

[TargetLowering] SimplifyDemandedBits - remove shift amount clamps from getValidShiftAmountConstant calls. NFC. getValidShiftAmountConstant only returns a value if the shift amount is in range, so we don't need to check it again.

view details

Simon Pilgrim

commit sha e5bc07634d6277bd2e071511d1b826950016972c

SafeStackLayout.cpp - remove includes directly defined in SafeStackLayout.h module header. NFC.

view details

Simon Pilgrim

commit sha 2b881f7911d585086a92fdb57e93109c432be1fb

CriticalAntiDepBreaker.cpp - remove includes directly defined in CriticalAntiDepBreaker.h header. NFC.

view details

Simon Pilgrim

commit sha e6aba43cda848f4a8cfa5ce9f174b77def10e9df

SafeStackColoring.h - reduce Instructions.h include to forward declaration. NFC. SafeStackColoring.cpp - remove includes directly defined in SafeStackColoring.h header. NFC.

view details

Florian Hahn

commit sha d99a1848c4f8ca164c0c0768e10eafc850b2a68a

[BasicAA] Use known lower bounds for index values for size based check. Currently, BasicAA does not exploit information about value ranges of indexes. For example, consider the 2 pointers %a = %base and %b = %base + %stride below, assuming they are used to access 4 elements. If we know that %stride >= 4, we know the accesses do not alias. If %stride is a constant, BasicAA currently gets that. But if the >= 4 constraint is encoded using an assume, it misses the NoAlias. This patch extends DecomposedGEP to include an additional MinOtherOffset field, which tracks the constant offset similar to the existing OtherOffset, which the difference that it also includes non-negative lower bounds on the range of the index value. When checking if the distance between 2 accesses exceeds the access size, we can use this improved bound. For now this is limited to using non-negative lower bounds for indices, as this conveniently skips cases where we do not have a useful lower bound (because it is not constrained). We potential miss out in cases where the lower bound is constrained but negative, but that can be exploited in the future. Reviewers: sanjoy, hfinkel, reames, asbirlea Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D76194

view details

Raphael Isemann

commit sha fd0ab3b3eb88de3fe4792c34b50084595e22d68d

[lldb] Pass -fPIC flag even when DYLIB_ONLY is set Summary: It seems that when we rewrite a few rules to only build a dylib (i.e., when DYLIB_ONLY is set), the rule for setting the CFLAGS for the dylib's object file compilation will no longer work. From what I can see this is because in DYLIB_ONLY mode we pretend to compile the main executable so the DYLIB_OBJECTS scope is actually never used. This patch makes `-fPIC` unstopped if DYLIB_ONLY is set so that -fPIC actually ends up in the CFLAGS for the dylib object file compilation. The test for this is D80798 which only compiles on Linux with this patch. Reviewers: friss, labath Reviewed By: friss Subscribers: JDevlieghere Differential Revision: https://reviews.llvm.org/D80789

view details

zoecarver

commit sha 065bf124fde8fd9d37eba0a387833cdfe9e68d08

[DSE] Remove noop stores in MSSA. Adds a simple fast-path check for the pattern: v = load ptr store v to ptr I took the tests from the bugzilla post, I can add more if needed (but I think these should be sufficent). Refs: https://bugs.llvm.org/show_bug.cgi?id=45795 Differential Revision: https://reviews.llvm.org/D79391

view details

Whitney Tsang

commit sha 7873376bb36b4f9646fbc26d6da88e2edbf796e4

[LoopUnroll] Fix build failure for allyesconfig. Differential Revision: https://reviews.llvm.org/D80477.

view details

Nathan James

commit sha 44119626dedfebe245fe6ce26487949201299d38

[clang-tidy] RenamerClangTidyChecks ignore builtin and command line macros Summary: Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=42635 | readability-identifier-naming option MacroDefinitionCase should ignore macros passed as parameters. ]] Reviewers: aaron.ballman, alexfh, gribozavr2, hokein Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80631

view details

Philip Reames

commit sha dfa82f8af446380d033a1d568273e82318ecce0e

[Tests] Convert last statepoint lowering tests to bundle format

view details

Whitney Tsang

commit sha 0fee91a187d98ad68d70fb42dad4451fce172a23

[LoopUnroll] Add a test case for rG7873376bb36b. rG7873376bb36b fixes a build failure for allyesconfig. The problem happened when the single exiting block doesn't dominate the loop latch, then the immediate dominator of the exit block should not be the exiting block after unrolling. As the exiting block of different unrolled iteration can branch to the exit block, and the ith exiting block doesn't dominate (i+1)th exiting block, the immediate dominator of the exit block should not the nearest common dominator of the exiting block and the loop latch of the same iteration. Differential Revision: https://reviews.llvm.org/D80477

view details

push time in 7 hours

push eventdavezarzycki/swift

martinboehme

commit sha e530ef8f775879add40f6a44b1c316510b4e8c57

Update WindowsBuild.md Make the note on needing to adjust `PYTHON_EXECUTABLE` more prominent, and repeat in in the place where that argument actually needs to be adjusted.

view details

Varun Gandhi

commit sha fd56606d5fbd68d6d3ecb4ecdf1aa3e6cd3d0829

[NFC] Remove bits and pieces referring to Ubuntu 14.04 LTS (Trusty Tahr). Ubuntu 20.04 LTS is out now; the last version to support 14.04 was Swift 5.1, so it is ok to delete this.

view details

Slava Pestov

commit sha 6ca148d65ed8ccc46afc8b9e2aabff707a805940

AST: Optimize removeShadowedDecls() Previously, whenever name lookup returned two declarations with the same name, we would compute the canonical type of each one as part of the shadowing check. The canonical type calculation is rather expensive for GenericFunctionTypes since it requires constructing a GenericSignatureBuilder to canonicalize type parameters that appear in the function's signature. Instead, let's first shard all declarations that have the same name by their generic signature. If two declarations have the same signature, only then do we proceed to compute their canonical type. Since computing a canonical GenericSignature is cheaper than computing a canonical GenericFunctionType, this should speed up name lookup of heavily-overloaded names, such as operators. Fixes <rdar://problem/56800097>.

view details

Saleem Abdulrasool

commit sha c050a26aebd1d9677e1315cf87ef9f595e9a3bd5

runtime: further isolate runtime from LLVMSupport This cleans up some more `llvm::` leakage in the runtime when built into a static library. With this change we are down to 3 leaking symbols in the static library related to a missed ADT (`StringSwitch`).

view details

Alexis Laferrière

commit sha 56c77df926f73f3890c821aca8667c93599d7ade

[Serialization] Skip SPI documentation in swiftdoc files Hide comments from SPI decls in all swiftdoc files. This applies the same restrictions as private declarations. This is a temporary solution, a long term fix is to emit both a public and an internal swiftdoc file. rdar://63729195

view details

Joe Groff

commit sha b89ef78ce5be633981f7935ab3e728a578cb5120

Adding `final` to public API is API-stable. Client code can't override or subclass a `public` declaration already, so although the ABI differs, the API is the same whether something is `final` or not.

view details

Saleem Abdulrasool

commit sha d4f48718c1253c116d3d997097d2135c305ef566

stdlib: add `StringSwitch` to LLVMSupport fork This is used in the standard library for the reflection. Add the missing header. Somehow this was missed in the dynamic version of the standard library.

view details

Joe Groff

commit sha be8674ea73551cfa1e91ab3a3e3f52f712c3428b

Make an internal KeyPath helper final. And remove an unnecessary override, so that further work will allow this method not to need a vtable entry.

view details

Erik Eckstein

commit sha 93ff8b0d9679bdce633a1a5cd8fdab34ff6dc4ae

stdlib: make sure that SetAlgebra.init(sequence) is on the fast path. In order to fully optimize OptionSet literals, it's important that this function is inlined and fully optimized. So far this was done by chance, but with COW representation it needs a hint to the optimizer.

view details

Erik Eckstein

commit sha f6ec448583672ced2bac64ae0fd9660d0f99c06f

stdlib: Prevent storing into the empty array singleton when replacing an array sub-sequence. In the corner case of a 0 sized replacement in an empty array, we did write the 0 count back to the array singleton. This is not a big problem right now, because it would just overwrite a 0 with a 0, but it shouldn't be done. But with COW representation in Array, it would break the sanity checks.

view details

Erik Eckstein

commit sha 68728dcb7d6588059a80c98e4a813023116259cf

stdlib: move the new-buffer creation function from Array to ArrayBuffer This has two advantages: 1. It does not force the Array in memory (to pass it as inout self to the non-inlinable _createNewBuffer). 2. The new _consumeAndCreateNew is annotated to consume self. This helps to reduce unnecessary retains/releases. The change applies for Array and ContiguousArray.

view details

Dan Zheng

commit sha 56c8ebabbdbd1465b4825a378acf369f31c67835

[SIL] Fix `alloc_stack [dynamic_lifetime]` attribute cloning. Make `SILCloner:visitAllocStack` correctly propagate the `[dynamic_lifetime]` attribute. Resolves SR-12886: differentiation transform error related to the `VJPEmitter` subclass of `SILCloner`.

view details

Dan Zheng

commit sha ff97ae798db922cddaac61ecdd2b72f84a87df6e

[AutoDiff] Fix SIL locations and debug scopes. Fix SIL locations and debug scopes in `VJPEmitter` for: - Pullback struct `struct` instructions - Predecessor enums `enum` instructions These instructions are not directly cloned from the original function and should have auto-generated locations. Resolves SR-12887: debug scope error for `VJPEmitter`-generated function.

view details

Martin Boehme

commit sha 15ea3feff098d7141d35db675e5181e8aa313c2c

Merge branch 'master' into martinboehme-patch-1

view details

eeckstein

commit sha b4a202c2b9658a82468e0b405bb291e5989ff31d

Merge pull request #32055 from eeckstein/array-changes stdlib: some small Array improvements to prepare for COW representation

view details

Saleem Abdulrasool

commit sha ff3eca4fe31ca09df4914b37cf8ab4994a4c0c42

Merge pull request #32076 from compnerd/switching-strings stdlib: add `StringSwitch` to LLVMSupport fork

view details

Saleem Abdulrasool

commit sha 9bde41ac374b2e371e70f6589a250d0640e3271f

Merge pull request #32066 from compnerd/small-change-for-small-vector runtime: further isolate runtime from LLVMSupport

view details

Alexis Laferrière

commit sha 94ff157c603bf9a39cb80bf0ebcd4f8ada1616f2

Merge pull request #32070 from xymus/spi-swiftdoc [Serialization] Skip SPI documentation in swiftdoc files

view details

Artem Chikin

commit sha 99a0919b345c2deb6177f5895d261e5991df1b0b

[Fast Dependency Scanner] Ensure Swift modules don't depend on self. When resolving direct dependencies for a given Swift module, we go over all Clang module dependencies and add, as additional dependencies, their Swift overlays. We find overlays by querying `ASTContext::getModuleDependencies` with the Clang module's name. If the Clang module in question is a dependency of a Swift module with the same name, we will end up adding the Swift module as its own dependence. e.g. - Swift A depends on Clang A - Add Clang A to dependencies of Swift A - We look for overlays of Clang A, by name, and find Swift A - Add Swift A to dependencies of Swift A From what I can tell, the logic upstream is sound, and `getModuleDependencies` is doing the right thing, so this change is simply restricting what gets added when we are looking for overlays. Resolves rdar://problem/63731428

view details

Slava Pestov

commit sha 68ba9cf96c4365fc86fb909d31d01cc4d69267ce

Merge pull request #32034 from slavapestov/optimize-remove-shadowed-decls AST: Optimize removeShadowedDecls()

view details

push time in a day

push eventdavezarzycki/llvm-project

Georgii Rymar

commit sha 9819976032c5af8d9109f2077e637c8303e4d6df

[llvm-readobj] - Cleanup the DwarfCFIEH::PrinterContext class. NFCI. It would be nice to switch to `reportUniqueWarnings` from `reportError` in this class, but first of all it needs a cleanup. This patch: 1) Eliminates autos. 2) Removes code duplication. 3) Changes how the code works with `Expected<>`. 4) Introduces 2 new `using`s to make the code a bit shorter. Differential revision: https://reviews.llvm.org/D80726

view details

Hendrik Greving

commit sha d8f2814c913847b1d0e9167dce5973eea3600c7e

[ModuloSchedule] Allow illegal phis to be moved across stages. Fixes a trivial but impactful bug where we did not move illegal phis across stages. This led to incorrect mappings in certain cases.

view details

Gabor Marton

commit sha bd03ef19beb8a3476d5cd9f744c5fba5ca287c51

[analyzer] ApiModeling: Add buffer size arg constraint Summary: Introducing a new argument constraint to confine buffer sizes. It is typical in C APIs that a parameter represents a buffer and another param holds the size of the buffer (or the size of the data we want to handle from the buffer). Reviewers: NoQ, Szelethus, Charusso, steakhal Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77066

view details

David Sherwood

commit sha 205085d4ccf9c367ba70de9d8f0dd74d6f567c24

[CodeGen] Fix warnings in LowerToPredicatedOp When creating a new vector type based on another vector type we should pass in the element count instead of the number of elements and scalable flag separately. I encountered this warning whilst compiling this test: CodeGen/AArch64/sve-intrinsics-int-compares.ll Differential revision: https://reviews.llvm.org/D80621

view details

Gabor Marton

commit sha 41928c97b6a17264938fc765a6a0656d8b6e86ed

[analyzer] ApiModeling: Add buffer size arg constraint with multiplier involved Summary: Further develop the buffer size argumentum constraint so it can handle sizes that we can get by multiplying two variables. Reviewers: Szelethus, NoQ, steakhal Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77148

view details

David Sherwood

commit sha 0609704760d0a94cccdbd243d0d750d74ee6c459

[SVE] Remove getNumElements() calls in visitGetElementPtrInst Replace calls to getNumElements() with getElementCount() in order to avoid warnings for scalable vectors. The warnings were discovered by this existing test: test/CodeGen/AArch64/sve-gep.ll Differential revision: https://reviews.llvm.org/D80782

view details

Pushpinder Singh

commit sha 16fef6d0b46f0494c502f8fe416fe841f7b000f6

Fix build failure when source is read only cmake configure fails when it tries to setup target for llvm_vcsrevision_h This happens only when source is checked out using repo in a read only filesystem, because cmake tries to create `.git/logs/HEAD` file. This patch: 1. Recovers from failure gracefully. 2. Ensures that VCSRevision.h is successfully created and updated in above scenarios. Differential Revision: https://reviews.llvm.org/D79400

view details

Gabor Marton

commit sha 16506d789084fd037fc61d442da43dd5242872b7

[analyzer] StdLibraryFunctionsChecker: Add sanity checks for constraints Summary: Once we found a matching FunctionDecl for the given summary then we validate the given constraints against that FunctionDecl. E.g. we validate that a NotNull constraint is applied only on arguments that have pointer types. This is needed because when we matched the signature of the summary we were working with incomplete function types, i.e. some intricate type could have been marked as `Irrelevant` in the signature. Reviewers: NoQ, Szelethus, balazske Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77658

view details

Dmitri Gribenko

commit sha 0e265e315784b4e47f984f8ed9fb7586130bacdc

Move unittest helpers to a shared location Summary: unittests/AST/Language.h defines some helpers that we would like to reuse in other tests, for example, in tests for syntax trees. Reviewers: sammccall Reviewed By: sammccall Subscribers: mgorny, martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80792

view details

Mariya Podchishchaeva

commit sha cf6cc662eeee2b1416430f517850be9032788e39

[OpenMP][SYCL] Improve diagnosing of unsupported types usage Summary: Diagnostic is emitted if some declaration of unsupported type declaration is used inside device code. Memcpy operations for structs containing member with unsupported type are allowed. Fixed crash on attempt to emit diagnostic outside of the functions. The approach is generalized between SYCL and OpenMP. CUDA/OMP deferred diagnostic interface is going to be used for SYCL device. Reviewers: rsmith, rjmccall, ABataev, erichkeane, bader, jdoerfert, aaron.ballman Reviewed By: jdoerfert Subscribers: guansong, sstefan1, yaxunl, mgorny, bader, ebevhan, Anastasia, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74387

view details

Pushpinder Singh

commit sha 0384446c7c2458b12ce3ef1c2bdf438af1f78ad7

Remove SVN logic from find_first_existing_vc_file As LLVM has moved from SVN to git, there is no need to keep SVN related code. Also, this code piece was never used. Differential Revision: https://reviews.llvm.org/D79400

view details

diggerlin

commit sha 34cfed24ebd3a2a9f286877d142a68dbf2c42c96

[AIX][XCOFF] add symbol priority for the llvm-objdump -D -symbol-description SUMMARY: when there are two symbol has the same address. llvm-objdump -D -symbol-description will select symbol based on the following rule: 1. using Label first if there is a Label symbol. 2. If there is not Label, using a symbol which has Storage Mapping class. 3. if more than one symbol has storage mapping class, put the TC0 has the low priority, for other storage mapping class , compare based on the value. Reviewers: James Henderson ,hubert.reinterpretcast, Differential Revision: https://reviews.llvm.org/D78387

view details

David Green

commit sha 747c574b94595c6209185c87e79f51bff46fd4d8

[ARM] Extra MVE VMLAV reduction patterns These patterns for i8 and i16 VMLA's were missing. They end up from legalized vector.reduce.add.v8i16 and vector.reduce.add.v16i8, and although the instruction works differently (the mul and add are performed in a higher precision), I believe it is OK because only an i8/i16 are demanded from them, and so the results will be the same. At least, they pass any testing I can think to run on them. There are some tests that end up looking worse, but are quite artificial due to passing half vector types through a call boundary. I would not expect the vmull to realistically come up like that, and a vmlava is likely better a lot of the time. Differential Revision: https://reviews.llvm.org/D80524

view details

Saleem Abdulrasool

commit sha 68c50708d1f2b9aee3f10ec710df0b1387f701e5

unwind: use a more portable endianness check in EHABI The ARM specific code was trying to determine endianness using the `__LITTLE_ENDIAN__` macro which is not guaranteed to be defined. When not defined, it makes libunwind to build the big-endian code even when the compiler builds for a little-endian target. This change allows building libunwind with the `musl-gcc` toolchain which does not define `__LITTLE_ENDIAN__`. Use `__BYTE_ORDER__` instead. Patch by Idan Freiberg!

view details

Fred Riss

commit sha 977f00123a6d94c634d22356cae1da2a22f0e3df

[lldb/test] Fix TestAppleSimulatorOSType when multiple runtimes are installed One can have multiple simulator runtimes installed, supporting various generations of OSs. The logic in TestAppleSimulatorOSType might select a rnutime older than the one targeted by the current tools, preventing the executable from running. This commit changes the test to look for the most recent runtime available instead.

view details

Jay Foad

commit sha 9e0b52e2e68412a9a2add18697f4246e5e5ee5e3

[AMDGPU] Remove duplicate test cases The two "2sin" test cases were identical to the "sin_2x" test cases just above.

view details

Gabor Marton

commit sha 634258b80606c4bb8192077239a089ae5842781a

[analyzer] StdLibraryFunctionsChecker: Add support to lookup types Summary: In this patch I am trying to get rid of the `Irrelevant` types from the signatures of the functions from the standard C library. For that I've introduced `lookupType()` to be able to lookup arbitrary types in the global scope. This makes it possible to define the signatures precisely. Note 1) `fread`'s signature is now fixed to have the proper `FILE *restrict` type when C99 is the language. Note 2) There are still existing `Irrelevant` types, but they are all from POSIX. I am planning to address those together with the missing POSIX functions (in D79433). Reviewers: xazax.hun, NoQ, Szelethus, balazske Subscribers: whisperity, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80016

view details

David Sherwood

commit sha d8a78889f633c5a60f0a1c7cb60bf9b18817d9d7

[CodeGen] Fix warning in visitShuffleVector Make sure we only ask for the number of elements after we've bailed out for scalable vectors. Differential revision: https://reviews.llvm.org/D80632

view details

Kevin P. Neal

commit sha a38788201e44c5eb1abf3c71d0cad22d291dc9a3

Fix errors in use of strictfp attribute. Errors spotted with use of: https://reviews.llvm.org/D68233

view details

Kevin P. Neal

commit sha 66d1899e2ffd2581f774ecf51ced4a325e7d004b

Fix errors in use of strictfp attribute. Errors spotted with use of: https://reviews.llvm.org/D68233

view details

push time in a day

push eventdavezarzycki/llvm-project

Sylvestre Ledru

commit sha ca467542eecfc621eea7fefb3c7e3849c6b43ac7

[CMake] Pass CLANG_VENDOR variables into later stages We are already passing CLANG_VERSION_* & PACKAGE_VENDOR

view details

davidak

commit sha a3418631e8aa0941b8b57ec2fc3b8d0c7db493be

libclc: update website url old link is dead

view details

Sjoerd Meijer

commit sha 7fb8a40e5220d6d4efa14c15f92b6f28ba1b18f7

New intrinsic @llvm.get.active.lane.mask() This is split off from D79100 and: - adds a intrinsic description/definition for @llvm.get.active.lane.mask(), and - describe its semantics in LangRef. As described (in more detail) in its LangRef section, it is semantically equivalent to an icmp with the vector induction variable and the back-edge taken count, and generates a mask of active/inactive vector lanes. It will have several use cases. First, it will be used by the ExpandVectorPredication pass for the VP intrinsics, to expand VP intrinsics for scalable vectors on targets that do not support the `%evl` parameter, see D78203. Also, this is part of, and essential for our ARM MVE tail-predication story: - this intrinsic will be emitted by the LoopVectorizer in D79100, when the scalar epilogue is tail-folded into the vector body. This new intrinsic will generate the predicate for the masked loads/stores, and it takes the back-edge taken count as an argument. The back-edge taken count represents the number of elements processed by the loop, which we need to setup MVE tail-predication. - Emitting the intrinsic is controlled by a new TTI hook, see D80597. - We pick up this new intrinsic in an ARM MVETailPredication backend pass, see D79175, and convert it to a MVE target specific intrinsic/instruction to create a tail-predicated loop. Differential Revision: https://reviews.llvm.org/D80596

view details

Haojian Wu

commit sha 82bb57c11d8ccb4e1b0f420f4388dd6553bbc57a

[AST][RecoveryExpr] Make DeduceAutoType fail if the auto is deduced from recovery exprs. Summary: With recovery-ast, we will get an undeduced `auto` return type for "auto foo()->undef()" function declaration, the function decl still keeps valid, it is dangerous, and breaks assumptions in clang, and leads crashes. This patch invalidates these functions, if we deduce autos from the return rexpression, which is similar to auto VarDecl. Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80221

view details

Sjoerd Meijer

commit sha 7480ccbfc9d258a38eb99bbfccc6511e6ae10b70

[TTI] New target hook emitGetActiveLaneMask This is split off from D79100 and adds a new target hook emitGetActiveLaneMask that can be queried to check if the intrinsic @llvm.get.active.lane.mask() is supported by the backend and if it should be emitted for a given loop. See also commit rG7fb8a40e5220 and its commit message for more details/context on this new intrinsic. Differential Revision: https://reviews.llvm.org/D80597

view details

Kazushi (Jam) Marukawa

commit sha 0e0907fa0e257ba63d6f820eafbf2079502153ed

[VE] Implements minimum MC layer for VE (4/4) Summary: This patch includes following items. - Adds AsmParser and minimum AsmBackend/ELFObjectWriter/MCCodeEmitter to support only LEA instruction in order to reduce the size of this patch. - Adds regression test of MC layer for a LEA instruction. - Relocations are not supported this time to reduce the size of this patch. Differential Revision: https://reviews.llvm.org/D79546

view details

Jay Foad

commit sha 036d4b0dbfd1bb5f960c620ff899669d85e62e08

[AMDGPU] Use numbers::pi instead of M_PI. NFC.

view details

Jay Foad

commit sha b28d038ff34dd54ce8eb9fe83506cc3742e6b85a

[AMDGPU] Better use of llvm::numbers Tweak a few constant expressions involving numbers::pi etc to avoid rounding errors. NFCI though it's possible some of these will now be more accurate in the last bit.

view details

Ehsan Toosi

commit sha 7a3a2535854c84b1c8f6b0a2f2677e89b0e1a250

[MLIR][BufferPlacement] Support functions that return Memref typed results Buffer placement can now operates on functions that return buffers. These buffers escape from the deallocation phase of buffer placement. Differential Revision: https://reviews.llvm.org/D80696

view details

Vitaly Buka

commit sha 058f5f6fd813d1ee1480497394d6fd44e65ec62b

Avoid O_CLOEXEC to allow building on older Linux (RHEL5) Summary: See https://github.com/google/sanitizers/issues/1253. Small patch to enable compilation on (ancient) Red Hat Enterprise Linux 5. Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D80648

view details

Raphael Isemann

commit sha 5f0267984792429d7b9ac574c17566b98527576e

[lldb][NFC] Remove a std::string->C string->StringRef conversion in ClangUserExpression

view details

Pavel Labath

commit sha 2c22c1473569352efa9326aa165cc451d39da015

[lldb] Make "inline" tests more configurable Summary: This patch adds two new arguments to the MakeInlineTest function. The main motivation is a follow-up patch I'm preparing, but they seem generally useful. The first argument allows the user to specify the "build dictionary". With this argument one can avoid the need to provide a custom Makefile if all he needs is to override a couple of make variables. This hooks in neatly into the existing dictionary support for non-inline tests. The second argument specifies the name of the test. This could be used to provide better names to the generated test classes, but it's mainly useful in conjuction with the first argument: now that we can specify a custom build dictionary, it may sometimes make sense to run the same test twice with different build configurations. To achieve that, we need to give the two tests different names, and this argument achieves that. The usage of the arguments is demonstrated via TestBasicEntryValues.py. Reviewers: vsk, JDevlieghere Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D80518

view details

Emre Kultursay

commit sha 7ff2de4f0c60c5d13880440e85ef8edc78482a2f

Do not list adb devices when a device id is given Summary: On Android, this method gets called twice: first when establishing a host-server connection, then when attaching to a process id. Each call takes several seconds to finish (especially slower on Windows) and eliminating the call for the typical case improves latency significantly. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D79586

view details

Georgii Rymar

commit sha 1bfc58e6557cd3f3c310de214f316469c20c1476

[llvm-readobj][test] - unwind.test: add comments, document the current behavior. Here I've added comments, added testing for llvm-readelf and documented the behavior that we already have. It was discussed in the D80380 thread that we want to improve the "p_memsz does not match p_filesz for GNU_EH_FRAME" message reported (and probably convert error to a warning). This patch is a preparation for that. Differential revision: https://reviews.llvm.org/D80635

view details

Louis Dionne

commit sha d0fcdcd28f95d699b27d2026ede964a7f9cff9dd

[libc++] Fix the LIBCXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT setting When the __config_site header is generated, but LIBCXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT wasn't specified, _LIBCPP_HAS_MERGED_TYPEINFO_NAMES_DEFAULT would be defined to 0, which was the NonUnique RTTI comparison implementation. The intent was to use the Unique RTTI comparison implementation in that case, which caused https://llvm.org/PR45549. Instead, use a proper "switch" to select the RTTI comparison implementation. Note that 0 can't be used as a value, because that is treated the same by CMake as a variable that is just not defined. Differential Revision: https://reviews.llvm.org/D80037

view details

Benjamin Kramer

commit sha b9bb3ad3ed3b13607d15472a0b881da9fb00fc03

Unbreak the build of mlir-cuda-runner

view details

Kadir Cetinkaya

commit sha b742eaa321219fa3444e3bcd33eda441bea6b73a

[clangd] Handle additional includes while parsing ASTs Summary: Enables building ASTs with stale preambles by handling additional preamble includes. Sets the correct location information for those imaginary includes so that features like gotodef/documentlink keeps functioning propoerly. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77644

view details

Kadir Cetinkaya

commit sha 478f6fb2001698eb102ddce9500ff0885eaaeaab

[clangd] Add buildPreamble to TestTU Summary: Depends on D77644. Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79930

view details

Georgii Rymar

commit sha c68ee6da283c5697e935d1f9b7401c086cb18e03

[llvm-readelf] - --elf-hash-histogram: do not crash when the .gnu.hash goes past the EOF. llvm-readelf might crash when the .gnu.hash table goes past the EOF. This patch splits and updates the code of a helper function `checkGNUHashTable`, which is similar to `checkHashTable` and fixes the issue. Differential revision: https://reviews.llvm.org/D80215

view details

Kadir Cetinkaya

commit sha 1772adb0594bf0d8684fe8b63609352ad4a1ccf0

[clangd] Preserve extra args in PreambleTests::IncludeParsing to fix windows build bots

view details

push time in a day

push eventllvm/llvm-project

David Zarzycki

commit sha 1c4238e7a00b28043e209d0b2c0dda76ee5af82e

[libcxx testing] Stop using arbitrary timeouts in one test On a busy and/or slow system, 100ms might not be long enough. Instead, we now use atomic variables to communicate between threads.

view details

push time in a day

push eventdavezarzycki/swift

Valeriy Van

commit sha a0b651727246c02107fc4051c45800345d587f31

Fixes filter function of RangeReplaceableCollection. Addresses ticket SR-12648

view details

Martin Boehme

commit sha 6bf0f26ecd7add55c31e8027be15435b1248a6de

Emit `/DEFAULTLIB` directive for `#pragma comment(lib, ...)` in a C module. This is important, for example, for linking correctly to the C++ standard library on Windows, which uses `#pragma comment(lib, ...)` in its headers to specify the correct library to link against.

view details

martinboehme

commit sha d867c88d2c830ff4036109ccf60e3eb099df710a

Update WindowsBuild.md Added note on which edition of Visual Studio to get.

view details

Owen Voorhees

commit sha dd0b1ebd3d5da725b29e3f3f213863808b8533c6

[Gardening] Remove dead code in SerializeDoc.cpp

view details

Owen Voorhees

commit sha 8b4d9ef3eb946e2378ea8aad489ca8668b69e939

[Profiler] Don't use presumed line numbers for profiling

view details

Arnold Schwaighofer

commit sha 532f0cb865cccae01abb5b1c933b8510b27dcd81

Type substitution: When substituting SILFunctionTypes we substitute unbound Objective-C generic for bound ones IRGen does so. So don't assert on this case. rdar://63509292

view details

Arnold Schwaighofer

commit sha 11bc7d1e15c486fcd20cbbb196325864ad6b9108

This test would fail on arm64(e) because we omit frame pointers there rdar://63673682

view details

Doug Gregor

commit sha e7d144712610adb6b038a7b8ac27fc108c2c39e7

[Test] Disable test only for the simulator; it'll run on host & device. Fixes rdar://problem/63546363.

view details

Nathan Hawes

commit sha 79247b22e2ea362ef62b18e7714371e5ea16785f

[SourceKit][InterfaceGen] Don't print clang decls marked with the swift_private attribute. This attribute is intended to mean there's a replacement declaration that should be used instead in Swift code. We already filter out decls with this attribute in code completion, but were still exposing them in generated interfaces. Resolves rdar://problem/62464954

view details

Robert Widmann

commit sha 4e6b68fbccfe07be2959e2cc408dfdbd541aa6d2

[NFC] Remove Extra Deduplication of External Depends Clang's DependencyCollector already deduplicates entries by the provided file path.

view details

Ashley Garland

commit sha 51ce1f2b0f8969b7a1124eb848f4810bdcfbfde8

[SymbolGraph] Look for @_spi on extensions Consider declarations inside `@_spi` extensions to be internal. Clean up the "implicitly private" check to work for `Decl` and not just `ValueDecl`, allowing it to be used directly on extensions instead of having to look for extensions everywhere. rdar://63361634

view details

Erik Eckstein

commit sha 6569c98332d7a060adcb3d2f8805eae10c1bd8fc

SIL optimizer: add an additional stack promotion pass to the late pipeline Sometimes stack promotion can catch cases only at a late stage of the pipeline, after FunctionSignatureOpts. https://bugs.swift.org/browse/SR-12773 rdar://problem/63068408

view details

martinboehme

commit sha f025deaee0f196d180d0486ee15aabdd7a316cdd

Update WindowsBuild.md Remove reference to the latest release.

view details

David Zarzycki

commit sha 3767ece85ccd64585ae88ef7e9535c6dd33d5872

[CMake] Simplify two binary variables into one tri-state variable Also remove some ancient logic to detect and ignore requests to use LLD. If people want to explicitly use LLD, they probably have a reason and we shouldn't second guess them.

view details

Michael Forster

commit sha 5a1c48e0f5d7a1223892acbe2fa0976b866a93e4

Improve windows build instructions. Add a command line that installs all required Visual Studio components as well as Git and Python.

view details

Michael Forster

commit sha 5f9225f33f3ceaf07ccb4426f91f35454b35f623

Update WindowsBuild.md

view details

Erik Eckstein

commit sha 266bd0fd87f52e5e1721fe50f2741b03aab7f913

Cross-module-optimization: issue an error if TBD file generation is requested with CMO This combination is not supported and may result in undefined-symbol linker errors. rdar://problem/63238999

view details

eeckstein

commit sha 21409814943b72f752f4269bccbbc1d12bca342d

Merge pull request #32039 from eeckstein/add-stack-promotion-pass SIL optimizer: add an additional stack promotion pass to the late pipeline

view details

David Zarzycki

commit sha 9526384afffdec8605f9110d6740f588a3d011e1

[IRGen] NFC: Narrow the scope of some code This code is only used on one side of a if/else branch, so let's just move it inside the `else` block.

view details

Michael Forster

commit sha c98c862e7ef3a2c8292c67dba7412f74e540a0f4

Start implementing C++ operator interop (#32015) This imports the four basic arithmetic operators `+`, `-`, `*`, `/` declared as inline non-member functions. More to come.

view details

push time in 2 days

push eventdavezarzycki/llvm-project

Georgii Rymar

commit sha ad07d5f39425d4b7013346f4eb52a1e99e6c19a8

[yaml2obj] - Implement the "SectionHeaderTable" tag. With the "SectionHeaderTable" it is now possible to reorder entries in the section header table. It also allows to stop emitting the table. Differential revision: https://reviews.llvm.org/D80002

view details

Valeriy Savchenko

commit sha bd06c417e6c717cbe33b566d7bbaf27fb47e763a

[analyzer] Allow bindings of the CompoundLiteralRegion Summary: CompoundLiteralRegions have been properly modeled before, but 'getBindingForElement` was not changed to accommodate this change properly. rdar://problem/46144644 Differential Revision: https://reviews.llvm.org/D78990

view details

Dmitry Preobrazhensky

commit sha bab5dadfcd0fc3a77c47aec7e885e8b70b9f9756

[AMDGPU][MC][DISASSEMBLER] Corrected decoder to consume each code fragment only once Summary: disabled disassembly of successfully decoded fragments of code. See detailed bug description: https://bugs.llvm.org/show_bug.cgi?id=46101 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80637

view details

Sam McCall

commit sha a56141b8f9fea112c1ea078c974d91949b6e7a5c

[clangd] Highlight related control flow. Summary: This means e.g. highlighting "return" will show other returns/throws from the same function, highlighting a case will show all the return/breaks etc. This is a bit of an abuse of textDocument/highlight, but seems useful. Reviewers: adamcz Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78454

view details

Dmitry Preobrazhensky

commit sha 45251ef5345b3c81c8f394d42d252de039c72566

[AMDGPU][MC] Corrected v_writelane_b32 to fix a decoding bug Corrected vdst_in to match vdst operand type. See bug 45193: https://bugs.llvm.org/show_bug.cgi?id=45193 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80636

view details

Nemanja Ivanovic

commit sha f9e94eb8688d1fe1727360462e957fbbfb754e59

[Clang] Enable _Complex __float128 When I added __float128 a while ago, I neglected to add support for the complex variant of the type. This patch just adds that. Differential revision: https://reviews.llvm.org/D80533

view details

Simon Pilgrim

commit sha 84be4278e7966c8747aad48aa49de9bcd9f1d730

llvm-dwarfdump.h - remove unnecessary WithColor.h include. NFC.

view details

Simon Pilgrim

commit sha ab5abce23ccf8369c39d734c6279949815a9b9dc

DWARFDebugMacro.h - remove unnecessary WithColor.h include. NFC.

view details

Simon Pilgrim

commit sha 73ae678363fb42418a8959955d05488191045b31

Fix MSVC signed/unsigned comparison warnings. NFC.

view details

Dmitry Preobrazhensky

commit sha f47e27e260e3e06167a7e1de8a4c092b95717e15

[AMDGPU][MC][GFX908] Corrected src0 of v_accvgpr_write to accept only VGPRs and inline constants. This change disables use of special SGPR registers like scc, vccz, execz, etc as operands of v_accvgpr_write. See bug 45414: https://bugs.llvm.org/show_bug.cgi?id=45414 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80530

view details

Alok Kumar Sharma

commit sha 7716681cfd0ea2dadbddae6f1983e130c2fa4247

Fixed bot failure after d20bf5a7258d4b6a7 There was a failure on windows bit due to format mismatch on different(Hex and Decimal) platforms even if meaning of output is same. For example on X86 linux => DW_OP_plus_uconst 0x70, DW_OP_deref, DW_OP_lit4, DW_OP_mul ^ on X86 Windows-gnu => DW_AT_location (DW_OP_fbreg +112, DW_OP_deref, DW_OP_lit4, DW_OP_mul) : error: CHECK-SAME: expected string not found in input ; CHECK-SAME: DW_OP_plus_uconst 0x70, DW_OP_deref, DW_OP_lit4, DW_OP_mul ^ <stdin>:28:17: note: scanning from here DW_AT_location (DW_OP_fbreg +112, DW_OP_deref, DW_OP_lit4, DW_OP_mul) ^ <stdin>:28:18: note: possible intended match here DW_AT_location (DW_OP_fbreg +112, DW_OP_deref, DW_OP_lit4, DW_OP_mul) Now the test is limited to x86 using REQUIRED and -mtriple. http://45.33.8.238/win/16214/step_11.txt

view details

Simon Pilgrim

commit sha 1ddac9563d7f2414e6c4302f9902ac1294966161

[X86][SSE] Peek though MOVMSK source sign bits using SimplifyMultipleUseDemandedBits Allows SimplifyDemandedBitsForTargetNode to peek through multi-use ops where MOVMSK only demands the signbit of each vector element.

view details

Frederik Gossen

commit sha e73bb4fba7092f7e1ef807812063a0f655a185af

[MLIR] Move `ConcatOp` to its lexicographic position Purely cosmetic change. The operation implementations in `Shape.cpp` are now lexicographic order. Differential Revision: https://reviews.llvm.org/D80277

view details

Simon Pilgrim

commit sha 1a945757ac7debd9ad14497fa404e3900869cad5

WithColor.h - reduce unnecessary includes to forward declarations. NFC.

view details

Simon Pilgrim

commit sha f6417f5db8c16286904d074d1e40e9c1eb083951

FileOutputBuffer.h - remove unused includes. NFC. Move dependent includes down to source files where necessary.

view details

Frederik Gossen

commit sha dd484baffdf4a92e564c38a17d35a742e633b0e0

[MLIR] Tidy up documentation for `Shape_JoinOp`, `Shape_ReduceOp`, and `Shape_ConstSizeOp` Fix places that refer to `shape.type` instead of `shape.shape`. Differential Revision: https://reviews.llvm.org/D80278

view details

Alexander Belyaev

commit sha c3098e4f4036e96dbd3de0e61c5e114b0eb7bbb4

[MLIR] Add TensorFromElementsOp to Standard ops. Differential Revision: https://reviews.llvm.org/D80705

view details

Frederik Gossen

commit sha 6594d54571ee5887f031555a7660b8d8e74194d3

[MLIR] Add `index_to_size` and `size_to_index` to the shape dialect Add the two conversion operations `index_to_size` and `size_to_index` to the shape dialect. This facilitates the conversion of index types between the shape and the standard dialect. Differential Revision: https://reviews.llvm.org/D80280

view details

Matt Arsenault

commit sha 0da4353938368c1f2473cd24553989f84b964279

AMDGPU: Add baseline test for ptrmask infer address space

view details

Matt Arsenault

commit sha d6671ee90c1423eb18c6fab11819df850ae2200d

InferAddressSpaces: Handle ptrmask intrinsic This one is slightly odd since it counts as an address expression, which previously could never fail. Allow the existing TTI hook to return the value to use, and re-use it for handling how to handle ptrmask. Handles the no-op addrspacecasts for AMDGPU. We could probably do something better based on analysis of the mask value based on the address space, but leave that for now.

view details

push time in 2 days

push eventdavezarzycki/llvm-project

Sjoerd Meijer

commit sha 880c35a554952c3a64483502f3278431f8f06516

[HardwareLoops] LangRef Intrinsic descriptions The HardwareLoop intrinsics were missing and not described in LangRef. This adds these descriptions/definitions. Differential Revision: https://reviews.llvm.org/D80316

view details

Kazushi (Jam) Marukawa

commit sha 5921782f744deffb5f5bfd96f6a7932a4ff75666

[VE] Implements minimum MC layer for VE (3/4) Summary: Define ELF binary code for VE and modify code where should use this new code. Depends on D79544. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D79545

view details

LLVM GN Syncbot

commit sha 4b94cee650ce9753214d562826b7f1b9663c2268

[gn build] Port 5921782f744

view details

Mehdi Amini

commit sha 213c6cdf2e7a30d722cee4cd66b7d48fc396d44b

Harden MLIR detection of misconfiguration when missing dialect registration This changes will catch error where C++ op are used without being registered, either through creation with the OpBuilder or when trying to cast to the C++ op. Differential Revision: https://reviews.llvm.org/D80651

view details

Alok Kumar Sharma

commit sha d20bf5a7258d4b6a7f017a81b125275dac1aa166

[DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays This patch upgrades DISubrange to support fortran requirements. Summary: Below are the updates/addition of fields. lowerBound - Now accepts signed integer or DIVariable or DIExpression, earlier it accepted only signed integer. upperBound - This field is now added and accepts signed interger or DIVariable or DIExpression. stride - This field is now added and accepts signed interger or DIVariable or DIExpression. This is required to describe bounds of array which are known at runtime. Testing: unit test cases added (hand-written) check clang check llvm check debug-info Reviewed By: aprantl Differential Revision: https://reviews.llvm.org/D80197

view details

Sander de Smalen

commit sha ec0b66c318ea42ec229fd3a9ef4ad92bf81d41cf

[CodeGen] Specify meaning of ISD opcodes for scalable vectors This patch contains changes to the description of EXTRACT_SUBVECTOR, INSERT_SUBVECTOR, INSERT_VECTOR_ELT, EXTRACT_VECTOR_ELT and CONCAT_VECTORS to specify their behaviour for scalable vectors. For EXTRACT_SUBVECTOR it specifies that the IDX is scaled by the same runtime scaling as the extracted (or inserted) vector. This definition is the most natural extension to EXTRACT_SUBVECTOR for scalable vectors, as most use-cases that work on fixed-width types will have the same meaning for scalable types. For legalization for example, it is common to split the vector operation to operate on the LO and HI halfs of a vector. For a fixed width vector <16 x i8> this would be expressed with: v16i8 %res = EXTRACT_SUBVECTOR v32i8 %v, i32 16 For a scalable vector, this would similarly be expressed as: nxv16i8 %res = EXTRACT_SUBVECTOR nxv32i8 %V, i32 16 By extending the meaning of IDX for scalable vectors, most existing optimisations on EXTRACT/INSERT_SUBVECTOR work for scalable vectors without any changes. This definition also allows extracting a fixed-width subvector from a scalable vector, which is useful to e.g. extract the low N lanes of a scalable vector. This patch is not NFC because it sets the meaning of these nodes for scalable vectors, which future patches will build upon. Reviewers: efriedma, ctetreau, rogfer01, craig.topper Reviewed By: efriedma Tags: #llvm Differential Revision: https://reviews.llvm.org/D79806

view details

Dmitry Vyukov

commit sha 0969541ffcb24ae1af59fcb8778063becf17dbca

tsan: disable java_finalizer2 test on darwin pthread_barrier_t is not supported on darwin. Do what other tests that use pthread_barrier_t do.

view details

Marco Elver

commit sha 69935d86aed1b691c5f33a2141f15cb3aaee1af6

[Clang][Sanitizers] Expect test failure on {arm,thumb}v7 Summary: Versions of LLVM built on {arm,thumb}v7 appear to have differently configured pass managers, which causes restrictions on which sanitizers we may use. As such, expect failure of the recently added "sanitize-coverage.c" test on these architectures until we can investigate armv7's restrictions. Bugzilla: https://bugs.llvm.org/show_bug.cgi?id=46117 Reviewers: vitalybuka, glider Reviewed By: glider Subscribers: glider, kristof.beyls, danielkiss, cfe-commits, vvereschaka Tags: #clang Differential Revision: https://reviews.llvm.org/D80668

view details

Cullen Rhodes

commit sha e533a176b3d4d936a4870cd1a3273941ba699882

[TableGen] Fix non-standard escape warnings for braces in InstAlias Summary: TableGen interprets braces ('{}') in the asm string of instruction aliases as variants but when defining aliases with literal braces they have to be escaped to prevent them being removed. Braces are escaped with '\\', for example: def FooBraces : InstAlias<"foo \\{$imm\\}", (foo IntOperand:$imm)>; Although when TableGen is emitting the assembly writer (-gen-asm-writer) the AsmString that gets emitted is: AsmString = "foo \{$\x01\}"; In c/c++ braces don't need to be escaped which causes compilation warnings: warning: use of non-standard escape character '\{' [-Wpedantic] This patch fixes the issue by unescaping the flattened alias asm string in the asm writer, by replacing '\{\}' with '{}'. Reviewed By: hfinkel Differential Revision: https://reviews.llvm.org/D79991

view details

Thomas Preud'homme

commit sha 23ac16cf9bd4cc0bb434efcf6385baf083a2ff7b

FileCheck [10/12]: Add support for signed numeric values Summary: This patch is part of a patch series to add support for FileCheck numeric expressions. This specific patch adds support signed numeric values, thus allowing negative numeric values. As such, the patch adds a new class to represent a signed or unsigned value and add the logic for type promotion and type conversion in numeric expression mixing signed and unsigned values. It also adds the %d format specifier to represent signed value. Finally, it also adds underflow and overflow detection when performing a binary operation. Copyright: - Linaro (changes up to diff 183612 of revision D55940) - GraphCore (changes in later versions of revision D55940 and in new revision created off D55940) Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson Reviewed By: jhenderson, arichardson Subscribers: MaskRay, hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, kristina, hfinkel, rogfer01, JonChesterfield Tags: #llvm Differential Revision: https://reviews.llvm.org/D60390

view details

Victor Campos

commit sha c010d4d195506aaea76a1cc8afb5a6b5884dba44

[ARM] Improve codegen of volatile load/store of i64 Summary: Instead of generating two i32 instructions for each load or store of a volatile i64 value (two LDRs or STRs), now emit LDRD/STRD. These improvements cover architectures implementing ARMv5TE or Thumb-2. The code generation explicitly deviates from using the register-offset variant of LDRD/STRD. In this variant, the register allocated to the register-offset cannot be reused in any of the remaining operands. Such restriction seems to be non-trivial to implement in LLVM, thus it is left as a to-do. Differential Revision: https://reviews.llvm.org/D70072

view details

Cullen Rhodes

commit sha 8a397b66b2c672999e9e6d63334d5bffd7db1a3f

[AArch64][SVE] Add support for spilling/filling ZPR2/3/4 Summary: This patch enables the register allocator to spill/fill lists of 2, 3 and 4 SVE vectors registers to/from the stack. This is implemented with pseudo instructions that get expanded to individual LDR_ZXI/STR_ZXI instructions in AArch64ExpandPseudoInsts. Patch by Sander de Smalen. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75988

view details

Alok Kumar Sharma

commit sha a0d847c6cdcbe167213d91313577c57073d5c013

Fixed bot failure after d20bf5a7258d4b6a7 There were some bot failures due unused funtion `rotateSign` left in code. http://lab.llvm.org:8011/builders/clang-ppc64le-rhel/builds/3731 error: unused function 'rotateSign' [-Werror,-Wunused-function] static uint64_t rotateSign(int64_t I)

view details

Florian Hahn

commit sha ab95ac013234189ad797f36d95c96b2d0999a653

[AArch64] Precommit new fp extraction/insertion test.

view details

Sam McCall

commit sha d283fc4f9d07a5f3334fe682ccabfc16e8d2933b

[DebugInfo] Use SplitTemplateClosers (foo<bar<baz> >) in DWARF too Summary: D76801 caused some regressions in debuginfo compatibility by changing how certain functions were named. For CodeView we try to mirror MSVC exactly: this was fixed in a549c0d00486 For DWARF the situation is murkier. Per David Blaikie: > In general DWARF doesn't specify this at all. > [...] > This isn't the only naming divergence between GCC and Clang Nevertheless, including the space seems to provide better compatibility with GCC and GDB. E.g. cpexprs.cc in the GDB testsuite requires this formatting. And there was no particular desire to change the printing of names in debug info in the first place (just in diagnostics and other more user-facing text). Fixes PR46052 Reviewers: dblaikie, labath Subscribers: aprantl, cfe-commits, dyung Tags: #clang Differential Revision: https://reviews.llvm.org/D80554

view details

Georgii Rymar

commit sha ad07d5f39425d4b7013346f4eb52a1e99e6c19a8

[yaml2obj] - Implement the "SectionHeaderTable" tag. With the "SectionHeaderTable" it is now possible to reorder entries in the section header table. It also allows to stop emitting the table. Differential revision: https://reviews.llvm.org/D80002

view details

Valeriy Savchenko

commit sha bd06c417e6c717cbe33b566d7bbaf27fb47e763a

[analyzer] Allow bindings of the CompoundLiteralRegion Summary: CompoundLiteralRegions have been properly modeled before, but 'getBindingForElement` was not changed to accommodate this change properly. rdar://problem/46144644 Differential Revision: https://reviews.llvm.org/D78990

view details

Dmitry Preobrazhensky

commit sha bab5dadfcd0fc3a77c47aec7e885e8b70b9f9756

[AMDGPU][MC][DISASSEMBLER] Corrected decoder to consume each code fragment only once Summary: disabled disassembly of successfully decoded fragments of code. See detailed bug description: https://bugs.llvm.org/show_bug.cgi?id=46101 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80637

view details

Sam McCall

commit sha a56141b8f9fea112c1ea078c974d91949b6e7a5c

[clangd] Highlight related control flow. Summary: This means e.g. highlighting "return" will show other returns/throws from the same function, highlighting a case will show all the return/breaks etc. This is a bit of an abuse of textDocument/highlight, but seems useful. Reviewers: adamcz Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78454

view details

Dmitry Preobrazhensky

commit sha 45251ef5345b3c81c8f394d42d252de039c72566

[AMDGPU][MC] Corrected v_writelane_b32 to fix a decoding bug Corrected vdst_in to match vdst operand type. See bug 45193: https://bugs.llvm.org/show_bug.cgi?id=45193 Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D80636

view details

push time in 2 days

delete branch davezarzycki/swift

delete branch : pr32059

delete time in 2 days

push eventapple/swift

David Zarzycki

commit sha 9526384afffdec8605f9110d6740f588a3d011e1

[IRGen] NFC: Narrow the scope of some code This code is only used on one side of a if/else branch, so let's just move it inside the `else` block.

view details

David Zarzycki

commit sha f58e7b21cfa7b821257968ce483949b9431ac5c1

Merge pull request #32059 from davezarzycki/pr32059 [IRGen] NFC: Narrow the scope of some code

view details

push time in 2 days

PR merged apple/swift

Reviewers
[IRGen] NFC: Narrow the scope of some code

This code is only used on one side of a if/else branch, so let's just move it inside the else block.

+11 -11

2 comments

1 changed file

davezarzycki

pr closed time in 2 days

pull request commentapple/swift

[IRGen] NFC: Narrow the scope of some code

@swift-ci please clean test linux

davezarzycki

comment created time in 2 days

push eventapple/swift

David Zarzycki

commit sha 3767ece85ccd64585ae88ef7e9535c6dd33d5872

[CMake] Simplify two binary variables into one tri-state variable Also remove some ancient logic to detect and ignore requests to use LLD. If people want to explicitly use LLD, they probably have a reason and we shouldn't second guess them.

view details

David Zarzycki

commit sha d3a98318967291ebf06f04a94ad4d3234306fe5d

Merge pull request #32042 from davezarzycki/pr32042 [CMake] Simplify two binary variables into one tri-state variable

view details

push time in 2 days

delete branch davezarzycki/swift

delete branch : pr32042

delete time in 2 days

PR merged apple/swift

[CMake] Simplify two binary variables into one tri-state variable

Also remove some ancient logic to detect and ignore requests to use LLD. If people want to explicitly use LLD, they probably have a reason and we shouldn't second guess them.

+27 -49

8 comments

6 changed files

davezarzycki

pr closed time in 2 days

pull request commentapple/swift

[CMake] Simplify two binary variables into one tri-state variable

@swift-ci please test windows

davezarzycki

comment created time in 3 days

pull request commentapple/swift

[IRGen] NFC: Narrow the scope of some code

@swift-ci please smoke test and merge

davezarzycki

comment created time in 3 days

PR opened apple/swift

Reviewers
[IRGen] NFC: Narrow the scope of some code

This code is only used on one side of a if/else branch, so let's just move it inside the else block.

+11 -11

0 comment

1 changed file

pr created time in 3 days

create barnchdavezarzycki/swift

branch : pr32059

created branch time in 3 days

pull request commentapple/swift

[CMake] Simplify two binary variables into one tri-state variable

@swift-ci please clean test linux

davezarzycki

comment created time in 3 days

push eventdavezarzycki/swift

Owen Voorhees

commit sha c4e67e29edeb60c195726812a8317707b45ab258

[Diagnostics] Add -diagnostic-style=(llvm|swift) to control printed output This default formatting style remains the same "LLVM style". "Swift style" is what was previously enabled via -enable-experimental-diagnostic-formatting

view details

Nate Chandler

commit sha ccf6209a6b75f9327c2bc5e18988171cc75a4558

[prespecialized metadata] Allow existential arguments.

view details

Erik Eckstein

commit sha 9722578df69e886006db241f665f9ced03f40b33

SILOptimizer: a new optimization for copy-on-write Constant folds the uniqueness result of begin_cow_mutation instructions, if it can be proved that the buffer argument is uniquely referenced. For example: %buffer = end_cow_mutation %mutable_buffer // ... // %buffer does not escape here // ... (%is_unique, %mutable_buffer2) = begin_cow_mutation %buffer cond_br %is_unique, ... is replaced with %buffer = end_cow_mutation [keep_unique] %mutable_buffer // ... (%not_used, %mutable_buffer2) = begin_cow_mutation %buffer %true = integer_literal 1 cond_br %true, ... Note that the keep_unique flag is set on the end_cow_mutation because the code now relies on that the buffer is really uniquely referenced. The optimization can also handle def-use chains between end_cow_mutation and begin_cow_mutation which involve phi-arguments. An additional peephole optimization is performed: if the begin_cow_mutation is the only use of the end_cow_mutation, the whole pair of instructions is eliminated.

view details

Erik Eckstein

commit sha e3ac98cdbfd33c2223fa4c098dcf0bd0a7ba0b73

FunctionSignatureTransforms: add a semantics attribute to prevent the owned-to-guarantee transformation. If a function is annotated with @_semantics("optimize.sil.specialize.owned2guarantee.never") its arguments will not be converted from owned to guaranteed.

view details

Erik Eckstein

commit sha 4ca6b31500f931f8aa5d1772d8f3b99c09faf1eb

SILCombine: remove dead casts and end_cow_mutation instructions which are only destroyed. If the only use of an upcast, unchecked_ref_cast or end_cow_mutation is a destroy/release, just destroy the operand and remove the cast/end_cow_mutation.

view details

Erik Eckstein

commit sha 01465d9ba4aac774596d67e59dead3c4a95ef784

SILCombine: Remove a cast if it's only used by an end_cow_mutation. (end_cow_mutation (upcast X)) -> (end_cow_mutation X) (end_cow_mutation (unchecked_ref_cast X)) -> (end_cow_mutation X)

view details

Erik Eckstein

commit sha 2403e56eb5253295dc6785693b03d0b77c9d96e9

SIL: new "array.end_mutation" and "array.finalize_intrinsic" array semantics Used to "finalize" an array literal. It's not used, yet. So this is NFC. Also handle the "array.finalize_intrinsic" function in various array specific optimizations.

view details

Erik Eckstein

commit sha 33c8e16ce04300f792c995b7f611d14fe3f4b0a0

SIL optimizer: Support begin_cow_mutation and end_cow_mutation in some optimizations. Mostly this is about "looking through" a begin_cow_mutation or end_cow_mutation.

view details

Erik Eckstein

commit sha 16bd756f7beebbd4e6dbff8f5ea031a823074e1d

tests: make some test more robust for optimizer changes. This is in preparation for COW support. More optimizer tests require an optimized non-assert stdlib build.

view details

Erik Eckstein

commit sha 99f4d854292e22213330c1eca36c5ce0bcdab42b

ArraySemantics: support "array.check_subscript" as a two-parameter function. Support a version of Array._checkSubscript which has no wasNativeTypeChecked parameter.

view details

Erik Eckstein

commit sha 216eec2d211d5d5c541405070eea86d9aaeb0601

SIL optimizer: add an additional LICM pass to the pipeline. The COWOpts optimization relies more on LICM. This additional run of the pass ensures that there is no phase ordering issue between LICM and COWOpts

view details

Erik Eckstein

commit sha 3f42ad704c3c7f5b575d845438a0509747602048

DeadObjectElimination: don't let fix_lifetime prevent dead array elimination

view details

Pavel Yaskevich

commit sha c884068bfa82c3647bdc3e298753ed7c0657494b

[ConstraintSystem] Tally implicit optional wraps into impact of pointer mismatch Impact of cases where pointer types mismatch after implict optional wrap(s) should be higher than mismatch alone. Distinguishing that helps to disambiguate following case (and other similar ones) without using ranking: ```swift func foo(_: UnsafePointer<Int>) {} func foo(_: UnsafePointer<Int>?) {} func test(_ ptr: UnsafePointer<Float>) { foo(ptr) } ```

view details

Alexis Laferrière

commit sha 6bead5c436a91b9275e20977a808f625465824be

[Parse] Fix source range of SPI attributes rdar://problem/63554849

view details

Robert Widmann

commit sha 369b2aba8c97b142824687add3b79ff9e1dce119

Add a Regression Test For Scenario Improved By Private Dependencies The basic setup is this - Suppose that three files define four types: // File 1 struct A {} // File 2 struct B { let x: A } struct C { } // File 3 struct D { let x: C } If type 'A' is perturbed, we could expect that File 2 would rebuild because B has a member of type A. What we don't expect is for File 3 to rebuild, but thanks to cascading edges that is precisely that happens! This is because the member x in File 3 creates a cascading edge to File 2, and that edge is traversed while evaluating the cascading edge from File 2 to File 1. With private dependencies, the expected rebuild behavior is restored. Commit a regression test to this effect.

view details

Erik Eckstein

commit sha aed0d91fc9d1110b801f362afc68cf60dd4927a1

tests: temporarily disable Runtime/linux-fatal-backtrace.swift It's blocking linux PR testing rdar://problem/63666780

view details

Mike Ash

commit sha 456775f8b4ce5e9416dd0e8db128f0a4e9a2abc7

Merge pull request #32035 from eeckstein/disable-linux-test tests: temporarily disable Runtime/linux-fatal-backtrace.swift

view details

Rintaro Ishizaki

commit sha ad51f4f1a8430df0e4550bbf7a29d93904cf0a69

[CodeCompletion] Fix non-determinisc failures in dependency check test cases Sleep a few seconds to ensure the timestamp of the modified files are different from the last completion. rdar://problem/62923248

view details

Hamish Knight

commit sha bccdc0e062e6ca6994b314ce242d8597bf57a274

NFC: Rename performSILGeneration -> performASTLowering And also rename the underlying request and descriptor. This rename is motivated by the fact that the operation may instead perform parsing of SIL files and/or deserialization of SIB files.

view details

Pavel Yaskevich

commit sha 9d322fef28a2e49711d5bd5a56cee2c54ccdc327

Merge pull request #32029 from xedin/account-for-optionality-with-ptrs [ConstraintSystem] Tally implicit optional wraps into impact of point…

view details

push time in 3 days

push eventdavezarzycki/llvm-project

Craig Topper

commit sha b4978b24445cdc33311bbdb661060f9d9229efe9

[X86] Use SIMD_EXC to remove some let statements in tablegen. NFCI

view details

Craig Topper

commit sha 84cf8ed8fd3f950b6e30225cae6f092da768cbe6

[X86] Lower sse_cmp_ss/sse2_cmp_sd intrinsics to X86ISD::FSETCC with vector types. Isel match that instead of the intrinsic. Similar to what we do for avx512. Trying to move more intrinsics to target specific ISD opcodes. Hoping to add DAG combines to shrink simple loads going into scalar intrinsics that only read 32 or 64 bits.

view details

serge-sans-paille

commit sha de02a75e398415bad4df27b4547c25b896c8bf3b

[PGO] Fix computation of function Hash And bump its version number accordingly. This is a patched recommit of 7c298c104bfe725d4315926a656263e8a5ac3054 Previous hash implementation was incorrectly passing an uint64_t, that got converted to an uint8_t, to finalize the hash computation. This led to different functions having the same hash if they only differ by the remaining statements, which is incorrect. Added a new test case that trivially tests that a small function change is reflected in the hash value. Not that as this patch fixes the hash computation, it would invalidate all hashes computed before that patch applies, this is why we bumped the version number. Update profile data hash entries due to hash function update, except for binary version, in which case we keep the buggy behavior for backward compatibility. Differential Revision: https://reviews.llvm.org/D79961

view details

Mehdi Amini

commit sha 0b5d81e6bbad1656c2e059621948967aaeaa5702

Automatically configure MLIR when flang is enabled This is more friendly than the "Unknown CMake command “mlir_tablegen”." that would be issued instead. Differential Revision: https://reviews.llvm.org/D80359

view details

Saiyedul Islam

commit sha 602d9b0afc77828f419869289b159a567c62ae81

[OpenMP][AMDGCN] Support OpenMP offloading for AMDGCN architecture - Part 1 Summary: Allow AMDGCN as a GPU offloading target for OpenMP during compiler invocation and allow setting CUDAMode for it. Originally authored by Greg Rodgers (@gregrodgers). Reviewers: ronlieb, yaxunl, b-sumner, scchan, JonChesterfield, jdoerfert, sameerds, msearles, hliao, arsenm Reviewed By: sameerds Subscribers: sstefan1, jvesely, wdng, arsenm, guansong, dexonsmith, cfe-commits, llvm-commits, gregrodgers Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D79754

view details

Daniil Suchkov

commit sha fc44da746faab5c0ad20e9de8b8fca43b7c5f408

Add test exposing a bug in SimpleLoopUnswitch.

view details

Kazushi (Jam) Marukawa

commit sha dedaf3a2ac59548c70a0d54da7267bbb082782c0

[VE] Dynamic stack allocation Summary: This patch implements dynamic stack allocation for the VE target. Changes: * compiler-rt: `__ve_grow_stack` to request stack allocation on the VE. * VE: base pointer support, dynamic stack allocation. Differential Revision: https://reviews.llvm.org/D79084

view details

Craig Topper

commit sha a1dfd6d828ac4f8e11e8013b952f0ef080890dcf

[X86] Add helper function to reduce some code duplication when shrinking a vector load to a vzext_load. There's more code for calling CombineTo and replacing the nodes that I'd like to share, but its complicated by the getNode call in the middle that needs to be specific to each opcode. While there are also make sure we recursively delete the load we're replacing. It eventually gets removed by a RemoveDeadNodes call at the end of DAG combine, but we should be more eager about it. We were inconsistently doing this in some places but not all.

view details

Djordje Todorovic

commit sha 65030821d4a6af94b84a33e66a40c08ca26f1526

[NFC][Debugify] Format the CheckModuleDebugify output This fixes the output of the check-debugify option. Without the patch an example of running the option: $ opt -check-debugify test.ll -S -o testDebugify.ll CheckModuleDebugifySkipping module without debugify metadata After the patch: $ opt -check-debugify test.ll -S -o testDebugify.ll CheckModuleDebugify: Skipping module without debugify metadata Differential Revision: https://reviews.llvm.org/D80553

view details

Georgii Rymar

commit sha 84c643358691b8057199e8c8597428ad0d960786

[DebugInfo] - Fix typo in comment. NFC. I've forgot to address this bit when landed D80476.

view details

Vitaly Buka

commit sha b101c6251a9bce8dc11f47bce70ee169e9fe5bfe

[StackSafety] Ignore some use of values We should ignore value used in MemTransferInst as other then src/dst argument.

view details

Vitaly Buka

commit sha 06a07dd6080c72ca886cc7bb21beef2a372d94cf

[StackSafety] Fix formatting in the test

view details

Vitaly Buka

commit sha f6383643d9e84a139f68cbe19fa16d4969d20d5c

[StackSafety] Bailout on some function calls Don't miss values used in calls outside regular argument list.

view details

Konstantin Schwarz

commit sha f2fad3f703aa20cc7b452bdf1605cb46eb960653

[GlobalISel][InlineAsm] Add missing EarlyClobber flag to inline asm output operands Summary: Previously, we only added early-clobber flags to the 'group' immediate flag operand of an inline asm operand. However, we also have to add the EarlyClobber flag to the MachineOperand itself. This fixes PR46028 Reviewers: arsenm, leonardchan Reviewed By: arsenm, leonardchan Subscribers: phosek, wdng, rovka, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80467

view details

Simon Pilgrim

commit sha 410667f1b74c614d9382f180d29f5aa1e42cc5c9

[X86][SSE] Convert PTEST to MOVMSK for allsign bits vector results If we are using PTEST to check 'allsign bits' vector elements we can use MOVMSK to extract the signbits directly and perform the comparison on the scalar value. For vXi16 cases, as we don't have a MOVMSK for this type, we must mask each signbit out of a PMOVMSKB v2Xi8 result, which folds into the TEST comparison. If this allows us to remove a vector op (via the SimplifyMultipleUseDemandedBits call) this is consistently faster than a PTEST (https://godbolt.org/z/ziJUst). I'm investigating whether we ever get regressions without the SimplifyMultipleUseDemandedBits call, even if this means we don't remove a vector op, but that has exposed some other poor codegen issues that I'm still investigating and would have to wait for a later patch. Suggested on PR42035 to avoid unnecessary ashr(x,bw-1)/pcmpgt(0,x) sign splat patterns feeding into ptest. Differential Revision: https://reviews.llvm.org/D80563

view details

Simon Pilgrim

commit sha 35963f6d8519d7384c9040d629cbb4cf6ff96de8

VPlanValue.h - reduce unnecessary includes to forward declarations. NFC.

view details

Raphael Isemann

commit sha 019bd6485c52a62c008eacfdf0d13a26ca6b0a6f

[lldb] Don't complete ObjCInterfaceDecls in ClangExternalASTSourceCallbacks::FindExternalVisibleDeclsByName Summary: For ObjCInterfaceDecls, LLDB iterates over the `methods` of the interface in FindExternalVisibleDeclsByName since commit ef423a3ba57045f80b0fcafce72121449a8b54d4 . However, when LLDB calls `oid->methods()` in that function, Clang will pull in all declarations in the current DeclContext from the current ExternalASTSource (which is again, `ClangExternalASTSourceCallbacks`). The reason for that is that `methods()` is just a wrapper for `decls()` which is supposed to provide a list of *all* (both currently loaded and external) decls in the DeclContext. However, `ClangExternalASTSourceCallbacks::FindExternalLexicalDecls` doesn't implement support for ObjCInterfaceDecl, so we don't actually add any declarations and just mark the ObjCInterfaceDecl as having no ExternalLexicalStorage. As LLDB uses the ExternalLexicalStorage to see if it can complete a type with the ExternalASTSource, this causes that LLDB thinks our class can't be completed any further by the ExternalASTSource and will from on no longer make any CompleteType/FindExternalLexicalDecls calls to that decl. This essentially renders those types unusable in the expression parser as they will always be considered incomplete. This patch just changes the call to `methods` (which is just a `decls()` wrapper), to some ad-hoc `noload_methods` call which is wrapping `noload_decls()`. `noload_decls()` won't trigger any calls to the ExternalASTSource, so this prevents that ExternalLexicalStorage will be set to false. The test for this is just adding a method to an ObjC interface. Before this patch, this unset the ExternalLexicalStorage flag and put the interface into the state described above. In a normal user session this situation was triggered by setting a breakpoint in a method of some ObjC class. This caused LLDB to create the MethodDecl for that specific method and put it into the the ObjCInterfaceDecl. Also `ObjCLanguageRuntime::LookupInCompleteClassCache` needs to be unable to resolve the type do an actual definition when the breakpoint is set (I'm not sure how exactly this can happen, but we just found no Type instance that had the `TypePayloadClang::IsCompleteObjCClass` flag set in its payload in the situation where this happens. This however doesn't seem to be a regression as logic wasn't changed from what I can see). The module-ownership.mm test had to be changed as the only reason why the ObjC interface in that test had it's ExternalLexicalStorage flag set to false was because of this unintended side effect. What actually happens in the test is that ExternalLexicalStorage is first set to false in `DWARFASTParserClang::CompleteTypeFromDWARF` when we try to complete the `SomeClass` interface, but is then the flag is set back to true once we add the last ivar of `SomeClass` (see `SetMemberOwningModule` in `TypeSystemClang.cpp` which is called when we add the ivar). I'll fix the code for that in a follow-up patch. I think some of the code here needs some rethinking. LLDB and Clang shouldn't infer anything about the ExternalASTSource and its ability to complete the current type form the `ExternalLexicalStorage` flag. We probably should also actually provide any declarations when we get asked for the lexical decls of an ObjCInterfaceDecl. But both of those changes are bigger (and most likely would cause us to eagerly complete more types), so those will be follow up patches and this patch just brings us back to the state before commit ef423a3ba57045f80b0fcafce72121449a8b54d4 . Fixes rdar://63584164 Reviewers: aprantl, friss, shafik Reviewed By: aprantl, shafik Subscribers: arphaman, abidh, JDevlieghere Differential Revision: https://reviews.llvm.org/D80556

view details

Georgii Rymar

commit sha fc98447af65f5a51d3b62a7e76a056d2556be59d

[llvm-readobj] - Do not skip building of the GNU hash table histogram. When the `--elf-hash-histogram` is used, the code first tries to build a histogram for the .hash table and then for the .gnu.hash table. The problem is that dumper might return early when unable or do not need to build a histogram for the .hash. This patch reorders the code slightly to fix the issue and adds a test case. Differential revision: https://reviews.llvm.org/D80204

view details

Simon Pilgrim

commit sha 8062602810fed6fe377deabe8abd563a0c5d1809

DOTGraphTraitsPass.h - remove unnecessary includes. NFC.

view details

Simon Pilgrim

commit sha 1e9462a201c3a09612e7fe8d56a0be0829e99dcf

ArchiveWriter.h - remove unnecessary includes. NFC.

view details

push time in 3 days

push eventdavezarzycki/llvm-project

Jinsong Ji

commit sha 5ee902bb5f3a843230f45dcd7b8101de71da7c83

[compiler-rt][asan] Add noinline to use-after-scope testcases Some testcases are unexpectedly passing with NPM. This is because the target functions are inlined in NPM. I think we should add noinline attribute to keep these test points. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D79648

view details

Alex Zinenko

commit sha cadb7ccf2cebcaa2d546db77223bde3d69a162af

[mlir] SCF: provide function_ref builders for IfOp Now that OpBuilder is available in `build` functions, it becomes possible to populate the "then" and "else" regions directly when building the "if" operation. This is desirable in more structured forms of builders, especially in when conditionals are mixed with loops. Provide new `build` APIs taking callbacks for body constructors, similarly to scf::ForOp, and replace more clunky edsc::BlockBuilder uses with these. The original APIs remain available and go through the new implementation. Differential Revision: https://reviews.llvm.org/D80527

view details

Ties Stuij

commit sha 42eba9b40b25cceeb3e6d432047c5ef99d4a7b50

[AArch64][BFloat] basic AArch64 bfloat support Summary: This patch adds the bfloat type to the AArch64 backend: - adds it as part of the FPR16 register class - adds bfloat calling conventions - as f16 is now not the only FPR16 type anymore, we need to constrain a number of instruction patterns using FPR16Op to help out the TableGen type inferrer This patch is part of a series implementing the Bfloat16 extension of the Armv8.6-a architecture, as detailed here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a The bfloat type, and its properties are specified in the Arm Architecture Reference Manual: https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile Reviewers: t.p.northover, c-rhodes, fpetrogalli, sdesmalen, ostannard, LukeGeeson, ab Reviewed By: fpetrogalli Subscribers: pbarrio, LukeGeeson, kristof.beyls, hiraditya, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79709

view details

Dmitry Vyukov

commit sha 4408eeed0ff191304121c11168aa1db861cccb97

tsan: fix false positives in AcquireGlobal Add ThreadClock:: global_acquire_ which is the last time another thread has done a global acquire of this thread's clock. It helps to avoid problem described in: https://github.com/golang/go/issues/39186 See test/tsan/java_finalizer2.cpp for a regression test. Note the failuire is _extremely_ hard to hit, so if you are trying to reproduce it, you may want to run something like: $ go get golang.org/x/tools/cmd/stress $ stress -p=64 ./a.out The crux of the problem is roughly as follows. A number of O(1) optimizations in the clocks algorithm assume proper transitive cumulative propagation of clock values. The AcquireGlobal operation may produce an inconsistent non-linearazable view of thread clocks. Namely, it may acquire a later value from a thread with a higher ID, but fail to acquire an earlier value from a thread with a lower ID. If a thread that executed AcquireGlobal then releases to a sync clock, it will spoil the sync clock with the inconsistent values. If another thread later releases to the sync clock, the optimized algorithm may break. The exact sequence of events that leads to the failure. - thread 1 executes AcquireGlobal - thread 1 acquires value 1 for thread 2 - thread 2 increments clock to 2 - thread 2 releases to sync object 1 - thread 3 at time 1 - thread 3 acquires from sync object 1 - thread 1 acquires value 1 for thread 3 - thread 1 releases to sync object 2 - sync object 2 clock has 1 for thread 2 and 1 for thread 3 - thread 3 releases to sync object 2 - thread 3 sees value 1 in the clock for itself and decides that it has already released to the clock and did not acquire anything from other threads after that (the last_acquire_ check in release operation) - thread 3 does not update the value for thread 2 in the clock from 1 to 2 - thread 4 acquires from sync object 2 - thread 4 detects a false race with thread 2 as it should have been synchronized with thread 2 up to time 2, but because of the broken clock it is now synchronized only up to time 1 The global_acquire_ value helps to prevent this scenario. Namely, thread 3 will not trust any own clock values up to global_acquire_ for the purposes of the last_acquire_ optimization. Reviewed-in: https://reviews.llvm.org/D80474 Reported-by: nvanbenschoten (Nathan VanBenschoten)

view details

Ties Stuij

commit sha 78bd0c0e5e8fbbfbb9f827bdd1f83f91ed3437fa

[AArch64][BFloat] add BFloat instruction support for AArch64 Summary: Add support for lowering various BFloat related SelDAG nodes: - load/store (ldrh/strh) - concat - dup/duplane - bitconvert/bitcast - insert_subvector/insert_subreg This patch is part of a series implementing the Bfloat16 extension of the Armv8.6-a architecture, as detailed here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a The bfloat type, and its properties are specified in the Arm Architecture Reference Manual: https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile Reviewers: ab, t.p.northover, john.brawn, fpetrogalli, sdesmalen, LukeGeeson Reviewed By: fpetrogalli Subscribers: LukeGeeson, pbarrio, kristof.beyls, hiraditya, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79712

view details

Lei Huang

commit sha 559845f8fe53fabb22f9a392e8d34761df250c72

Revert "[PowerPC] Add support for -mcpu=pwr10 in both clang and llvm" This reverts commit 7eb666b1556b86503f2f386bf921186cdbb2d22a.

view details

Simon Pilgrim

commit sha b5b00877221ec7817b9de9cd65571e1c05e80145

SpecialCaseList.h - reduce unnecessary includes to forward declarations. NFC. Remove Regex forward declaration as we already require the Regex.h include. Add missing VirtualFileSystem.h include to dependent source files.

view details

Eduardo Caldas

commit sha 461af57de78155ee5d1dc1969b81dd019d228538

Add support for UnaryOperator in SyntaxTree Reviewers: gribozavr2 Reviewed By: gribozavr2 Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80624

view details

Alex Richardson

commit sha 3be5e53f208d63135bb4e8499abdc1ac8a2b3266

[FileCheck] Allow parenthesized expressions With this change it is be possible to write FileCheck expressions such as [[#(VAR+1)-2]]. Currently, the only supported arithmetic operators are plus and minus, so this is not particularly useful yet. However, it our CHERI fork we have tests that benefit from having multiplication in FileCheck expressions. Allowing parenthesized expressions is the simplest way for us to work around the current lack of operator precedence in FileCheck expressions. Reviewed By: thopre, jhenderson Differential Revision: https://reviews.llvm.org/D77383

view details

Alexey Bataev

commit sha a888fc6b3412574f5869a8680acf4ed2bed1d2a2

[OPENMP50]Initial support for use_device_addr clause. Summary: Added parsing/sema analysis/serialization support for use_device_addr clauses. Reviewers: jdoerfert Subscribers: yaxunl, guansong, arphaman, sstefan1, llvm-commits, cfe-commits, caomhin Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D80404

view details

Jacques Pienaar

commit sha 31f40f603d0c00b313397196124c5f39090badf0

[mlir] Add simple generator for return types Take advantage of equality constrains to generate the type inference interface. This is used for equality and trivially built types. The type inference method is only generated when no type inference trait is specified already. This reorders verification that changes some test error messages. Differential Revision: https://reviews.llvm.org/D80484

view details

Simon Pilgrim

commit sha 6022efb0e9cbb350f7b690acd0cfa4b87b1dfe87

CoverageFilters.h - reduce unnecessary includes to forward declarations. NFC.

view details

James Y Knight

commit sha aca3d067efe194539efd1e0fcf03820a2c377753

Fix Darwin 'constinit thread_local' variables. Unlike other platforms using ItaniumCXXABI, Darwin does not allow the creation of a thread-wrapper function for a variable in the TU of users. Because of this, it can set the linkage of the thread-local symbol to internal, with the assumption that no TUs other than the one defining the variable will need it. However, constinit thread_local variables do not require the use of the thread-wrapper call, so users reference the variable directly. Thus, it must not be converted to internal, or users will get a link failure. This was a regression introduced by the optimization in 00223827a952f66e7426c9881a2a4229e59bb019. Differential Revision: https://reviews.llvm.org/D80417

view details

Michael Liao

commit sha b0404681171d8cfebdb1f439f45aeb1001321eb7

Fix warning `-Wpedantic`. NFC.

view details

Paul Walker

commit sha 495f18292b2bc90a162b79d187c6d14ecfbe98f9

[VFABI] Fix parsing of uniform parameters that shouldn't expect step or positional data. Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80575

view details

Philip Reames

commit sha 1af3705c7fe23db9d5308bfdf07bfbd04398b895

Start migrating away from statepoint's inline length prefixed argument bundles In the current statepoint design, we have four distinct groups of operands to the call: call args, gc transition args, deopt args, and gc args. This format prexisted the support in IR for operand bundles and was in fact one of the inspirations for the extension. However, we never went back and rearchitected statepoints to fully leverage bundles. This change is the first in a small sequence to do so. All this does is extend the SelectionDAG lowering code to allow deopt and gc transition operands to be specified in either inline argument bundles or operand bundles. Differential Revision: https://reviews.llvm.org/D8059

view details

David Truby

commit sha 5ba874e4724e72838dfbb3e4b40392e0b24cc6f4

[MLIR] [OpenMP] Add basic OpenMP parallel operation Summary: This includes a basic implementation for the OpenMP parallel operation without a custom pretty-printer and parser. The if, num_threads, private, shared, first_private, last_private, proc_bind and default clauses are included in this implementation. Currently the reduction clause is omitted as it is more complex and requires analysis to see if we can share implementation with the loop dialect. The allocate clause is also omitted. A discussion about the design of this operation can be found here: https://llvm.discourse.group/t/openmp-parallel-operation-design-issues/686 The current OpenMP Specification can be found here: https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf Co-authored-by: Kiran Chandramohan <kiran.chandramohan@arm.com> Reviewers: jdoerfert Subscribers: mgorny, yaxunl, kristof.beyls, guansong, mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79410

view details

Nico Weber

commit sha 4f0eba28eba873de402d9742d62fcae89f4c2363

[gn build] (manually) port dedaf3a2ac5

view details

Bardia Mahjour

commit sha 0d20ed664ff2d51dae14f9324a64e4433e6b663e

[DDG] Data Dependence Graph - Add query function for memory dependencies between two nodes Summary: When working with the DDG it's useful to be able to query details of the memory dependencies between two nodes connected by a memory edge. The DDG does not hold a copy of the dependencies, but it contains a reference to a DependenceInfo object through which dependence information can be queried. This patch adds a query function to the DDG to obtain all the Dependence objects that exist between instructions of two nodes. Authored By: bmahjour Reviewers: Meinersbur, Whitney, etiotto Reviewed By: Whitney Tags: #llvm Differential Revision: https://reviews.llvm.org/D80529

view details

LLVM GN Syncbot

commit sha bed78845e555790c0bcbe34d04436fae41a3fa5f

[gn build] Port 0d20ed664ff

view details

push time in 3 days

pull request commentapple/swift

[CMake] Simplify two binary variables into one tri-state variable

Hi @compnerd and @drodriguez – I've simplified AddSwift.cmake more. I think we should make SWIFT_USE_LINKER be as much like LLVM_USE_LINKER as possible. In other words, if it's set, trust it.

@swift-ci please test

davezarzycki

comment created time in 3 days

push eventdavezarzycki/swift

Owen Voorhees

commit sha c4e67e29edeb60c195726812a8317707b45ab258

[Diagnostics] Add -diagnostic-style=(llvm|swift) to control printed output This default formatting style remains the same "LLVM style". "Swift style" is what was previously enabled via -enable-experimental-diagnostic-formatting

view details

Nate Chandler

commit sha ccf6209a6b75f9327c2bc5e18988171cc75a4558

[prespecialized metadata] Allow existential arguments.

view details

Erik Eckstein

commit sha 9722578df69e886006db241f665f9ced03f40b33

SILOptimizer: a new optimization for copy-on-write Constant folds the uniqueness result of begin_cow_mutation instructions, if it can be proved that the buffer argument is uniquely referenced. For example: %buffer = end_cow_mutation %mutable_buffer // ... // %buffer does not escape here // ... (%is_unique, %mutable_buffer2) = begin_cow_mutation %buffer cond_br %is_unique, ... is replaced with %buffer = end_cow_mutation [keep_unique] %mutable_buffer // ... (%not_used, %mutable_buffer2) = begin_cow_mutation %buffer %true = integer_literal 1 cond_br %true, ... Note that the keep_unique flag is set on the end_cow_mutation because the code now relies on that the buffer is really uniquely referenced. The optimization can also handle def-use chains between end_cow_mutation and begin_cow_mutation which involve phi-arguments. An additional peephole optimization is performed: if the begin_cow_mutation is the only use of the end_cow_mutation, the whole pair of instructions is eliminated.

view details

Erik Eckstein

commit sha e3ac98cdbfd33c2223fa4c098dcf0bd0a7ba0b73

FunctionSignatureTransforms: add a semantics attribute to prevent the owned-to-guarantee transformation. If a function is annotated with @_semantics("optimize.sil.specialize.owned2guarantee.never") its arguments will not be converted from owned to guaranteed.

view details

Erik Eckstein

commit sha 4ca6b31500f931f8aa5d1772d8f3b99c09faf1eb

SILCombine: remove dead casts and end_cow_mutation instructions which are only destroyed. If the only use of an upcast, unchecked_ref_cast or end_cow_mutation is a destroy/release, just destroy the operand and remove the cast/end_cow_mutation.

view details

Erik Eckstein

commit sha 01465d9ba4aac774596d67e59dead3c4a95ef784

SILCombine: Remove a cast if it's only used by an end_cow_mutation. (end_cow_mutation (upcast X)) -> (end_cow_mutation X) (end_cow_mutation (unchecked_ref_cast X)) -> (end_cow_mutation X)

view details

Erik Eckstein

commit sha 2403e56eb5253295dc6785693b03d0b77c9d96e9

SIL: new "array.end_mutation" and "array.finalize_intrinsic" array semantics Used to "finalize" an array literal. It's not used, yet. So this is NFC. Also handle the "array.finalize_intrinsic" function in various array specific optimizations.

view details

Erik Eckstein

commit sha 33c8e16ce04300f792c995b7f611d14fe3f4b0a0

SIL optimizer: Support begin_cow_mutation and end_cow_mutation in some optimizations. Mostly this is about "looking through" a begin_cow_mutation or end_cow_mutation.

view details

Erik Eckstein

commit sha 16bd756f7beebbd4e6dbff8f5ea031a823074e1d

tests: make some test more robust for optimizer changes. This is in preparation for COW support. More optimizer tests require an optimized non-assert stdlib build.

view details

Erik Eckstein

commit sha 99f4d854292e22213330c1eca36c5ce0bcdab42b

ArraySemantics: support "array.check_subscript" as a two-parameter function. Support a version of Array._checkSubscript which has no wasNativeTypeChecked parameter.

view details

Erik Eckstein

commit sha 216eec2d211d5d5c541405070eea86d9aaeb0601

SIL optimizer: add an additional LICM pass to the pipeline. The COWOpts optimization relies more on LICM. This additional run of the pass ensures that there is no phase ordering issue between LICM and COWOpts

view details

Erik Eckstein

commit sha 3f42ad704c3c7f5b575d845438a0509747602048

DeadObjectElimination: don't let fix_lifetime prevent dead array elimination

view details

Pavel Yaskevich

commit sha c884068bfa82c3647bdc3e298753ed7c0657494b

[ConstraintSystem] Tally implicit optional wraps into impact of pointer mismatch Impact of cases where pointer types mismatch after implict optional wrap(s) should be higher than mismatch alone. Distinguishing that helps to disambiguate following case (and other similar ones) without using ranking: ```swift func foo(_: UnsafePointer<Int>) {} func foo(_: UnsafePointer<Int>?) {} func test(_ ptr: UnsafePointer<Float>) { foo(ptr) } ```

view details

Alexis Laferrière

commit sha 6bead5c436a91b9275e20977a808f625465824be

[Parse] Fix source range of SPI attributes rdar://problem/63554849

view details

Robert Widmann

commit sha 369b2aba8c97b142824687add3b79ff9e1dce119

Add a Regression Test For Scenario Improved By Private Dependencies The basic setup is this - Suppose that three files define four types: // File 1 struct A {} // File 2 struct B { let x: A } struct C { } // File 3 struct D { let x: C } If type 'A' is perturbed, we could expect that File 2 would rebuild because B has a member of type A. What we don't expect is for File 3 to rebuild, but thanks to cascading edges that is precisely that happens! This is because the member x in File 3 creates a cascading edge to File 2, and that edge is traversed while evaluating the cascading edge from File 2 to File 1. With private dependencies, the expected rebuild behavior is restored. Commit a regression test to this effect.

view details

Rintaro Ishizaki

commit sha ad51f4f1a8430df0e4550bbf7a29d93904cf0a69

[CodeCompletion] Fix non-determinisc failures in dependency check test cases Sleep a few seconds to ensure the timestamp of the modified files are different from the last completion. rdar://problem/62923248

view details

Hamish Knight

commit sha bccdc0e062e6ca6994b314ce242d8597bf57a274

NFC: Rename performSILGeneration -> performASTLowering And also rename the underlying request and descriptor. This rename is motivated by the fact that the operation may instead perform parsing of SIL files and/or deserialization of SIB files.

view details

Pavel Yaskevich

commit sha 9d322fef28a2e49711d5bd5a56cee2c54ccdc327

Merge pull request #32029 from xedin/account-for-optionality-with-ptrs [ConstraintSystem] Tally implicit optional wraps into impact of point…

view details

Robert Widmann

commit sha 21f5032f585b39d43dbd5c718849ed9f5eda7d06

Merge pull request #32032 from CodaFi/cascadia Add a Regression Test For Scenario Improved By Private Dependencies

view details

Alexis Laferrière

commit sha 828720c58fbbc49c98567ce8a3e5af100f01728b

Merge pull request #32026 from xymus/spi-attr-range [Parser] Fix source range of SPI attributes

view details

push time in 3 days

pull request commentapple/swift

[CMake] Simplify two binary variables into one tri-state variable

@swift-ci please test

davezarzycki

comment created time in 4 days

PR opened apple/swift

Reviewers
[CMake] Simplify two binary variables into one tri-state variable

Also remove some ancient logic to detect and ignore requests to use LLD. If people want to explicitly use LLD, they probably have a reason and we shouldn't second guess them.

+24 -39

0 comment

6 changed files

pr created time in 4 days

create barnchdavezarzycki/swift

branch : pr32042

created branch time in 4 days

push eventdavezarzycki/llvm-project

Ties Stuij

commit sha 0508fb45dfbc3ffde6bacc1e52177f3972a3eb99

[CodeGen][BFloat] Add bfloat MVT type Summary: This patch adds BFloat MVT support. It also adds fixed and scalable vector MVT types for BFloat. This patch is part of a series that adds support for the Bfloat16 extension of the Armv8.6-a architecture, as detailed here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a The bfloat type, and its properties are specified in the Arm Architecture Reference Manual: https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile Reviewers: aemerson, huntergr, craig.topper, fpetrogalli, sdesmalen, LukeGeeson, ostannard Reviewed By: ostannard Subscribers: LukeGeeson, pbarrio, dschuff, kristof.beyls, hiraditya, aheejin, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79706

view details

Simon Pilgrim

commit sha ae07fabf6a705b7eb91e801d7735bda4a319567c

ObjCARCInstKind.h - remove unused includes. NFC.

view details

Simon Pilgrim

commit sha 0865d41492a7f2e8ca8ab70cb3baa121b747e9a7

ObjectFile.h - reduce unnecessary includes to forward declarations. NFC. Fix SubtargetFeature.h include dependency in XCOFFObjectFile.cpp

view details

Sanjay Patel

commit sha 2ee4ec6b6f6d0571288db69b824f6773717d2cf7

[IR] add set function for FMF 'contract' This was missed when the flag was added with D31164.

view details

Matt Arsenault

commit sha 833996cef1381115b0077ab5694e189463f5d02e

AMDGPU: Fix backwards s_cselect_* operands The vector equivalent has backwards operands, but the scalar version does not. The passes that use these hooks aren't enabled by default, so this doesn't really change anything.

view details

David Green

commit sha 70d4a202995315c77d7daec9f332a6ceda84efc9

[UnJ] Update LI for inner nested loops This makes sure to correctly register the loop info of the children of unroll and jammed loops. It re-uses some code from the unroller for registering subloops. Differential Revision: https://reviews.llvm.org/D80619

view details

Ties Stuij

commit sha ad5d319ee85d31ee2b1ca5c29b3a10b340513fec

[IR][BFloat] add BFloat IR intrinsics support Summary: This patch is part of a series that adds support for the Bfloat16 extension of the Armv8.6-a architecture, as detailed here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a The bfloat type, and its properties are specified in the Arm Architecture Reference Manual: https://developer.arm.com/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile Reviewers: scanon, fpetrogalli, sdesmalen, craig.topper, LukeGeeson Reviewed By: fpetrogalli Subscribers: LukeGeeson, pbarrio, kristof.beyls, hiraditya, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79707

view details

Georgii Rymar

commit sha 4ab03e62fd040efdbde4b6c310e5abbda5363abd

[llvm-readobj] - Do not crash when an invalid .eh_frame_hdr is dumped using --unwind. When the p_offset/p_filesz of the PT_GNU_EH_FRAME is invalid (e.g larger than the file size) then llvm-readobj might crash. This patch fixes the issue. I've introduced `ELFFile<ELFT>::getSegmentContent` method, which is very similar to `ELFFile<ELFT>::getSectionContentsAsArray` one. Differential revision: https://reviews.llvm.org/D80380

view details

push time in 4 days

push eventdavezarzycki/swift

Ashley Garland

commit sha 720d3d2f2adb8691e800a1dcd6293a51d6597782

[SymbolGraph] Show get/set on property/subscript full declarations But don't show them in subheading contexts. rdar://63233897

view details

Alex Binary

commit sha 7ea09a9032f58570655f4b1d19fcd4b0504f8c25

Fix comments on `_compactMap(_:)`

view details

Luciano Almeida

commit sha f13b00fc6def2d5bef9aee851c074c1ba870bafa

[CSFix] Adjusting tuple mismatch to handle optionals

view details

Luciano Almeida

commit sha c7fdbdf95e1b98799f285af3cab3b1d1fa8dc893

[tests] Adding regression tests for SR-12869

view details

Luciano Almeida

commit sha ab0e8a8e8e9b2cf70426d6e6263f07fd1c7c9504

[CSSimplify] Do not record IgnoreAssignmentDestinationType or contextual if we already record a tuple mismatch

view details

Luciano Almeida

commit sha 086ad339c946b5458999a467559b56566ca7b1be

[CSDiagnostics] Adjust tuple contextual mismatch diagnostics to handle Subscript assign to source

view details

Luciano Almeida

commit sha 2e1609e53385fc78b2a9d62dd81c97a918a5601c

[tests] Adjusting SR-12869 test cases for optional mismatches

view details

Doug Gregor

commit sha bf7eea08da9af6b6e9ac0ee604641db59e748ba7

[Function builders] Infer function builder from a protocol requirement. Allow a protocol requirement for a function or property to declare a function builder. A witness to such a protocol requirement will infer that function builder when all of the following are two: * The witness does not explicitly adopt a function builder * The witness is declared within the same context that conforms to the protocol requirement (e.g., same extension or primary type declaration) * The witness's body does not contain a "return" statement (since those disable the function builder transform).

view details

Doug Gregor

commit sha c5a9575ebc6799a065a61f8ecf58a1fe60abeb67

Cache LookupAllConformancesInContextRequest. Now that this request will be triggered more often, due to inference of function builders, cache the result.

view details

Doug Gregor

commit sha 54c1267217c95204eb63572d6f41222e22562143

[Function builders] Short-circuit function builder inference earlier. Eliminates both circular references and unwanted dependencies.

view details

Doug Gregor

commit sha 5d9d4f9434d58446c202b62bcc1d008b04bc9211

[Tests] Add newly-introduced dependencies to the incremental verifier.

view details

Luciano Almeida

commit sha e43cd9d78457c06fccd5a54d6e48e94a6114f839

[CSFix] Ajusting contextual type purpose for subscript destination for assign expr in getStructuralTypeContext

view details

Saleem Abdulrasool

commit sha bf9ae4bb251aaac959d1f41556d6b5c8e1490996

Platform: add RichEdit to modulemap Add RichEdit to the module map file for WinSDK.

view details

Doug Gregor

commit sha 8cec6b555d765379dd585e2ccb7eb079e74e98fe

[Function builders] Add tests for function builders on protocol requirements

view details

David Zarzycki

commit sha eab7cb7d38609b02ed0d69d38e0b7a21ff8732e0

[IRGen] NFC: Clean up Alignment type 1) Shrink from 4 bytes to 1 byte. 2) Assert that alignments are power-of-two at run time. 3) Assert that alignments are power-of-two at compile time when possible. 4) Eliminate "isZero"/"no alignment" from the type. Use llvm::Optional.

view details

Saleem Abdulrasool

commit sha 889e84a2029a28f25dd62c3bfc1a9a0241b0413f

Merge pull request #32012 from compnerd/richy-rich Platform: add RichEdit to modulemap

view details

Owen Voorhees

commit sha dac96989a4e8785c7848c302667a1ce4d0a0b485

Fix comparisons between presumed and buffer line numbers

view details

Pavel Yaskevich

commit sha b90e579927fd35d2ceba072525c7cc4caad63113

Merge pull request #32001 from LucianoPAlmeida/SR-12869-tuple-mismatch-crash [SR-12869] [Diagnostics] Fixes assertion hit on TupleContextualFailure involving optional tuple type

view details

Doug Gregor

commit sha 8e0ec601db1806918b76c1c349d608283348b081

Merge pull request #32005 from DougGregor/function-builder-infer [Function builders] Infer function builder from a protocol requirement.

view details

AG

commit sha ef7da4d47abec9af9f1adfcbd60800a5d2b10aa0

Merge pull request #31903 from bitjammer/acgarland/rdar-63233897-get-set-proto-req [SymbolGraph] Show get/set on property/subscript full declarations

view details

push time in 4 days

push eventdavezarzycki/llvm-project

David Green

commit sha 049c16ba93fa77df7984353b1a0124ed64fc0439

[ARM] MVE VMINV/VMAXV test additions. NFC

view details

Yitzhak Mandelbaum

commit sha ff2743bf047deac7ef6cc6c3efd30ff05e55b2ad

[libTooling] In Transformer, allow atomic changes to span multiple files. Summary: Currently, all changes returned by a single application of a rule must fit in one atomic change and therefore must apply to one file. However, there are patterns in which a single rule will want to modify multiple files; for example, a header and implementation to change a declaration and its definition. This patch relaxes Transformer, libTooling's interpreter of RewriteRules, to support multiple changes. Reviewers: gribozavr Subscribers: mgrang, jfb, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80239

view details

Tharindu Rusira

commit sha a3b5ccddcc3512432fc386b9197e6f103e190894

Update DialectConversion.md line 164: typo? baz.add should be bar.add. `bar.add` -> `foo.add`

view details

Nicolas Vasilache

commit sha 9578a54f5007e8a02cef449dd151da27837b388e

[mlir][Vector] Add vector contraction to outerproduct lowering This revision adds the additional lowering and exposes the patterns at a finer granularity for better programmatic reuse. The unit test makes use of the finer grained pattern for simpler checks. As the ContractionOpLowering is exposed programmatically, cleanup opportunities appear and static class methods are turned into free functions with static visibility. Differential Revision: https://reviews.llvm.org/D80375

view details

Sam Parker

commit sha 792575ff323b714d03215951c6fff105f1074aac

[NFC][ARM][AArch64] More code size tests Add analysis runs for icmp, fcmp and select instructions.

view details

Christian Sigg

commit sha 222e0e58a87649623b3d16ce3fef56a6a0555be3

[MLIR] Helper class referencing MemRefType to unify runner implementations. Summary: Add DynamicMemRefType which can reference one of the statically ranked StridedMemRefType or a UnrankedMemRefType so that runner utils only need to be implemented once. There is definitely room for more clean up and unification, but I will keep that for follow-ups. Reviewers: nicolasvasilache Reviewed By: nicolasvasilache Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80513

view details

Matt Arsenault

commit sha 2dd7714b8d264f6436b56582e4448f6a003a61fc

AMDGPU/GlobalISel: Don't select boolean phi by default This is currently missing most of the hard parts to lower correctly, so disable it for now. This fixes at least one OpenCL conformance test and allows it to pass with fallback. Hide this behind an option for now.

view details

Nemanja Ivanovic

commit sha 099a875f28d0131a6ae85af91b9eb8627917fbbe

[PowerPC] Unaligned FP default should apply to scalars only As reported in PR45186, we could be in a situation where we don't want to handle unaligned memory accesses for FP scalars but still have VSX (which allows unaligned access for vectors). Change the default to only apply to scalars. Fixes: https://bugs.llvm.org/show_bug.cgi?id=45186

view details

Daniel Frampton

commit sha e72cba975735c2202b254621d79fb9dbbed08d39

Use configure depends to trigger reconfiguration when LLVMBuild files change Summary: The existing logic has a workaround where configure_file is used to write a single dummy file output many times. CMake has a feature to more directly add the dependency and avoid the dummy file (it is available in the minimum version specified). Reviewers: theraven Reviewed By: theraven Subscribers: theraven, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80218

view details

Matt Arsenault

commit sha 8bc03d2168241f7b12265e9cd7e4eb7655709f34

GlobalISel: Merge G_PTR_MASK with llvm.ptrmask intrinsic Confusingly, these were unrelated and had different semantics. The G_PTR_MASK instruction predates the llvm.ptrmask intrinsic, but has a different format. G_PTR_MASK only allows clearing the low bits of a pointer, and only a constant number of bits. The ptrmask intrinsic allows an arbitrary mask. Replace G_PTR_MASK to match the intrinsic. Only selects the cases that look like the old instruction. More work is needed to select the general case. Also new legalization code is still needed to deal with the case where the incoming mask size does not match the pointer size, which has a specified behavior in the langref.

view details

Adrian Prantl

commit sha b59b3640bcbdfc6cf4b35ff3a6ad5f524a073b45

Debug Info: Mark os_log helper functions as artificial The os_log helper functions are linkonce_odr and supposed to be uniqued across TUs, so attachine a DW_AT_decl_line on it is highly misleading. By setting the function decl to implicit, CGDebugInfo properly marks the functions as artificial and uses a default file / line 0 location for the function. rdar://problem/63450824 Differential Revision: https://reviews.llvm.org/D80463

view details

Adrian Prantl

commit sha 6b7d51ad4a16579b0a7d41c77715be4d9e266d8c

Add missing forward decl to unbreak the modular build

view details

Matt Arsenault

commit sha 50d4b22ca0dd8f25a2ab2cb53a04627b2504ecfe

AMDGPU/GlobalISel: Fix assert on 16-bit G_EXTRACT results I consider this to be a hack, since we probably should not mark any 16-bit extract as legal, and require all extracts to be done on multiples of 32. There are quite a few more battles to fight in the legalizer for sub-dword vectors, so just select this for now so we can pass OpenCL conformance without crashing. Also fix the same assert for G_INSERTs. Unlike G_EXTRACT there's not a trivial way to select this so just fail on it.

view details

Sanne Wouda

commit sha 5bd97eb28aff252a3a9e8b0ef00d563b557f5580

Fix MemoryLocation.h use without Instructions.h MemoryLocation.h was changed to only include Instruction.h. However, cast<> still needs the full definiton, so move MemoryLocation::getOrNone to the cpp file.

view details

Sean Fertile

commit sha d6c8736287371f1c9eba3629819209c5fb54e546

[PowerPC][AIX] Spill CSRs to the ABI specified stack offsets. Extend the CSR save/restore insertion code to support both 32-bit and 64-bit AIX. Differential Revision: https://reviews.llvm.org/D79252

view details

Fangrui Song

commit sha bae7cf674621b5892a036fabe77692a59e2b115b

[ELF][PPC64] Synthesize _savegpr[01]_{14..31} and _restgpr[01]_{14..31} In the 64-bit ELF V2 API Specification: Power Architecture, 2.3.3.1. GPR Save and Restore Functions defines some special functions which may be referenced by GCC produced assembly (LLVM does not reference them). With GCC -Os, when the number of call-saved registers exceeds a certain threshold, GCC generates `_savegpr0_* _restgpr0_*` calls and expects the linker to define them. See https://sourceware.org/pipermail/binutils/2002-February/017444.html and https://sourceware.org/pipermail/binutils/2004-August/036765.html . This is weird because libgcc.a would be the natural place. However, the linker generation approach has the advantage that the linker can generate multiple copies to avoid long branch thunks. We don't consider the advantage significant enough to complicate our trunk implementation, so we take a simple approach. * Check whether `_savegpr0_{14..31}` are used * If yes, define needed symbols and add an InputSection with the code sequence. `_savegpr1_*` `_restgpr0_*` and `_restgpr1_*` are similar. Reviewed By: sfertile Differential Revision: https://reviews.llvm.org/D79977

view details

Jonas Devlieghere

commit sha d4086213c6d76fcaa5fa620ad680eaaf886cc66e

[dsymutil] Escape CFBundleIdentifier in plist. Revision 333565 started escaping HTML special characters in the plist written by dsymutil, but didn't include the updated CFBundleIdentifier.

view details

alex-t

commit sha fb38b98338cc87442e3451665e82bf1c8ef9388f

[AMDGPU] NFC target dependent requiresUniformRegister refactored out Summary: Target specific method encapsulated into the Target Lowering Info. Reviewers: rampitec, vpykhtin Reviewed By: rampitec Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70085

view details

Matt Arsenault

commit sha 9786e7552d5564268484357866088d0a054bccaf

Revert "[AMDGPU] NFC target dependent requiresUniformRegister refactored out" This reverts commit fb38b98338cc87442e3451665e82bf1c8ef9388f. This will regress compile time.

view details

Sanjay Patel

commit sha a0ce2338a0838ccb04e10bd4f8e9ec9d7136e1d2

[InstCombine] reassociate fsub+fadd with FMF to increase adds and throughput The -reassociate pass tends to transform this kind of pattern into something that is worse for vectorization and codegen. See PR43953: https://bugs.llvm.org/show_bug.cgi?id=43953

view details

push time in 4 days

push eventdavezarzycki/llvm-project

Pavel Labath

commit sha c34936dae734085c4bc01703da0f5b7456e1bf51

[lldb] s/dyn_cast/isa The cast result is unused and produces a warning with gcc.

view details

Sam Parker

commit sha 1f72d5880e332dfbd36c22388d2b72bd2bd70411

[CostModel] Check for free intrinsics in BasicTTI Recommitting part of "[CostModel] Unify Intrinsic Costs." de71def3f59dc9f12f67141b5040d8e15c84d08a Now that the 'free' intrinsic information has been sunk to the lowest level, query the base implementation in BasicTTI before doing anything else. I suspect this is the change that was causing the main changes, particularly the large effects on debug builds. Differential Revision: https://reviews.llvm.org/D80012

view details

Craig Topper

commit sha 80cc43b420a8ab8648f44fbb554b483a2998712d

[AArch64] Set i32 ISD::MULHU/S to Expand instead of Legal. Looks like there are no isel patterns for these. A DAG combine turns it into i64 multiply and a shift which hides this. Extracted from D80485

view details

Sam McCall

commit sha 1abb883a048153c83a4e11070219d23f362e7377

[clangd] Don't traverse the AST within uninteresting files during indexing Summary: We already skip function bodies from these files while parsing, and drop symbols found in them. However, traversing their ASTs still takes a substantial amount of time. Non-scientific benchmark on my machine: background-indexing llvm-project (llvm+clang+clang-tools-extra), wall time before: 7:46 after: 5:13 change: -33% Indexer.cpp libclang should be updated too, I'm less familiar with that code, and it's doing tricky things with the ShouldSkipFunctionBody callback, so it needs to be done separately. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80296

view details

Sam Parker

commit sha 64cfb8a864cf98dcd762a26d03cba95145b9aa41

[NFC][ARM] Add intrinsic code size runs Add code size analysis of arithmetic intrinsics.

view details

Sam Parker

commit sha 871556a494552c0f503eec17055f075bcd859937

[CostModel] Unify Intrinsic Costs. Recommitting most of the remaining changes from 259eb619ff6dcd5b6111d1686e18559b9ca004d4, but excluding the call to getUserCost from getInstructionThroughput. Though there's still no test changes, I doubt that this is an NFC... With the two getIntrinsicInstrCosts folded into one, now fold in the scalar/code-size orientated getIntrinsicCost. The remaining scalar intrinsics were memcpy, cttz and ctlz which now have special handling in the BasicTTI implementation. This had required a change in the AMDGPU backend for fabs as it should always be 'free'. I've also changed the X86 backend to return the BaseT implementation when the CostKind isn't RecipThroughput. Differential Revision: https://reviews.llvm.org/D80012

view details

Lucas Prates

commit sha 98cad555e29187a03e2bc3db5780762981913902

[Clang][AArch64] Capturing proper pointer alignment for Neon vld1 intrinsicts Summary: During CodeGen for AArch64 Neon intrinsics, Clang was incorrectly assuming all the pointers from which loads were being generated for vld1 intrinsics were aligned according to the intrinsics result type, causing alignment faults on the code generated by the backend. This patch updates vld1 intrinsics' CodeGen to properly capture the correct load alignment based on the type of the pointer provided as input for the intrinsic. Reviewers: t.p.northover, ostannard, pcc Reviewed By: ostannard Subscribers: kristof.beyls, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79721

view details

Georgii Rymar

commit sha 2569787e44595d31942da2bb5558931351929e57

[DebugInfo] - Fix multiple issues in DWARFDebugFrame::parse(). I've noticed an issue with "Data.getRelocatedValue(...)" call. it might silently ignore an error when a content is truncated. That leads to an infinite loop in the code (e.g. llvm-readobj hangs). After fixing the issue I've found that actually we always tried to read past the end of a section, even when a content was valid. It happened because the terminator CIE (a CIE with the length == 0) was never handled. At first I've tried just to stop adding the terminator entry (and return), but it does not seem to be correct, because tools like llvm-objdump might want to print something for such entries (see comments in the code and test cases). This patch fixes issues mentioned, provides new test cases for both llvm-readobj and lib/DebugInfo and adds FIXMEs to existent test cases related. Differential revision: https://reviews.llvm.org/D80299

view details

vpykhtin

commit sha 92f3828dc5675f9917d909eb75c29ba1e14920ad

[AMDGPU] Fix wait counts in the presence of 16bit subregisters Differential Revision: https://reviews.llvm.org/D80033

view details

Sam Parker

commit sha 48cdbd081c9111e2ffe41ac3022bdfc65df46655

[NFC][ARM] Add code size analysis tests Add code size runs for the cast costs.

view details

Georgii Rymar

commit sha 3d4c873a14fe2ffb5cd6ac329354857eef245196

[yaml2obj] - Map section names to chunks for each ELFYAML::ProgramHeader early. NFCI. Each `ELFYAML::ProgramHeader` currently contains a list of section names included. We are trying to map them to Fill/Sections very late, though we can create such mapping early, in `initProgramHeaders`. The benefit is that with such change it is possible to access mapped chunks earlier (for example during writing section content) and have simpler code. Differential revision: https://reviews.llvm.org/D80520

view details

Xing GUO

commit sha 590f3a72c243b888ab10c4f9e71bf7f8eca99717

[ObjectYAML][DWARF] Use .empty() to indicate if the DWARF sections are empty.

view details

Xing GUO

commit sha 2c04b8aacd070e88e64f08998dc583319e994d18

[ObjectYAML][DWARF] Make variable names consistent.

view details

Sam Parker

commit sha c5bbc8dd6d686175788e6c1a5fc0339814a5adfc

[NFC][ARM] Fix for previous commit Actually analyse code-size for the size runs...

view details

Georgii Rymar

commit sha 2e365ca2f7ce7a1f4a3938d79b894324b383ce5c

[DebugInfo/llvm-objdump] - Print "ZERO terminator" for terminator entries when dumping .eh_frame. A CIE with the Length == 0 is a terminator: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html And GNU objdump recognizes them and prints the following for such entries: "00000000 ZERO terminator" This patch teaches llvm-objdump to do the same. I had to update tests to use "CHECK-NEXT" too. (Note: it looks perhaps not right that printing is done inside the DebugInfo library, I'd expect to see the change in the llvm-objdump's code somewhere instead, but that is how it done atm). Differential revision: https://reviews.llvm.org/D80476

view details

Simon Pilgrim

commit sha 8b4639d0a0e0e65f23e0315f7ade83b9126472af

[X86][AVX] Add some initial movmsk combine tests Show failure to reduce the signbit extraction for 256-bit integer vectors on AVX1 targets where the pcmpgt/ashr has to be done with split 128-bit vectors.

view details

Simon Pilgrim

commit sha 6f802ec4333cc1227bb37e258a81e9a588f964dc

[X86] Fix fshr comment copy+paste typo. NFC. Noticed by @foad on D80466.

view details

hsmahesha

commit sha 09f7dcb64e1b2a3568ddb6ab327dd2f4a4d3d0fe

[AMDGPU/MemOpsCluster] Code clean-up around mem ops clustering logic Summary: Clean-up code around mem ops clustering logic. This patch cleans up code within the function clusterNeighboringMemOps(). It is WIP, and this patch is a first cut. Reviewers: foad, rampitec, arsenm, vpykhtin, javedabsar Reviewed By: foad Subscribers: MatzeB, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, javed.absar, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80119

view details

Nico Weber

commit sha 5229dd1366ab1423d66d3d16dddff6fbaee049d8

[build] Add LLVM_LOCAL_RPATH which can set an rpath on just unit test binaries After D80096, bots that build clang for distribution and that can't use system gcc / libstdc++ need to pass a working rpath so that unit test binaries can run. The method suggested in GettingStarted.rst works fine for local development, but it results in an absolute local rpath ending up even in distributed binaries like clang, which is both ugly and unnecessary. Add an explicit toggle that can be used to add an rpath only for the non-distributed binaries that need it. Differential Revision: https://reviews.llvm.org/D80534

view details

Eduardo Caldas

commit sha 3785eb83af4161bd52ed993ef3a2184c998071e6

Add support for binary operators in Syntax Trees Reviewers: gribozavr2 Reviewed By: gribozavr2 Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80540

view details

push time in 4 days

push eventapple/swift

David Zarzycki

commit sha eab7cb7d38609b02ed0d69d38e0b7a21ff8732e0

[IRGen] NFC: Clean up Alignment type 1) Shrink from 4 bytes to 1 byte. 2) Assert that alignments are power-of-two at run time. 3) Assert that alignments are power-of-two at compile time when possible. 4) Eliminate "isZero"/"no alignment" from the type. Use llvm::Optional.

view details

David Zarzycki

commit sha e05d4e94c5f53c546eed23e28186f92a71506aef

Merge pull request #32018 from davezarzycki/pr32018 [IRGen] NFC: Clean up Alignment type

view details

push time in 4 days

delete branch davezarzycki/swift

delete branch : pr32018

delete time in 4 days

PR merged apple/swift

Reviewers
[IRGen] NFC: Clean up Alignment type
  1. Shrink from 4 bytes to 1 byte.
  2. Assert that alignments are power-of-two at run time.
  3. Assert that alignments are power-of-two at compile time when possible.
  4. Eliminate "isZero"/"no alignment" from the type. Use llvm::Optional.
+37 -37

1 comment

6 changed files

davezarzycki

pr closed time in 4 days

Pull request review commentapple/swift

[IRGen] NFC: Clean up Alignment type

 class TypeInfo {            IsABIAccessible_t abiAccessible,            SpecialTypeInfoKind stik) : StorageType(Type) {     assert(stik >= SpecialTypeInfoKind::Fixed || !alwaysFixedSize);-    assert(!A.isZero() && "Invalid alignment");

Because it was defined away and removed from the type. All alignments are >= 1 now. If somebody wants to express non-alignment, they can use `llvm::Optional. This was covered at the top of the pull request and in the commit message.

davezarzycki

comment created time in 4 days

pull request commentapple/swift

[IRGen] NFC: Clean up Alignment type

@swift-ci please test

davezarzycki

comment created time in 5 days

PR opened apple/swift

Reviewers
[IRGen] NFC: Clean up Alignment type
  1. Shrink from 4 bytes to 1 byte.
  2. Assert that alignments are power-of-two at run time.
  3. Assert that alignments are power-of-two at compile time when possible.
  4. Eliminate "isZero"/"no alignment" from the type. Use llvm::Optional.
+37 -37

0 comment

6 changed files

pr created time in 5 days

create barnchdavezarzycki/swift

branch : pr32018

created branch time in 5 days

push eventdavezarzycki/llvm-project

Yi Kong

commit sha c1c9eb0ab7d20e61f0fb345a60694bda0487c0da

[Transforms] Check validity of profile reader before invoking it Although an invalid sampling profile would fail the compilation anyway, this avoids crashing the compiler.

view details

Sanjay Patel

commit sha f368040c14f4bdac718798db28299a68adc42695

[DAGCombiner] try to move splat after binop with splat constant binop (splat X), (splat C) --> splat (binop X, C) binop (splat C), (splat X) --> splat (binop C, X) We do this in IR, and there's a similar fold for the case with 2 non-constant operands just above the code diff in this patch. This was discussed in D79718, and the extra shuffle in the test (llvm/test/CodeGen/X86/vector-fshl-128.ll::sink_splatvar) where it was noticed disappears because demanded elements analysis is no longer blocked. The large majority of the test diffs seem to be benign code scheduling changes, but I do see another type of win: moving the splat later allows binop narrowing in some cases. Regressions were avoided on x86 and ARM with the INSERT_VECTOR_ELT restriction. Differential Revision: https://reviews.llvm.org/D79886

view details

Serge Pavlov

commit sha 4d20e31f736c76785e03367c036183474459ef9a

[FPEnv] Intrinsic llvm.roundeven This intrinsic implements IEEE-754 operation roundToIntegralTiesToEven, and performs rounding to the nearest integer value, rounding halfway cases to even. The intrinsic represents the missed case of IEEE-754 rounding operations and now llvm provides full support of the rounding operations defined by the standard. Differential Revision: https://reviews.llvm.org/D75670

view details

John Brawn

commit sha 6c906f7785dad3a1dea5357cfde0762952c2a2bd

[Sema] Diagnose more cases of static data members in local or unnamed classes We currently diagnose static data members directly contained in unnamed classes, but we should also diagnose when they're in a class that is nested (directly or indirectly) in an unnamed class. Do this by iterating up the list of parent DeclContexts and checking if any is an unnamed class. Similarly also check for function or method DeclContexts (which includes things like blocks and openmp captured statements) as then the class is considered to be a local class, which means static data members aren't allowed. Differential Revision: https://reviews.llvm.org/D80295

view details

push time in 5 days

push eventdavezarzycki/swift

Erik Eckstein

commit sha ad99b9d4f86ceed8dac551c0fd0a5b4c4172abd7

SILOptimizer: a new phi-argument expansion optimization. If only a single field of a struct phi-argument is used, replace the argument by the field value. br bb(%str) bb(%phi): %f = struct_extract %phi, #Field // the only use of %phi use %f is replaced with %f = struct_extract %str, #Field br bb(%f) bb(%phi): use %phi This also works if the phi-argument is in a def-use cycle. The new PhiExpansionPass is in the same file as the RedundantPhiEliminationPass. Therefore I renamed the source file to PhiArgumentOptimizations.cpp

view details

eeckstein

commit sha 6bda828a7ed9b136353bbe1ec138faa9b3c0865d

Merge pull request #31884 from eeckstein/phi-expansion SILOptimizer: a new phi-argument expansion optimization.

view details

push time in 5 days

push eventdavezarzycki/llvm-project

Xing GUO

commit sha 590f3a72c243b888ab10c4f9e71bf7f8eca99717

[ObjectYAML][DWARF] Use .empty() to indicate if the DWARF sections are empty.

view details

Xing GUO

commit sha 2c04b8aacd070e88e64f08998dc583319e994d18

[ObjectYAML][DWARF] Make variable names consistent.

view details

Sam Parker

commit sha c5bbc8dd6d686175788e6c1a5fc0339814a5adfc

[NFC][ARM] Fix for previous commit Actually analyse code-size for the size runs...

view details

Georgii Rymar

commit sha 2e365ca2f7ce7a1f4a3938d79b894324b383ce5c

[DebugInfo/llvm-objdump] - Print "ZERO terminator" for terminator entries when dumping .eh_frame. A CIE with the Length == 0 is a terminator: https://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html And GNU objdump recognizes them and prints the following for such entries: "00000000 ZERO terminator" This patch teaches llvm-objdump to do the same. I had to update tests to use "CHECK-NEXT" too. (Note: it looks perhaps not right that printing is done inside the DebugInfo library, I'd expect to see the change in the llvm-objdump's code somewhere instead, but that is how it done atm). Differential revision: https://reviews.llvm.org/D80476

view details

Simon Pilgrim

commit sha 8b4639d0a0e0e65f23e0315f7ade83b9126472af

[X86][AVX] Add some initial movmsk combine tests Show failure to reduce the signbit extraction for 256-bit integer vectors on AVX1 targets where the pcmpgt/ashr has to be done with split 128-bit vectors.

view details

Simon Pilgrim

commit sha 6f802ec4333cc1227bb37e258a81e9a588f964dc

[X86] Fix fshr comment copy+paste typo. NFC. Noticed by @foad on D80466.

view details

hsmahesha

commit sha 09f7dcb64e1b2a3568ddb6ab327dd2f4a4d3d0fe

[AMDGPU/MemOpsCluster] Code clean-up around mem ops clustering logic Summary: Clean-up code around mem ops clustering logic. This patch cleans up code within the function clusterNeighboringMemOps(). It is WIP, and this patch is a first cut. Reviewers: foad, rampitec, arsenm, vpykhtin, javedabsar Reviewed By: foad Subscribers: MatzeB, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, javed.absar, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80119

view details

Nico Weber

commit sha 5229dd1366ab1423d66d3d16dddff6fbaee049d8

[build] Add LLVM_LOCAL_RPATH which can set an rpath on just unit test binaries After D80096, bots that build clang for distribution and that can't use system gcc / libstdc++ need to pass a working rpath so that unit test binaries can run. The method suggested in GettingStarted.rst works fine for local development, but it results in an absolute local rpath ending up even in distributed binaries like clang, which is both ugly and unnecessary. Add an explicit toggle that can be used to add an rpath only for the non-distributed binaries that need it. Differential Revision: https://reviews.llvm.org/D80534

view details

Eduardo Caldas

commit sha 3785eb83af4161bd52ed993ef3a2184c998071e6

Add support for binary operators in Syntax Trees Reviewers: gribozavr2 Reviewed By: gribozavr2 Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80540

view details

Sam Parker

commit sha 8aaabadeced32a1cd959a5b1524b9c927e82bcc0

[CostModel] Unify getCastInstrCost Add the remaining cast instruction opcodes to the base implementation of getUserCost and directly return the result. This allows getInstructionThroughput to return getUserCost for the casts. This has required changes to PPC and SystemZ because they implement getUserCost and/or getCastInstrCost with adjustments for vector operations. Adjusts have also been made in the remaining backends that implement the method so that they still produce a cost of zero or one for cost kinds other than throughput. Differential Revision: https://reviews.llvm.org/D79848

view details

Kirstóf Umann

commit sha 6f5431846bbf3270d8fc605324e8843c5aaf579b

[analyzer][RetainCount] Remove the CheckOSObject option As per http://lists.llvm.org/pipermail/cfe-dev/2019-August/063215.html, lets get rid of this option. It presents 2 issues that have bugged me for years now: * OSObject is NOT a boolean option. It in fact has 3 states: * osx.OSObjectRetainCount is enabled but OSObject it set to false: RetainCount regards the option as disabled. * sx.OSObjectRetainCount is enabled and OSObject it set to true: RetainCount regards the option as enabled. * osx.OSObjectRetainCount is disabled: RetainCount regards the option as disabled. * The hack involves directly modifying AnalyzerOptions::ConfigTable, which shouldn't even be public in the first place. This still isn't really ideal, because it would be better to preserve the option and remove the checker (we want visible checkers to be associated with diagnostics, and hidden options like this one to be associated with changing how the modeling is done), but backwards compatibility is an issue. Differential Revision: https://reviews.llvm.org/D78097

view details

Sam Parker

commit sha bd9dce8f9acd710ed62bab44ad3563209503cd72

[CostModel] getUserCost for intrinsic throughput Last part of recommitting 'Unify Intrinsic Costs' 259eb619ff6dcd5b6111d1686e18559b9ca004d4. This patch now uses getUserCost from getInstructionThroughput. Differential Revision: https://reviews.llvm.org/D80012

view details

Simon Pilgrim

commit sha 4b7812116d513a66fb5fb3c83e7d8be08c1efc65

MachineInstr.h - remove unnecessary MachineMemOperand forward declaration. NFC. We already have to include MachineMemOperand.h

view details

Guillaume Chatelet

commit sha 0d52a7d038e189770984594a6ca71bea50fee4d9

[libc][NFC] Simplify memcpy implementation Summary: This is a NFC, it aims at simplifying both the code and build files. Reviewers: abrachet, sivachandra Subscribers: mgorny, tschuett, ecnelises, libc-commits, courbet Tags: #libc-project Differential Revision: https://reviews.llvm.org/D80291

view details

push time in 5 days

push eventdavezarzycki/swift

Owen Voorhees

commit sha 45bc578ae50797c9b9523209c5b60f45e961e792

[SourceManager] Rename line and column APIs for clarity

view details

Pavel Yaskevich

commit sha f55ce1912725adb6acff4a2435aa265a4bcbf837

[Diagnostics] Strip off unrelated optionals from generic parameter diagnostics In situations where left-hand side requires value-to-optional promotion which ends up in type mismatch let's not mention optionals in the diagnostic because they are unrelated e.g. ```swift func test(_: UnsafePointer<Int>??) {} var value: Float = 0 test(&value) ``` In this example `value` gets implicitly wrapped into a double optional before `UnsafePointer<Float>` could be matched against `UnsafePointer<Int>` associated with the parameter. Diagnostic is about generic argument mismatch `Float` vs. `Int` and shouldn't mention any optionals.

view details

Pavel Yaskevich

commit sha 9eb22c08744ff573246b8856ad2acdf5970f1e0f

Merge pull request #31982 from xedin/improve-generic-param-diags [Diagnostics] Strip off unrelated optionals from generic parameter di…

view details

Hamish Knight

commit sha 1de3d0dbef4dde2db0c20cb369f6867dbdb7d86e

Merge pull request #31943 from owenv/line-and-col

view details

push time in 5 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha 8e62f3b658cc85bf0a42dec1326c5e87e848485c

TargetInstrInfo.h - remove unnecessary includes. NFC.

view details

Simon Pilgrim

commit sha 0e83e67cd359aef475e5c3b86c1a5c932cfb1aba

SystemZInstrBuilder.h - remove unnecessary PseudoSourceValue.h include. NFC.

view details

Simon Pilgrim

commit sha 9fa58d1bf2f83a556c109f701aacfb92e2184c23

[DAG] Add SimplifyDemandedVectorElts binop SimplifyMultipleUseDemandedBits handling For the supported binops (basic arithmetic, logicals + shifts), if we fail to simplify the demanded vector elts, then call SimplifyMultipleUseDemandedBits and try to peek through ops to remove unnecessary dependencies. This helps with PR40502. Differential Revision: https://reviews.llvm.org/D79003

view details

Xing GUO

commit sha 7b15dc1e0e8dfaf3efb608734421eac4e2399d6a

[ObjectYAML][DWARF] Remove unimplemented function. ``` StringMap<std::unique_ptr<MemoryBuffer>> EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups); ``` is unimplemented and unused.

view details

David Green

commit sha 9ff361b099f16ce27c8af61806447df5bca52228

[ARM] VMULH tests for when other parts are working. NFC

view details

Stefan Pintilie

commit sha 5a4bcec8db420cf22b06720d45a9f9981b0297bf

[PowerPC][NFC] Split PPCELFStreamer::emitInstruction Split off PPCELFStreamer::emitPrefixedInstruction from PPCELFStreamer::emitInstruction. Differential Revision: https://reviews.llvm.org/D79626

view details

George Mitenkov

commit sha 7293dd5b4033d94ce1397b192a93010e64b2d949

Added pow intrinsic to LLVMIR dialect Added pow intrinsic to LLVMIR dialect. Added a roundrip test for it. Differential Revision: https://reviews.llvm.org/D80248

view details

Simon Pilgrim

commit sha 38366cf1676f9ac8d421586658e8bcd5ac4ab62d

FunctionLoweringInfo.h - remove orphan addSEHHandlersForLPads declaration. NFC.

view details

Simon Pilgrim

commit sha 8f48814879c06bbf9f211fa5d959419f0d2d38b6

FunctionLoweringInfo.h - move APInt.h dependency to FunctionLoweringInfo.cpp. NFC.

view details

Sanjay Patel

commit sha fa038e03504c7d0dfd438b1dfdd6da7081e75617

[x86] favor vector constant load to avoid GPR to XMM transfer, part 2 This replaces the build_vector lowering code that was just added in D80013 and matches the pattern later from the x86-specific "vzext_movl". That seems to result in the same or better improvements and gets rid of the 'TODO' items from that patch. AFAICT, we always shrink wider constant vectors to 128-bit on these patterns, so we still get the implicit zero-extension to ymm/zmm without wasting space on larger vector constants. There's a trade-off there because that means we miss potential load-folding. Similarly, we could load scalar constants here with implicit zero-extension even to 128-bit. That saves constant space, but it means we forego load-folding, and so it increases register pressure. This seems like a good middle-ground between those 2 options. Differential Revision: https://reviews.llvm.org/D80131

view details

Simon Pilgrim

commit sha 5bb632339ac53e72b81921b6db9c1f0c1fbf63bb

InlineAdvisor.h - remove unnecessary PreservedAnalyses forward declaration. NFC. This is directly defined in PassManager.h

view details

Simon Pilgrim

commit sha 8b4ecafee66c405ca33b9d2dc826c2d720160432

InstructionSimplify.h - remove unnecessary includes. NFC. Remove unused User.h include. Replace SetVector.h with forward declaration. Sort the forward declarations + remove FastMathFlags (defined in Operator.h). Fix implicit SetVector.h dependency in LowerConstantIntrinsics.cpp.

view details

Simon Pilgrim

commit sha 03ec5b6bc4629b9ce4e11cbf54799995dbcb9c29

LoopInfo.h - remove unnecessary PHINode forward declaration. NFC. This is directly defined in Instructions.h

view details

Simon Pilgrim

commit sha 0e3faab6f0fa00668f97747a6a4afa1bc5647ef9

MemoryBuiltins.h - remove unnecessary TargetLibraryInfo forward declaration. NFC. We already have to include TargetLibraryInfo.h

view details

serge-sans-paille

commit sha 8eae32188bbaa4ac5943f8a98b3b7e4bbba55698

Improve stack-clash implementation on x86 - test both 32 and 64 bit version - probe the tail in dynamic-alloca - generate more concise code Differential Revision: https://reviews.llvm.org/D79482

view details

Simon Pilgrim

commit sha 6ade4eb91811c7e7c59634d2de2767421d13a99b

MemoryLocation.h - reduce Instructions.h include to Instruction.h include. NFC. Add forward declarations for the few Instr classes we reference.

view details

Benjamin Kramer

commit sha 82bee922afd65bf884abb9ea3db3fc7fede4e1cf

Make FEATURE_AVX512VP2INTERSECT match between compiler-rt and LLVM compiler-rt also doesn't support bits >= 64 as far as I know.

view details

Whitney Tsang

commit sha 5d6c5b463cab7aeb74b20f51af88ba1d1658f8a8

[LoopUtils] Use llvm::find Summary: Fixes this build error: llvm/lib/Transforms/Utils/LoopUtils.cpp:679:26: error: no matching function for call to 'find' Loop::iterator I = find(ParentLoop->begin(), ParentLoop->end(), L); ^~~~ Authored By: orivej Reviewer: Whitney Reviewed By: Whitney Subscribers: hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D80473

view details

serge-sans-paille

commit sha 356bf5ea5d91642b7a932a368804cef6733133c2

Stack clash: update live-ins This fixes http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/7150

view details

Denys Petrov

commit sha 46e5c5fe778b92b2a7e2c2ad3610e1da6794bd5e

[ManagedStatic] Fix build errors with clang-tblgen in Debug mode using MSVC 2019 v16.6 After updating MSVS19 from v16.4 to v16.6 I faced with a build errors compiling in Debug mode. It complains on clang-tblgen.exe and llvm-tblgen.exe cmd line args. VS compiler had a bug. It dynamically creates an object with constexpr ctor in Debug mode. This bug was fixed in VS2019 v16.5. A workaround was implemented for that and everything works until v16.5 comes. The workaround became irrelevant since v16.5 and caused build errors. So I disabled the workaround for VS2019 v16.5 and higher. This relates to http://llvm.org/PR41367. Differential Revision: https://reviews.llvm.org/D80433

view details

push time in 5 days

push eventdavezarzycki/llvm-project

Tobias Hieta

commit sha 760f45eacadbabf9634fb81d7ccaa16c269cf19e

[CMake] Properly handle the LTO cache arguments for MinGW We want to make sure that LINKER_IS_LLD_LINK is properly set - in this case it shouldn't be set when building for MinGW. Then we want to make the test for it correct and finally include the option to build with thinlto cache since the MinGW driver now supports that. Differential Revision: https://reviews.llvm.org/D80493

view details

Kazushi (Jam) Marukawa

commit sha 5b7ff6f07ffbcbcfad24f39faad5858cc379fad0

[VE][NFC] Correct sjlj_expection test Summary: '|&' works with bash only, so it should not be used in regression tests. Differential Revision: https://reviews.llvm.org/D80501

view details

Sam McCall

commit sha b752a2743ab0d24d8da5d97c07fbdb996df78b1f

[clangd] Log use of heuristic go-to-def. NFC Generally: - found results using this method -> log - no results using this method -> vlog - method wasn't applied because ineligible -> no log

view details

Joachim Protze

commit sha 3895148d7cd8ff76220f8f8209ec06369a8e816f

[OpenMP] Fix a race in task queue reallocation __kmp_realloc_task_deque implicitly assumes, that the task queue is full (ntasks == size), therefore tail = size in line 319. An assertion is added to document this assumption. The first check for a full queue is before the locking and might not hold when the lock is taken. So, we need to check again for this condition when we have the lock. Reviewed By: AndreyChurbanov Differential Revision: https://reviews.llvm.org/D80480

view details

Ayal Zaks

commit sha 840450549c9199150cbdee29acef756c19660ca1

[LV] Clamp MaxVF to power of 2. If a loop has a constant trip count known to be a multiple of MaxVF (times user UF), LV infers that no tail will be generated for any chosen VF. This relies on the chosen VF's being powers of 2 bound by MaxVF, and assumes MaxVF is a power of 2. Make sure the latter holds, in particular when MaxVF is set by a memory dependence distance which may not be a power of 2. Differential Revision: https://reviews.llvm.org/D80491

view details

mydeveloperday

commit sha 447ea9b4f5f562c8fab7d11ecbb10ecd33155d5b

[AST] default implementation is possible for non-member functions in C++20. Summary: Make RAV not visit the default function decl by default. Also update some stale comments on FunctionDecl::isDefault. Fixes https://github.com/clangd/clangd/issues/383 Reviewers: sammccall, rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80288

view details

Haojian Wu

commit sha 72c5ea1d73bb89af6f82c14ddb0b7f4c2510bab7

[clangd] Enable cross-file-rename by default. Summary: The cross-file rename feature is stable enough to enable it (has been rolled out internally for a few weeks). Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80507

view details

Jaroslav Sevcik

commit sha 83bd2c4a06803fa9af7f92a474b1d37cb70397cc

Prevent GetNumChildren from transitively walking pointer chains Summary: This is an attempt to fix https://bugs.llvm.org/show_bug.cgi?id=45988, where SBValue::GetNumChildren returns 2, but SBValue::GetChildAtIndex(1) returns an invalid value sentinel. The root cause of this seems to be that GetNumChildren can return the number of children of a wrong value. In particular, for pointers GetNumChildren just recursively calls itself on the pointee type, so it effectively walks chains of pointers. This is different from the logic of GetChildAtIndex, which only recurses if pointee.IsAggregateType() returns true (IsAggregateType is false for pointers and references), so it never follows chain of pointers. This patch aims to make GetNumChildren (more) consistent with GetChildAtIndex by only recursively calling GetNumChildren for aggregate types. Ideally, GetNumChildren and GetChildAtIndex would share the code that decides which pointers/references are followed, but that is a bit more invasive change. Reviewers: teemperor, jingham, clayborg Reviewed By: teemperor, clayborg Subscribers: clayborg, labath, shafik, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D80254

view details

Raphael Isemann

commit sha fe22e5689e94370b8eadef4b7267201cc9fcb2e3

[lldb][NFC] Pass DeclarationName to NameSearchContext by value DeclarationName is usually passed around by value as it's just a pointer.

view details

Dmitry Preobrazhensky

commit sha b087b91c917087bc53d47282a16ee4af78bfe286

[AMDGPU][CODEGEN] Added 'A' constraint for inline assembler Summary: 'A' constraint requires an immediate int or fp constant that can be inlined in an instruction encoding. Reviewers: arsenm, rampitec Differential Revision: https://reviews.llvm.org/D78494

view details

Simon Pilgrim

commit sha 8e62f3b658cc85bf0a42dec1326c5e87e848485c

TargetInstrInfo.h - remove unnecessary includes. NFC.

view details

Simon Pilgrim

commit sha 0e83e67cd359aef475e5c3b86c1a5c932cfb1aba

SystemZInstrBuilder.h - remove unnecessary PseudoSourceValue.h include. NFC.

view details

Simon Pilgrim

commit sha 9fa58d1bf2f83a556c109f701aacfb92e2184c23

[DAG] Add SimplifyDemandedVectorElts binop SimplifyMultipleUseDemandedBits handling For the supported binops (basic arithmetic, logicals + shifts), if we fail to simplify the demanded vector elts, then call SimplifyMultipleUseDemandedBits and try to peek through ops to remove unnecessary dependencies. This helps with PR40502. Differential Revision: https://reviews.llvm.org/D79003

view details

Xing GUO

commit sha 7b15dc1e0e8dfaf3efb608734421eac4e2399d6a

[ObjectYAML][DWARF] Remove unimplemented function. ``` StringMap<std::unique_ptr<MemoryBuffer>> EmitDebugSections(llvm::DWARFYAML::Data &DI, bool ApplyFixups); ``` is unimplemented and unused.

view details

David Green

commit sha 9ff361b099f16ce27c8af61806447df5bca52228

[ARM] VMULH tests for when other parts are working. NFC

view details

Stefan Pintilie

commit sha 5a4bcec8db420cf22b06720d45a9f9981b0297bf

[PowerPC][NFC] Split PPCELFStreamer::emitInstruction Split off PPCELFStreamer::emitPrefixedInstruction from PPCELFStreamer::emitInstruction. Differential Revision: https://reviews.llvm.org/D79626

view details

George Mitenkov

commit sha 7293dd5b4033d94ce1397b192a93010e64b2d949

Added pow intrinsic to LLVMIR dialect Added pow intrinsic to LLVMIR dialect. Added a roundrip test for it. Differential Revision: https://reviews.llvm.org/D80248

view details

Simon Pilgrim

commit sha 38366cf1676f9ac8d421586658e8bcd5ac4ab62d

FunctionLoweringInfo.h - remove orphan addSEHHandlersForLPads declaration. NFC.

view details

Simon Pilgrim

commit sha 8f48814879c06bbf9f211fa5d959419f0d2d38b6

FunctionLoweringInfo.h - move APInt.h dependency to FunctionLoweringInfo.cpp. NFC.

view details

Sanjay Patel

commit sha fa038e03504c7d0dfd438b1dfdd6da7081e75617

[x86] favor vector constant load to avoid GPR to XMM transfer, part 2 This replaces the build_vector lowering code that was just added in D80013 and matches the pattern later from the x86-specific "vzext_movl". That seems to result in the same or better improvements and gets rid of the 'TODO' items from that patch. AFAICT, we always shrink wider constant vectors to 128-bit on these patterns, so we still get the implicit zero-extension to ymm/zmm without wasting space on larger vector constants. There's a trade-off there because that means we miss potential load-folding. Similarly, we could load scalar constants here with implicit zero-extension even to 128-bit. That saves constant space, but it means we forego load-folding, and so it increases register pressure. This seems like a good middle-ground between those 2 options. Differential Revision: https://reviews.llvm.org/D80131

view details

push time in 5 days

push eventdavezarzycki/swift

Saleem Abdulrasool

commit sha 756bc505f791faf657a7013831b19e6fde4619ad

build: correct variable in SDK configuration The variable was supported to be set to the triple, except it was set to the variable itself, effectively setting the variable to nothing. This is needed to clear the path to directory style installation for non-Apple targets.

view details

Saleem Abdulrasool

commit sha 85cf29dcbfb18bbedc9e376bba0d477bc2ef3944

Merge pull request #31998 from compnerd/module-triple build: correct variable in SDK configuration

view details

Richard Wei

commit sha 65d66daf6e56ce893b357d7a0c00af4cd4e3517f

[AutoDiff] Fix false 'Differentiable' synthesis warning on class property wrappers. (#32003) In `Differentiable` derived conformances, determine whether a property-wrapped property is mutable by checking whether a setter exists, instead of calling `VarDecl::getPropertyWrapperMutability()`. Resolves rdar://63577692 (SR-12873) where class-typed property wrappers with a mutable `wrappedValue` are rejected by synthesis (not included in the `TangentVector`). Also improve the property-wrapper-spe cific immutability warning message.

view details

push time in 6 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha cc65a7a5ea81f8cb5068e99d9bf407745623c624

[X86] Improve i8 + 'slow' i16 funnel shift codegen This is a preliminary patch before I deal with the xor+and issue raised in D77301. We get much better code for i8/i16 funnel shifts by concatenating the operands together and performing the shift as a double width type, it avoids repeated use of the shift amount and partial registers. fshl(x,y,z) -> (((zext(x) << bw) | zext(y)) << (z & (bw-1))) >> bw. fshr(x,y,z) -> (((zext(x) << bw) | zext(y)) >> (z & (bw-1))) >> bw. Alive2: http://volta.cs.utah.edu:8080/z/CZx7Cn This doesn't do as well for i32 cases on x86_64 (the xor+and followup patch is much better) so I haven't bothered with that. Cases with constant amounts are more dubious as well so I haven't currently bothered with those - its these kind of 'edge' cases that put me off trying to put this in TargetLowering::expandFunnelShift. Differential Revision: https://reviews.llvm.org/D80466

view details

Craig Topper

commit sha 79401230840ffb0a20c146aa108224fad99d702f

[X86] Fix typo in comment. NFC

view details

Craig Topper

commit sha 2bb822bc902a094347c4e3a885d1563200907f20

[X86] Add family/model for Intel Comet Lake CPUs for -march=native and function multiversioning This adds the family/model returned by CPUID for some Intel Comet Lake CPUs. Instruction set and tuning wise these are the same as "skylake". These are not in the Intel SDM yet, but these should be correct.

view details

Simon Pilgrim

commit sha 8310c9b74102a5a66fae18596baf9fcc5ed63f61

[X86][AVX] Call SimplifyDemandedBits on MaskedLoadSDNode with non-boolean masks On X86 (AVX1/AVX2), non-boolean masked loads only demand the sign bit of the mask, we already do the equivalent for masked stores. Annoyingly I can't easily handle this inside TargetLowering::SimplifyDemandedBits as this is an x86 specific case for a generic node. Differential Revision: https://reviews.llvm.org/D80478

view details

Tobias Hieta

commit sha f794808bb9ec06966a67fe33d41a13b9601768f8

[LLD/MinGW]: Expose --thinlto-cache-dir Differential Revision: https://reviews.llvm.org/D80438

view details

Simon Pilgrim

commit sha 04d32d7ac18dd97258839d2b50976365dd165f2d

X86TargetMachine.h - remove unnecessary X86Subtarget forward declaration. NFC. We have to include X86Subtarget.h.

view details

Simon Pilgrim

commit sha ffb367217d6abc4c28840cbb6f09edb6ab7a4699

[X86] Move CONCAT_VECTORS/INSERT_SUBVECTOR actions inside loop. NFC. CONCAT_VECTORS/INSERT_SUBVECTOR both are custom on v32i1/v64i1 like the other ops in the loop.

view details

Simon Pilgrim

commit sha 72210ce7f57192652414ebbdf9f643f86532d700

Fix Wdocumentation warnings after argument renaming. NFC.

view details

Simon Pilgrim

commit sha 16031067252dc466cdc4311ab1491f996e5b4848

[TargetLowering] Improve expandFunnelShift shift amount masking For the 'inverse shift', we currently always perform a subtraction of the original (masked) shift amount. But for the case where we are handling power-of-2 type widths, we can replace: (sub bw-1, (and amt, bw-1) ) -> (and (xor amt, bw-1), bw-1) -> (and ~amt, bw-1) This allows x86 shifts to fold away the and-mask. Followup to D77301 + D80466. http://volta.cs.utah.edu:8080/z/Nod0Gr Differential Revision: https://reviews.llvm.org/D80489

view details

Simon Pilgrim

commit sha 478f2ce5d3c44565b328c18d999deb6d1f3c7ee1

[X86] Pull out repeated DemandedBits signmask variable. NFC. Both paths always create the same DemandedBits mask.

view details

Simon Pilgrim

commit sha d0f2a8a0492367c6a049afd30eafa550f04e8d5e

X86Subtarget.h - remove unnecessary TargetMachine.h include. NFC. By moving X86Subtarget::isPositionIndependent() into X86Subtarget.cpp we can remove the header dependency and move the few uses into source files.

view details

Stephen Kelly

commit sha 5e9392deaf5bfa43846334e9b07a126ae3410a38

Add explicit traversal mode to matchers for implicit constructors

view details

Stephen Kelly

commit sha 04ed532ef0ce76d53ca456cbc581756bb01d30e7

Fix skip-invisible with overloaded method calls

view details

Stephen Kelly

commit sha 3ed8ebc2f6b8172bed48cc5986d3b7af4cfca1bc

Fix return values of some matcher functions The old return values mean * implicit conversion * not being able to write sizeOfExpr().bind() for example

view details

Simon Pilgrim

commit sha 510b0f42371cc123eb33e86a527866123e10b2ff

LoopSimplify.h - reduce unnecessary includes to forward declarations. NFC.

view details

Simon Pilgrim

commit sha a6502560628a726b72abb90bda4700da8356a4a1

AMDGPULibFunc - fix include order. NFC. Ensure AMDGPULibFunc.h module header is first, and fix exposed missing forward declaration.

view details

Simon Pilgrim

commit sha 725b3463c53b380b322555b02f1e33e530c52f59

AMDGPUTargetObjectFile.h - remove unnecessary includes. NFC. As we're inheriting from TargetLoweringObjectFileELF, TargetLoweringObjectFileImpl.h already declares all types we require in the overrides.

view details

Florian Hahn

commit sha 15224408f0d49ddd2716080c52a9d0f9f64a2b5a

[VPlan] Use VPUser for VPWidenSelectRecipe operands (NFC). VPWidenSelectRecipe already contains a VPUser, but it is not used. This patch updates the code related to VPWidenSelectRecipe to use VPUser for its operands. Reviewers: Ayal, gilr, rengolin Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D80219

view details

Simon Pilgrim

commit sha b05b69e056adfa95f8bbb92b541247eb0ba055ee

AMDGPUInstPrinter.cpp - add CommandLine.h include. NFC. Fixes implicit dependency that will be exposed by a future patch.

view details

Sanjay Patel

commit sha 7eed772a279e8cd45eee70cab2cfa71f71cc90c8

[PatternMatch] abbreviate vector inst matchers; NFC Readability is not reduced with these opcodes/match lines, so reduce odds of awkward wrapping from 80-col limit.

view details

push time in 6 days

push eventdavezarzycki/llvm-project

Simon Pilgrim

commit sha 725b3463c53b380b322555b02f1e33e530c52f59

AMDGPUTargetObjectFile.h - remove unnecessary includes. NFC. As we're inheriting from TargetLoweringObjectFileELF, TargetLoweringObjectFileImpl.h already declares all types we require in the overrides.

view details

Florian Hahn

commit sha 15224408f0d49ddd2716080c52a9d0f9f64a2b5a

[VPlan] Use VPUser for VPWidenSelectRecipe operands (NFC). VPWidenSelectRecipe already contains a VPUser, but it is not used. This patch updates the code related to VPWidenSelectRecipe to use VPUser for its operands. Reviewers: Ayal, gilr, rengolin Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D80219

view details

Simon Pilgrim

commit sha b05b69e056adfa95f8bbb92b541247eb0ba055ee

AMDGPUInstPrinter.cpp - add CommandLine.h include. NFC. Fixes implicit dependency that will be exposed by a future patch.

view details

Sanjay Patel

commit sha 7eed772a279e8cd45eee70cab2cfa71f71cc90c8

[PatternMatch] abbreviate vector inst matchers; NFC Readability is not reduced with these opcodes/match lines, so reduce odds of awkward wrapping from 80-col limit.

view details

Sanjay Patel

commit sha c048a02b5b26c21a2a891131e3d52c7ddbc3cf62

[InstCombine] fold FP trunc into exact itofp Similar to D79116 and rGbfd512160fe0 - if the 1st cast is exact, then we can go directly to the destination type because there is no double-rounding.

view details

Nathan James

commit sha 4c5818dd8cd9336136a80a02b262b501b23f6492

[clang-tidy] Fix potential assert in use-noexcept check Summary: Fix a potential assert in use-noexcept check if there is an issue getting the `TypeSourceInfo` as well as a small clean up. Reviewers: aaron.ballman, alexfh, gribozavr2 Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80371

view details

Kang Zhang

commit sha 86e3abc9e63e01675cb37919c55419f5c190d90e

[PowerPC] Add some InstAlias definitions Summary: This patch add the InstAlias definitions for below instructions. ADDI ADDIS ADDI8 ADDIS8 RLWINM8 ISEL ISEL8 OR OR_rec ORI ORI8 XORI8 CNTLZW8 CNTLZW8_rec TEND TSR RFEBB NOR NOR_rec MTCRF SUBF SUBF_rec SUBFC SUBFC_rec RLDICL_32_64 TW Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D77559

view details

Simon Pilgrim

commit sha 71bed8206b354a08ad88a2c4585eecf2d94cb444

AMDGPU.h - reduce TargetMachine.h include. NFC. Replace TargetMachine.h include with forward declaration and CodeGen.h include in AMDGPU.h. Exposes a couple of implicit dependencies that require additional forward declarations/includes.

view details

Simon Pilgrim

commit sha 1e7865d94647119aab3c1b2e8ce259ca1634bc64

[X86] SimplifyMultipleUseDemandedBitsForTargetNode - add initial X86ISD::VSRAI handling. This initial version only peeks through cases where we just demand the sign bit of an ashr shift, but we could generalize this further depending on how many sign bits we already have. The pr18014.ll case is a minor annoyance - we've failed to to move the psrad/paddd after the blendvps which would have avoided the extra move, but we have still increased the ILP.

view details

Sanjay Patel

commit sha d43fac052e16412a5dbd4e265064d6038dda9a89

[PhaseOrdering] adjust test to use default alias analysis with new pass manager; NFC As discussed in D80236 - this test (like all PhaseOrdering tests?) was intended to show that there is no difference with the new pass manager, but the 'opt' command requires extra parameters to make that happen.

view details

Florian Hahn

commit sha 0deab8a54fd8d83853740eb751ddba967ad514f7

[LV] Either get invariant condition OR vector condition. Currently we unconditionally get the first lane of the condition operand, even if we later use the full vector condition. This can result in some unnecessary instructions being generated. Suggested as follow-up in D80219.

view details

Sanjay Patel

commit sha 57bb4787d72f1ae64f877b05c98d506602ac5958

[Pass Manager] remove EarlyCSE as clean-up for VectorCombine EarlyCSE was added with D75145, but the motivating test is not regressed by removing the extra pass now. That might be because VectorCombine altered the way it processes instructions, or it might be from (re)moving VectorCombine in the pipeline. The extra round of EarlyCSE appears to cost approximately 0.26% in compile-time as discussed in D80236, so we need some evidence to justify its inclusion here, but we do not have that (yet). I suspect that between SLP and VectorCombine, we are creating patterns that InstCombine and/or codegen are not prepared for, but we will need to reduce those examples and include them as PhaseOrdering and/or test-suite benchmarks.

view details

Simon Pilgrim

commit sha e508d643cfd583b92dfd5484e27fb280cf0f3c60

[X86][AVX] Fold extract_subvector(broadcast(x),c) -> extract_subvector(broadcast(x),0) iff c != 0 If we're extracting an upper subvector from a broadcast we're better off extracting the lowest subvector instead as it avoids an actual extract instruction and might help SimplifyDemandedVectorElts further simplify the code.

view details

Simon Pilgrim

commit sha 8a5aea7b50429cd4a459511286a7a9f1a7f4f5e2

[X86][AVX] Fold extract_subvector(subv_broadcast(x),c) -> (x) If we're extracting an subvector from a broadcasted subvector of the same type then we can use the source vector directly.

view details

Stephen Kelly

commit sha 2be92b7f7e41037e051096df8a9c4de35502c036

Fix ignore-traversal to call correct method As is done by ignoreParenImpCasts(). We were not previously calling the correct internal method. Adjust tests to account for this.

view details

Stephen Kelly

commit sha e60de8c825d3087dca26d97985febbf97e179311

Add missing test

view details

Craig Topper

commit sha 51dec88c5df26d4ecb5ca3016f0a1c8668685f35

[X86] Remove isCommutable flag from MULX instructions. The fixed register constraint on EDX/RDX as an input makes this not really commutable.

view details

Stephen Kelly

commit sha d0da5d2bbe8305d06dc01a98706fd73e11e24a9f

Change default traversal in AST Matchers to ignore invisible nodes This makes many scenarios simpler by not requiring the user to write ignoringImplicit() all the time, nor to account for non-visible cxxConstructExpr() and cxxMemberCalExpr() nodes. This is also, in part, inclusive of the equivalent of adding a use of ignoringParenImpCasts() between all expr()-related matchers in an expression. The pre-existing traverse(TK_AsIs, ...) matcher can be used to explcitly match on implicit/invisible nodes. See http://lists.llvm.org/pipermail/cfe-dev/2019-December/064143.html for more Reviewers: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72534

view details

Jake Merdich

commit sha 52b03aaa22f650bbd36ceb3bdae4699dae71b2b8

[clang-format][PR46043] Parse git config w/ implicit values Summary: https://bugs.llvm.org/show_bug.cgi?id=46043 Git's config is generally of the format 'key=val', but a setting 'key=true' can be written as just 'key'. The git-clang-format script expects a value and crashes in this case; this change handles implicit 'true' values in the script. Reviewers: MyDeveloperDay, krasimir, sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80486

view details

Orivej Desh

commit sha 838d12207b04b7be7245fdff0ce93335bafe5b78

[TargetLoweringObjectFileImpl] Use llvm::transform Fixes a build issue with libc++ configured with _LIBCPP_RAW_ITERATORS (ADL not effective) ``` llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp:1602:3: error: no matching function for call to 'transform' transform(HexString.begin(), HexString.end(), HexString.begin(), tolower); ^~~~~~~~~ ``` Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D80475

view details

push time in 6 days

push eventdavezarzycki/llvm-project

David Sherwood

commit sha 1c3d9c2f3629c758db859b55e839dc97734fa171

[SVE] Remove IITDescriptor::ScalableVecArgument I have refactored the code so that we no longer need the ScalableVecArgument descriptor - the scalable property of vectors is now encoded using the ElementCount class in IITDescriptor. This means that when matching intrinsics we know precisely how to match the arguments and return values. Differential Revision: https://reviews.llvm.org/D80107

view details

Haojian Wu

commit sha c2c36c4f4b69ade6d8610b1dc98ff9f02c94320d

[clang][index] Fix a crash for accessing a null field decl. getField() may return a nullptr, we already did that in BodyIndexer::VisitDesignatedInitExpr, but missed one place.

view details

Benjamin Kramer

commit sha 5b0d1f04bf8de8089a7b0ce243a25c16c6b3917f

Fix a layering violation by not depending from Transforms/Utils on Transforms/Scalar. NFC.

view details

Denis Antrushin

commit sha dedcefe09d18f1e9d60336541fb6ad03dae551ba

[Statepoint] Constant fold FP deopt args. We do not have any special handling for constant FP deopt arguments. They are just spilled to stack or generated in register by MOVS instruction. This is inefficient and, when we have too many such constant arguments, may result in register allocation failure. Instead, we can bitcast such constant FP operands to appropriately sized integer and record as constant into statepoint and later, into StackMap. Reviewed By: skatkov Differential Revision: https://reviews.llvm.org/D80318

view details

Paula Toth

commit sha b2a485e37edf6415701c472d93afa7fa26dbcccb

[libc] Fix accidental inclusion of system libc headers. Summary: I found that because `--system-headers` flag was not included when running clang-tidy, errors produced from compiler provided headers were being suppressed. After passing this flag I realized that by including headers like stdint.h we were indirectly including headers from the system libc. To prevent this we pass `-ffreestanding`. We don't want to pass `--system-headers` for all checks just the `llvmlibc-restrict-system-libc-headers` therefore we do a separate invocation of clang-tidy for this check. Reviewers: abrachet, sivachandra Reviewed By: sivachandra Subscribers: mgorny, aheejin, tschuett, ecnelises, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D80178

view details

Nicolas Vasilache

commit sha 941005f51ac4a53ea6cc92dfdf06069c90c02f55

[mlir] NFC - Add a builder to vector.transpose Summary: Also expose some more vector ops to EDSCs. Differential Revision: https://reviews.llvm.org/D80333

view details

Sjoerd Meijer

commit sha b0614509a0f1ef0e6dfd027d450b2e198b098019

[HardwareLoops] llvm.loop.decrement.reg definition This is split off from D80316, slightly tightening the definition of overloaded hardwareloop intrinsic llvm.loop.decrement.reg specifying that both operands its result have the same type.

view details

Roman Lebedev

commit sha b2df96123198deadad74634c978e84912314da26

[IndVarSimplify][LoopUtils] Avoid TOCTOU/ordering issues (PR45835) Summary: Currently, `rewriteLoopExitValues()`'s logic is roughly as following: > Loop over each incoming value in each PHI node. > Query whether the SCEV for that incoming value is high-cost. > Expand the SCEV. > Perform sanity check (`isValidRewrite()`, D51582) > Record the info > Afterwards, see if we can drop the loop given replacements. > Maybe perform replacements. The problem is that we interleave SCEV cost checking and expansion. This is A Problem, because `isHighCostExpansion()` takes special care to not bill for the expansions that were already expanded, and we can reuse. While it makes sense in general - if we know that we will expand some SCEV, all the other SCEV's costs should account for that, which might cause some of them to become non-high-cost too, and cause chain reaction. But that isn't what we are doing here. We expand *all* SCEV's, unconditionally. So every next SCEV's cost will be affected by the already-performed expansions for previous SCEV's. Even if we are not planning on keeping some of the expansions we performed. Worse yet, this current "bonus" depends on the exact PHI node incoming value processing order. This is completely wrong. As an example of an issue, see @dmajor's `pr45835.ll` - if we happen to have a PHI node with two(!) identical high-cost incoming values for the same basic blocks, we would decide first time around that it is high-cost, expand it, and immediately decide that it is not high-cost because we have an expansion that we could reuse (because we expanded it right before, temporarily), and replace the second incoming value but not the first one; thus resulting in a broken PHI. What we instead should do for now, is not perform any expansions until after we've queried all the costs. Later, in particular after `isValidRewrite()` is an assertion (D51582) we could improve upon that, but in a more coherent fashion. See [[ https://bugs.llvm.org/show_bug.cgi?id=45835 | PR45835 ]] Reviewers: dmajor, reames, mkazantsev, fhahn, efriedma Reviewed By: dmajor, mkazantsev Subscribers: smeenai, nikic, hiraditya, javed.absar, llvm-commits, dmajor Tags: #llvm Differential Revision: https://reviews.llvm.org/D79787

view details

Simon Pilgrim

commit sha fee5a9a6ea1369aafa9adc12cbaaee63e7d78431

MachineMemOperand.h - reduce GlobalValue.h include to just DerivedTypes.h. NFC. We don't need anything specifically from GlobalValue.h

view details

Kirstóf Umann

commit sha eeff1a970a6bb09d3c046313e229e2871929cd63

[analyzer][CallAndMessage][NFC] Split up checkPreCall The patch aims to use CallEvents interface in a more principled manner, and also to highlight what this checker really does. It in fact checks for 5 different kinds of errors (from checkPreCall, that is): * Invalid function pointer related errors * Call of methods from an invalid C++ this object * Function calls with incorrect amount of parameters * Invalid arguments for operator delete * Pass of uninitialized values to pass-by-value parameters In a previous patch I complained that this checker is responsible for emitting a lot of different diagnostics all under core.CallAndMessage's name, and this patch shows where we could start to assign different diagnostics to different entities. Differential Revision: https://reviews.llvm.org/D77846

view details

Ehud Katz

commit sha 111ddc57d3804d31c6d101821abd9688b3e0decc

[FlattenCFG] Fix `MergeIfRegion` in case then-path is empty In case the then-path of an if-region is empty, then merging with the else-path should be handled with the inverse of the condition (leading to that path). Fix PR37662 Differential Revision: https://reviews.llvm.org/D78881

view details

Sam Parker

commit sha 259eb619ff6dcd5b6111d1686e18559b9ca004d4

Revert "[CostModel] Unify Intrinsic Costs." This reverts commit de71def3f59dc9f12f67141b5040d8e15c84d08a. This is causing some very large changes, so I'm first going to break this patch down and re-commit in parts.

view details

Sam Parker

commit sha b263fee4d2c9c79980775f6d4bfefa3bbda8241b

[CostModel] Sink intrinsic costs to base TTI. Recommitting part of "[CostModel] Unify Intrinsic Costs." de71def3f59dc9f12f67141b5040d8e15c84d08a Move the switch statement from TTImpl::getIntrinsicCost to TTI::getIntrinsicInstrCost. This enables BasicTTI to understand more 'free' intrinsics instead of defaulting to a cost of 1. Differential Revision: https://reviews.llvm.org/D80012

view details

James Henderson

commit sha 79e5ecfa7a6c19ff08d39664bd30f72ab6e4f940

On Windows, handle interrupt signals without crash message For LLVM on *nix systems, the signal handlers are not run on signals such as SIGINT due to CTRL-C. See sys::CleanupOnSignal. This makes sense, as such signals are not really crashes. Prior to this change, this wasn't the case on Windows, however. This patch changes the Windows behaviour to be consistent with Linux, and adds testing that verifies this. The test uses llvm-symbolizer, but any tool with an interactive mode would do the job. Fixes https://bugs.llvm.org/show_bug.cgi?id=45754. Reviewed by: MaskRay, rnk, aganea Differential Revision: https://reviews.llvm.org/D79847

view details

David Nicuesa

commit sha 3411a1a92015921b1f348d0e7fcc6ab2b32971b3

Fix compile for -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY Summary: Compilation with -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY was failing due to missing declarations of functions used in libcxx/include/atomic. The lines this commit affects are the places where those functions are defined, now moved to be always defined. Reviewers: #libc, ldionne Reviewed By: #libc, ldionne Subscribers: miyuki, dexonsmith, ldionne, jfb, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D80372

view details

Yaxun (Sam) Liu

commit sha 361e4f14e35981e7498a38ab7c31da7fb7414fb8

Fix debug info for NoDebug attr NoDebug attr does not totally eliminate debug info about a function when inlining is enabled. This is inconsistent with when inlining is disabled. This patch fixes that. Differential Revision: https://reviews.llvm.org/D79967

view details

Kirstóf Umann

commit sha 1c8f999e0b59731a4214f76528f83e4196e1fcc3

[analyzer][CallAndMessage] Add checker options for each bug type iAs listed in the summary D77846, we have 5 different categories of bugs we're checking for in CallAndMessage. I think the documentation placed in the code explains my thought process behind my decisions quite well. A non-obvious change I had here is removing the entry for CallAndMessageUnInitRefArg. In fact, I removed the CheckerNameRef typed field back in D77845 (it was dead code), so that checker didn't really exist in any meaningful way anyways. Differential Revision: https://reviews.llvm.org/D77866

view details

Wen-Heng (Jack) Chung

commit sha 2cbbc266ec1e489175ee988794c3880075c13d00

[mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass. Due to similar APIs between CUDA and ROCm (HIP), ConvertGpuLaunchFuncToCudaCalls pass could be used on both platforms with some refactoring. In this commit: - Migrate ConvertLaunchFuncToCudaCalls from GPUToCUDA to GPUCommon, and rename. - Rename runtime wrapper APIs be platform-neutral. - Let GPU binary annotation attribute be specifiable as a PassOption. - Naming changes within the implementation and tests. Subsequent patches would introduce ROCm-specific tests and runtime wrapper APIs. Differential Revision: https://reviews.llvm.org/D80167

view details

Benjamin Kramer

commit sha 8f9d3b937ca7084fcdb9f1b6b4fa93aa1327c628

[StringRef] Use some trickery to avoid initializing the std::string returned by upper()/lower()

view details

Benjamin Kramer

commit sha c476abfd37c0578224c14fd90522fb825a0316fb

[BitcodeReader] Simplify code. NFCI.

view details

push time in 7 days

push eventdavezarzycki/swift

Saleem Abdulrasool

commit sha c6cc769a64c58cc820ce76699275cae5e9dd6e95

build: default the lld/gold enabling as per reality Rather than defaulting both of these to true, enable gold by default only on ELFish targets, and enable LLD by default for Windows on non-Windows hosts.

view details

Hamish Knight

commit sha 917c937fc9bba57b5891169efea79ae8f51452aa

Allow shadowing checks to deal with operator decls Add overloads of `removeShadowedDecls` that deal with operator and precedencegroup decls, and template the existing shadowing logic such that it can process them.

view details

Hamish Knight

commit sha 54df0a4e8d0fe3000eb4972b13212486f3fbe5ee

[Frontend] Add flag to enable new operator lookup For now disabled by default, but once we get a new language mode, we should flip it on by default.

view details

Hamish Knight

commit sha 912baa8a8b503b723cfb36576202cf23bd73eeba

[Serialization] Use direct operator lookup for xrefs We don't need to look at re-exports when resolving cross references. Luckily the old lookup logic didn't, but the new logic will. Therefore switch it over to calling the appropriate request for a direct operator lookup. In addition, return a deserialization error instead of silently returning nullptr if the lookup fails.

view details

Hamish Knight

commit sha cc062ee2bb96c4624dc787e394f021f5258ae804

Fix precedencegroup and operator decl lookup Re-implement operator and precedencegroup decl lookup to use `namelookup::getAllImports` and existing decl shadowing logic. This allows us to find operator decls through `@_exported` imports, prefer operator decls defined in the same module over imported decls, and fixes a couple of other subtle issues. Because this new implementation is technically source breaking, as we can find multiple results where we used to only find one result, it's placed behind the new Frontend flag `-enable-new-operator-lookup` (with the aim of enabling it by default when we get a new language mode). However the new logic will always be used if the result is unambiguous. This means that e.g `@_exported` operators will be instantly available as long as there's only one candidate. If multiple candidates are found, we fall back to the old logic. Resolves SR-12132. Resolves rdar://59198796.

view details

Hamish Knight

commit sha e7cb6bb48c3b94b798309fd8d48d049a27905cee

[Sema] Diagnose cross-file operator redeclarations Previously we permitted operator redeclarations across files as the user could shadow imported operator decls on a per-file basis, and we would prefer an imported operator decl over one in another file. However with the new operator lookup implementation, operators in the current module always shadow imported decls. As such, we should start diagnosing cross-file redeclarations when the new lookup logic is enabled. Resolves rdar://48731166

view details

Dmitri Gribenko

commit sha cfbcd85904ac7d89a3aefb89ed864165a924c120

Fix and reenable NewArray.swift.gyb

view details

Michael Gottesman

commit sha f57a6cfd6dd07d2aa4ed6e4f0c01a5f6f0d11bd6

[silgen] Teach CleanupCloner how to handle OwnedValueWritebackCleanups correctly. Previously we would just forward the cleanup and create a normal "destroy" cleanup resulting in early deallocation and use after frees along error paths. As part of this I also had to tweak how DI recognizes self init writebacks to not use SILLocations. This is approach is more robust (since we aren't relying on SourceLocs/have verifiers to make sure we don't violate SIL) and also avoids issues from the write back store not necessarily have the same SILLocation. <rdar://problem/59830255>

view details

Arnold Schwaighofer

commit sha 7789e2c87c8a577c65e661ca689b34f9140da117

IRGen: Fix enumPayload value witness emission for huge types LLVM's isel does not like integer types beyond a certain size (llvm::IntegerType::MAX_INT_BITS). rdar://63189452

view details

Arnold Schwaighofer

commit sha 097e451fbed08d788af1f8c36007841dd923f63d

Test does not work on linux

view details

Max Desiatov

commit sha 7d187d3517cb68275899b3bde89efb0b11bb4c2d

test: enable WebAssembly/WASI in lit.cfg

view details

Anthony Latsis

commit sha 946796ce5b96c4abe9ce1c3caf7180e4cb6d6f9c

Serialization: Use checked substitution map deserialization for type nodes

view details

Anthony Latsis

commit sha b25c4665e4f3d8a6f247c8277daf87783a37fd88

GenericSignatureImpl, #31712: Plug remaining relevant methods with type param. assertions

view details

Saleem Abdulrasool

commit sha 518ce5c25d9e2334b84d3df77bc4330c8cb84783

test: repair SILOptimizer AutoDiff test on Windows The module name is not specified but the test explicitly overfits to an expected name. Adjust the test invocation to accommodate the expectation.

view details

Arnold Schwaighofer

commit sha 940a6d78fd98436371b4c831aab008d05934f6eb

Try renabling test on all platforms

view details

Rintaro Ishizaki

commit sha 2eb623ec4c7c9f8774fc0113f0340003aa9acdf4

[CodeCompletion] Handle variadic parameter in expr context analysis for call arguments. Consider variadic arguments 'skippable'. Also, don't treat 'VarargExpansionExpr' as a "context providing" expression. rdar://problem/62479469

view details

Rintaro Ishizaki

commit sha f7aaf5bc94814b11ef985c79f35843ffb91594da

[CodeCompletion] Stop suggesting static member on a protoco meta type static members cannot be used on protocol metatypes. rdar://problem/58886969

view details

John McCall

commit sha 4f54c75dc8c542be064d22f6ae13410b65333db5

Use Clang's logic for adding the default IR attributes to a function. A lot of attributes are essentially default target configuration, and we should only differ when there's a good reason to. For the attributes we were already setting: - the ptrauth and target CPU/feature attributes are taken care of by Clang - I've updated the optsize/minsize attributes to the apparent intent - I've left the frame-pointer override in place for now Fixes rdar://63289339, which was caused by Swift's ptrauth IR attributes getting out of sync with Clang's.

view details

Anthony Latsis

commit sha a85ac8996c9e4e0f8f684491318265e3cb9121c1

Merge pull request #31926 from AnthonyLatsis/deserial-safe-submap Serialization: Use checked substitution map deserialization for type nodes

view details

Arnold Schwaighofer

commit sha 48417317b649ff9942af7207b32009265dd2a4f0

Merge pull request #31918 from aschwaighofer/irgen_enum_witness_huge_types IRGen: Fix enumPayload value witness emission for huge types

view details

push time in 7 days

push eventdavezarzycki/llvm-project

Ehud Katz

commit sha 111ddc57d3804d31c6d101821abd9688b3e0decc

[FlattenCFG] Fix `MergeIfRegion` in case then-path is empty In case the then-path of an if-region is empty, then merging with the else-path should be handled with the inverse of the condition (leading to that path). Fix PR37662 Differential Revision: https://reviews.llvm.org/D78881

view details

Sam Parker

commit sha 259eb619ff6dcd5b6111d1686e18559b9ca004d4

Revert "[CostModel] Unify Intrinsic Costs." This reverts commit de71def3f59dc9f12f67141b5040d8e15c84d08a. This is causing some very large changes, so I'm first going to break this patch down and re-commit in parts.

view details

Sam Parker

commit sha b263fee4d2c9c79980775f6d4bfefa3bbda8241b

[CostModel] Sink intrinsic costs to base TTI. Recommitting part of "[CostModel] Unify Intrinsic Costs." de71def3f59dc9f12f67141b5040d8e15c84d08a Move the switch statement from TTImpl::getIntrinsicCost to TTI::getIntrinsicInstrCost. This enables BasicTTI to understand more 'free' intrinsics instead of defaulting to a cost of 1. Differential Revision: https://reviews.llvm.org/D80012

view details

James Henderson

commit sha 79e5ecfa7a6c19ff08d39664bd30f72ab6e4f940

On Windows, handle interrupt signals without crash message For LLVM on *nix systems, the signal handlers are not run on signals such as SIGINT due to CTRL-C. See sys::CleanupOnSignal. This makes sense, as such signals are not really crashes. Prior to this change, this wasn't the case on Windows, however. This patch changes the Windows behaviour to be consistent with Linux, and adds testing that verifies this. The test uses llvm-symbolizer, but any tool with an interactive mode would do the job. Fixes https://bugs.llvm.org/show_bug.cgi?id=45754. Reviewed by: MaskRay, rnk, aganea Differential Revision: https://reviews.llvm.org/D79847

view details

David Nicuesa

commit sha 3411a1a92015921b1f348d0e7fcc6ab2b32971b3

Fix compile for -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY Summary: Compilation with -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY was failing due to missing declarations of functions used in libcxx/include/atomic. The lines this commit affects are the places where those functions are defined, now moved to be always defined. Reviewers: #libc, ldionne Reviewed By: #libc, ldionne Subscribers: miyuki, dexonsmith, ldionne, jfb, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D80372

view details

Yaxun (Sam) Liu

commit sha 361e4f14e35981e7498a38ab7c31da7fb7414fb8

Fix debug info for NoDebug attr NoDebug attr does not totally eliminate debug info about a function when inlining is enabled. This is inconsistent with when inlining is disabled. This patch fixes that. Differential Revision: https://reviews.llvm.org/D79967

view details

Kirstóf Umann

commit sha 1c8f999e0b59731a4214f76528f83e4196e1fcc3

[analyzer][CallAndMessage] Add checker options for each bug type iAs listed in the summary D77846, we have 5 different categories of bugs we're checking for in CallAndMessage. I think the documentation placed in the code explains my thought process behind my decisions quite well. A non-obvious change I had here is removing the entry for CallAndMessageUnInitRefArg. In fact, I removed the CheckerNameRef typed field back in D77845 (it was dead code), so that checker didn't really exist in any meaningful way anyways. Differential Revision: https://reviews.llvm.org/D77866

view details

Wen-Heng (Jack) Chung

commit sha 2cbbc266ec1e489175ee988794c3880075c13d00

[mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass. Due to similar APIs between CUDA and ROCm (HIP), ConvertGpuLaunchFuncToCudaCalls pass could be used on both platforms with some refactoring. In this commit: - Migrate ConvertLaunchFuncToCudaCalls from GPUToCUDA to GPUCommon, and rename. - Rename runtime wrapper APIs be platform-neutral. - Let GPU binary annotation attribute be specifiable as a PassOption. - Naming changes within the implementation and tests. Subsequent patches would introduce ROCm-specific tests and runtime wrapper APIs. Differential Revision: https://reviews.llvm.org/D80167

view details

Benjamin Kramer

commit sha 8f9d3b937ca7084fcdb9f1b6b4fa93aa1327c628

[StringRef] Use some trickery to avoid initializing the std::string returned by upper()/lower()

view details

Benjamin Kramer

commit sha c476abfd37c0578224c14fd90522fb825a0316fb

[BitcodeReader] Simplify code. NFCI.

view details

jerryyin

commit sha 9c53ac08de7c5bfefab6e6c80127e6774070411c

[mlir][rocdl] Exposing buffer load/store intrinsic Summary: * Updated ROCDLOps tablegen * Added parsing and printing function for new intrinsic * Added unit tests Reviewers: ftynse Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, jurahul, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80233

view details

Simon Pilgrim

commit sha 1a2e8b3f71748d9866431fc964becd31cc902bef

GenericDomTree.h - remove unused PointerIntPair.h include. NFC.

view details

Jean-Michel Gorius

commit sha 439c8b2884a098bdbf5313b1a56db90b19e988c7

[x86] NFC: Fix typo in command line option description

view details

Yaxun (Sam) Liu

commit sha 3ef11346f391e6e3da0cfa25f9f7dac22771438e

Fix DeferredDiagnosticsEmitter for bug#45987 InOMPDeviceContext may be greater than 1. It needs to be clamp to 0 and 1 to be used as index for DoneMap.

view details

Thomas Raoux

commit sha 20c0527af7449d7c22261f9bc88b0ee391bdbad8

[ModuloSchedule] Trivial fix for instruction with more than one destination in modulo peeler. When moving an instruction into a block where it was referenced by a phi when peeling, refer to the phi's register number and assert that the instruction has it in its destinations. This way, it also covers instructions with more than one destination. Patch by Hendrik Greving! Differential Revision: https://reviews.llvm.org/D80027

view details

Dinar Temirbulatov

commit sha df3b95bc0ae0f9de0a54db897ed37ffb6ba44226

[SLP][NFC] PR45269 getVectorElementSize() is slow The algorithm inside getVectorElementSize() is almost O(x^2) complexity and when, for example, we compile MultiSource/Applications/ClamAV/shared_sha256.c with 1k instructions inside sha256_transform() function that resulted in almost ~800k iterations. The following change improves the algorithm with the map to a liner complexity. Differential Revision: https://reviews.llvm.org/D80241

view details

Jon Roelofs

commit sha 183d6af081899973f00fc24aeafcfc32de732f02

[llvm][test] Add COM: directives before colon-less non-CHECKs in comments. NFC Differential Revision: https://reviews.llvm.org/D79963

view details

Jon Roelofs

commit sha 5fb979dd0697c1a88131bc8709a0928ef4990195

[llvm][test] Add missing FileCheck colons. NFC

view details

Rainer Orth

commit sha c4169a3efebd1bf5710b2c280857686942dc254a

Revert "[YAMLTraits] Add trait for char" This reverts commit fab08bf4899e40d02d8bf394a63499ac679ac61c. It has left the Solaris buildbots broken for a week and a half as reported in https://reviews.llvm.org/D79745.

view details

Jean-Michel Gorius

commit sha cb2a8be8842a39ed9b657fa9928733f8d70079f0

[ADT] NFC: Fix typos in header comments

view details

push time in 7 days

delete branch davezarzycki/swift

delete branch : pr31811

delete time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@compnerd The windows failure looks unrelated. Agreed? Ready to merge?

@swift-ci please test Windows platform

davezarzycki

comment created time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test Windows platform

davezarzycki

comment created time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test Windows platform

davezarzycki

comment created time in 8 days

pull request commentapple/swift

[DNM] IRGen tests

I've reset #31811 to this commit, so either retesting #31811 with CI will "just work" or having two pull requests with the same commit hash will cause CI to crawl into a corner and die. We'll see! Thank you @compnerd for doing the work :-)

compnerd

comment created time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test

davezarzycki

comment created time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test Windows platform

davezarzycki

comment created time in 8 days

push eventdavezarzycki/swift

Owen Voorhees

commit sha f00953c62d36c0d89b8dd8d4e0afb22bd7c07fef

[Diags-Experimental-Formatting] Fixes for printing diagnostics when #sourceLocation is used - Always use the line number in the actual source file when extracting excerpts and adding highlights/fix-its - Always use the display name when printing excerpt titles - Don't print surrounding lines when an annotated line is in a virtual file This reverts commit f919e047834eddf8863723b9db1fcb8d344d2006.

view details

Owen Voorhees

commit sha 96696c88231bebe3ed65ce164bd59bf8c94f9432

[Diag-Experimental-Formatting] Add a formatting test for Swift diags emitted in clang virtual files

view details

David Goldman

commit sha 40759df737166167422824d2d2ea678247a1a25d

[SourceKit] Include operation kind in compile notifications - Compile will start / did finish now includes the operation kind (perform sema or code complete). - See also https://forums.swift.org/t/sourcekit-lsp-file-status-ux/35947

view details

David Goldman

commit sha 67a2fe494a0eb4827bfe4e14116b521c4293eb97

Fix up compile operation kind - `key.compile_operation` instead of `key.compileoperation` - Make the operation kind optional (nothing emitted for perform sema)

view details

Arnold Schwaighofer

commit sha d3c685d7350cf2356cf037c08843686b0dafb192

IRGen: Correctly compute the offset for a non-fixed field after an empty field Introduce getByteOffsetDuringLayout() so that we can treat empty fields just like other fixed sized field while performing layout. rdar://62349871

view details

Arnold Schwaighofer

commit sha b01889c813fae41e600c20410a38dbed8075688d

Acutally use the variable I introduced

view details

Dmitri Gribenko

commit sha cfbcd85904ac7d89a3aefb89ed864165a924c120

Fix and reenable NewArray.swift.gyb

view details

Arnold Schwaighofer

commit sha 081fb11208c34074e32872c1f628bf173e05ca50

Fix test on linux

view details

Rintaro Ishizaki

commit sha af27e8f18378769b8bb6650cb73e45df2045b50b

[CodeCompletion] Avoid suggesting duplicated module names in global completion result. Overly modules have the same name as the shadowed modules. We should not list both names because they are identical. Maintain a set of seen module names to avoid suggesting duplicated names. rdar://problem/63370253

view details

Saleem Abdulrasool

commit sha 5cbf3f3e07d430ae7a3a41b19ca7e379b82e186f

stdlib: remove `llvm-config.h` from swiftLLVMSupport Remove the bundled generated `llvm-config.h` as the options do not apply to the runtime usage for LLVMSupport. The configuration is known statically.

view details

Michael Gottesman

commit sha f57a6cfd6dd07d2aa4ed6e4f0c01a5f6f0d11bd6

[silgen] Teach CleanupCloner how to handle OwnedValueWritebackCleanups correctly. Previously we would just forward the cleanup and create a normal "destroy" cleanup resulting in early deallocation and use after frees along error paths. As part of this I also had to tweak how DI recognizes self init writebacks to not use SILLocations. This is approach is more robust (since we aren't relying on SourceLocs/have verifiers to make sure we don't violate SIL) and also avoids issues from the write back store not necessarily have the same SILLocation. <rdar://problem/59830255>

view details

Gwynne Raskind

commit sha 3ae3a7b4597f8f20faef80e1d071367f7e37037f

Restore documentation for the pattern-matching operator as applied to RangeExpressions The previous documentation of this operator in `Range` context was lost sometime during 2017. This new version is a simplified version of the original copy, with substantial inspiration taken from the present-day documentation of the same operator on `Optional`. Fixes [SR-12842](https://bugs.swift.org/browse/SR-12842).

view details

Dmitri Gribenko

commit sha 131e1d3b9c2c956592d1e8529030af71177f3abc

Removed support for iOS 8.2 and earlier from lit.cfg

view details

David Goldman

commit sha b6a79b5a73d900887323aff440470e7ef8264a9e

[SourceKit] Don't handle OperationKind::all

view details

Mike Ash

commit sha 28a61eaa19401677152bee78d9911cd7ef42d1ba

[Test] Have llvm-support-odr-violation.sh use platform-dylib-dir. platform-module-dir isn't quite right, since we're looking for libswiftCore.dylib. rdar://problem/63437032

view details

Saleem Abdulrasool

commit sha 5b10c5f60c110bcee6bcfaafd51ba9c076bd9033

Merge pull request #31900 from compnerd/config stdlib: remove `llvm-config.h` from swiftLLVMSupport

view details

Saleem Abdulrasool

commit sha 0637e17957c821f9eb6ba5ca3431c988438980e8

runtime: improve error handling path for the runtime Rather than use `fprintf` for the error handling path use the platform specific error handling systems (`asl_log`, `__android_log_printf`) if available. The standard file streams are not available on all platforms (e.g. Android).

view details

Rintaro Ishizaki

commit sha 6116f7d528aa188e886f815bf693259cab09d9ea

[CodeCompletion] Disable fast-completion dependecy checking test cases while investigating. rdar://problem/62923248

view details

Rintaro Ishizaki

commit sha 522a9fe7c59e10807c03fd3e502d5b740146302b

Merge pull request #31892 from rintaro/ide-completion-duplicatedmodule-rdar63370253 [CodeCompletion] Avoid suggesting duplicated module names

view details

Arnold Schwaighofer

commit sha 7789e2c87c8a577c65e661ca689b34f9140da117

IRGen: Fix enumPayload value witness emission for huge types LLVM's isel does not like integer types beyond a certain size (llvm::IntegerType::MAX_INT_BITS). rdar://63189452

view details

push time in 8 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test

davezarzycki

comment created time in 10 days

push eventdavezarzycki/swift

David Zarzycki

commit sha 28bdd9831bee7115e7526a92c6cc07794f69db77

Remove three ObjC fields from non-ObjC runtime

view details

push time in 10 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test windows

davezarzycki

comment created time in 10 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test windows

davezarzycki

comment created time in 10 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please test

davezarzycki

comment created time in 10 days

push eventdavezarzycki/swift

David Zarzycki

commit sha 4dd6ae4e0607bd5033da74f07745fe8e7ee320fb

Remove three ObjC fields from non-ObjC runtime

view details

push time in 10 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

@swift-ci please clean test macos

davezarzycki

comment created time in 10 days

push eventdavezarzycki/swift

Dmitri Gribenko

commit sha 870ca6da4ce8e999c3356b34210fe231ec213fa5

Add instructions on how to create a 32-bit iOS simulator device iPhone 5 device does not come preconfigured in the latest Xcode (11.4.1).

view details

Dmitri Gribenko

commit sha 446dc9f67905213061b81883ae252c48d5e94de5

Merge pull request #31928 from gribozavr/iphonesimulator-i386-instructions Add instructions on how to create a 32-bit iOS simulator device

view details

Ben Cohen

commit sha e67e8ab0b29b3ef61427216333b4fdf09df63035

Prespecialize common metadata (#31925)

view details

push time in 10 days

push eventdavezarzycki/llvm-project

Sjoerd Meijer

commit sha b0614509a0f1ef0e6dfd027d450b2e198b098019

[HardwareLoops] llvm.loop.decrement.reg definition This is split off from D80316, slightly tightening the definition of overloaded hardwareloop intrinsic llvm.loop.decrement.reg specifying that both operands its result have the same type.

view details

Roman Lebedev

commit sha b2df96123198deadad74634c978e84912314da26

[IndVarSimplify][LoopUtils] Avoid TOCTOU/ordering issues (PR45835) Summary: Currently, `rewriteLoopExitValues()`'s logic is roughly as following: > Loop over each incoming value in each PHI node. > Query whether the SCEV for that incoming value is high-cost. > Expand the SCEV. > Perform sanity check (`isValidRewrite()`, D51582) > Record the info > Afterwards, see if we can drop the loop given replacements. > Maybe perform replacements. The problem is that we interleave SCEV cost checking and expansion. This is A Problem, because `isHighCostExpansion()` takes special care to not bill for the expansions that were already expanded, and we can reuse. While it makes sense in general - if we know that we will expand some SCEV, all the other SCEV's costs should account for that, which might cause some of them to become non-high-cost too, and cause chain reaction. But that isn't what we are doing here. We expand *all* SCEV's, unconditionally. So every next SCEV's cost will be affected by the already-performed expansions for previous SCEV's. Even if we are not planning on keeping some of the expansions we performed. Worse yet, this current "bonus" depends on the exact PHI node incoming value processing order. This is completely wrong. As an example of an issue, see @dmajor's `pr45835.ll` - if we happen to have a PHI node with two(!) identical high-cost incoming values for the same basic blocks, we would decide first time around that it is high-cost, expand it, and immediately decide that it is not high-cost because we have an expansion that we could reuse (because we expanded it right before, temporarily), and replace the second incoming value but not the first one; thus resulting in a broken PHI. What we instead should do for now, is not perform any expansions until after we've queried all the costs. Later, in particular after `isValidRewrite()` is an assertion (D51582) we could improve upon that, but in a more coherent fashion. See [[ https://bugs.llvm.org/show_bug.cgi?id=45835 | PR45835 ]] Reviewers: dmajor, reames, mkazantsev, fhahn, efriedma Reviewed By: dmajor, mkazantsev Subscribers: smeenai, nikic, hiraditya, javed.absar, llvm-commits, dmajor Tags: #llvm Differential Revision: https://reviews.llvm.org/D79787

view details

Simon Pilgrim

commit sha fee5a9a6ea1369aafa9adc12cbaaee63e7d78431

MachineMemOperand.h - reduce GlobalValue.h include to just DerivedTypes.h. NFC. We don't need anything specifically from GlobalValue.h

view details

Kirstóf Umann

commit sha eeff1a970a6bb09d3c046313e229e2871929cd63

[analyzer][CallAndMessage][NFC] Split up checkPreCall The patch aims to use CallEvents interface in a more principled manner, and also to highlight what this checker really does. It in fact checks for 5 different kinds of errors (from checkPreCall, that is): * Invalid function pointer related errors * Call of methods from an invalid C++ this object * Function calls with incorrect amount of parameters * Invalid arguments for operator delete * Pass of uninitialized values to pass-by-value parameters In a previous patch I complained that this checker is responsible for emitting a lot of different diagnostics all under core.CallAndMessage's name, and this patch shows where we could start to assign different diagnostics to different entities. Differential Revision: https://reviews.llvm.org/D77846

view details

push time in 10 days

pull request commentapple/swift

Remove three ObjC metadata fields from non-ObjC runtime

Hi @compnerd – I've changed some of the tests in this PR to explicitly test with and without ObjC interoperability whereas before they just tested whatever %target-runtime was set to. This causing failures on Windows. What should I do?

davezarzycki

comment created time in 10 days

push eventdavezarzycki/swift

Owen Voorhees

commit sha f00953c62d36c0d89b8dd8d4e0afb22bd7c07fef

[Diags-Experimental-Formatting] Fixes for printing diagnostics when #sourceLocation is used - Always use the line number in the actual source file when extracting excerpts and adding highlights/fix-its - Always use the display name when printing excerpt titles - Don't print surrounding lines when an annotated line is in a virtual file This reverts commit f919e047834eddf8863723b9db1fcb8d344d2006.

view details

Owen Voorhees

commit sha 96696c88231bebe3ed65ce164bd59bf8c94f9432

[Diag-Experimental-Formatting] Add a formatting test for Swift diags emitted in clang virtual files

view details

David Goldman

commit sha 40759df737166167422824d2d2ea678247a1a25d

[SourceKit] Include operation kind in compile notifications - Compile will start / did finish now includes the operation kind (perform sema or code complete). - See also https://forums.swift.org/t/sourcekit-lsp-file-status-ux/35947

view details

David Goldman

commit sha 67a2fe494a0eb4827bfe4e14116b521c4293eb97

Fix up compile operation kind - `key.compile_operation` instead of `key.compileoperation` - Make the operation kind optional (nothing emitted for perform sema)

view details

Arnold Schwaighofer

commit sha d3c685d7350cf2356cf037c08843686b0dafb192

IRGen: Correctly compute the offset for a non-fixed field after an empty field Introduce getByteOffsetDuringLayout() so that we can treat empty fields just like other fixed sized field while performing layout. rdar://62349871

view details

Arnold Schwaighofer

commit sha b01889c813fae41e600c20410a38dbed8075688d

Acutally use the variable I introduced

view details

Arnold Schwaighofer

commit sha 081fb11208c34074e32872c1f628bf173e05ca50

Fix test on linux

view details

Rintaro Ishizaki

commit sha af27e8f18378769b8bb6650cb73e45df2045b50b

[CodeCompletion] Avoid suggesting duplicated module names in global completion result. Overly modules have the same name as the shadowed modules. We should not list both names because they are identical. Maintain a set of seen module names to avoid suggesting duplicated names. rdar://problem/63370253

view details

Saleem Abdulrasool

commit sha 5cbf3f3e07d430ae7a3a41b19ca7e379b82e186f

stdlib: remove `llvm-config.h` from swiftLLVMSupport Remove the bundled generated `llvm-config.h` as the options do not apply to the runtime usage for LLVMSupport. The configuration is known statically.

view details

Slava Pestov

commit sha 653fa07260497ab736c7667158e9e59226723af4

GSB: Fix maybeResolveEquivalenceClass() with member type of superclass-constrained type Name lookup might find an associated type whose protocol is not in our conforms-to list, if we have a superclass constraint and the superclass conforms to the associated type's protocol. We used to return an unresolved type in this case, which would result in the constraint getting delayed forever and dropped. While playing wack-a-mole with regressing crashers, I had to do some refactoring to get all the tests to pass. Unfortuanately these refactorings don't lend themselves well to being peeled off into their own commits: - maybeAddSameTypeRequirementForNestedType() was almost identical to concretizeNestedTypeFromConcreteParent(), except for superclasses instead of concrete same-type constraints. I merged them together. - We used to drop same-type constraints where the subject type was an ErrorType, because maybeResolveEquivalenceClass() would return an unresolved type in this case. This violated some invariants around nested types of ArchetypeTypes, because now it was possible for a nested type of a concrete type to be non-concrete, if the type witness in the conformance was missing due to an error. Fix this by removing the ErrorType hack, and adjusting a couple of other places to handle ErrorTypes in order to avoid regressing with invalid code. Fixes <rdar://problem/45216921>, <https://bugs.swift.org/browse/SR-8945>, <https://bugs.swift.org/browse/SR-12744>.

view details

Gwynne Raskind

commit sha 3ae3a7b4597f8f20faef80e1d071367f7e37037f

Restore documentation for the pattern-matching operator as applied to RangeExpressions The previous documentation of this operator in `Range` context was lost sometime during 2017. This new version is a simplified version of the original copy, with substantial inspiration taken from the present-day documentation of the same operator on `Optional`. Fixes [SR-12842](https://bugs.swift.org/browse/SR-12842).

view details

Dmitri Gribenko

commit sha 131e1d3b9c2c956592d1e8529030af71177f3abc

Removed support for iOS 8.2 and earlier from lit.cfg

view details

Slava Pestov

commit sha 0a79beb39c87c51c75edd1aff9a3eb6b964545a6

Merge pull request #31871 from slavapestov/superclass-nested-type-fix GSB: Fix maybeResolveEquivalenceClass() with member type of superclass-constrained type

view details

David Goldman

commit sha b6a79b5a73d900887323aff440470e7ef8264a9e

[SourceKit] Don't handle OperationKind::all

view details

Mike Ash

commit sha 28a61eaa19401677152bee78d9911cd7ef42d1ba

[Test] Have llvm-support-odr-violation.sh use platform-dylib-dir. platform-module-dir isn't quite right, since we're looking for libswiftCore.dylib. rdar://problem/63437032

view details

Saleem Abdulrasool

commit sha 5b10c5f60c110bcee6bcfaafd51ba9c076bd9033

Merge pull request #31900 from compnerd/config stdlib: remove `llvm-config.h` from swiftLLVMSupport

view details

Saleem Abdulrasool

commit sha 0637e17957c821f9eb6ba5ca3431c988438980e8

runtime: improve error handling path for the runtime Rather than use `fprintf` for the error handling path use the platform specific error handling systems (`asl_log`, `__android_log_printf`) if available. The standard file streams are not available on all platforms (e.g. Android).

view details

Rintaro Ishizaki

commit sha 6116f7d528aa188e886f815bf693259cab09d9ea

[CodeCompletion] Disable fast-completion dependecy checking test cases while investigating. rdar://problem/62923248

view details

Rintaro Ishizaki

commit sha 522a9fe7c59e10807c03fd3e502d5b740146302b

Merge pull request #31892 from rintaro/ide-completion-duplicatedmodule-rdar63370253 [CodeCompletion] Avoid suggesting duplicated module names

view details

Ben Langmuir

commit sha 6d3a3dbe7903af76973ecacbaf273d6f1dea894d

Merge pull request #31830 from DavidGoldman/compileopkind [SourceKit] Include operation kind in compile notifications

view details

push time in 10 days

push eventdavezarzycki/llvm-project

Sam Parker

commit sha 8cc911fa5b06f055430d006d0640248fcac2a101

[NFCI][CostModel] Refactor getIntrinsicInstrCost Combine the two API calls into one by introducing a structure to hold the relevant data. This has the added benefit of moving the boiler plate code for arguments and flags, into the constructors. This is intended to be a non-functional change, but the complicated web of logic involved here makes it very hard to guarantee. Differential Revision: https://reviews.llvm.org/D79941

view details

Florian Hahn

commit sha 7004a621a01063234427ade75883db0bf3e6283f

[Polly] Update ScalarEvolutionExpander.h include.

view details

Pierre-vh

commit sha 835251f7d99a6ff8d396fa019dcddb87a958b15f

[Target][ARM] Make Low Overhead Loops coexist with VPT blocks. Previously, the LowOverheadLoops pass couldn't handle VPT blocks with conditions, or with multiple VCTPs. This patch improves the LowOverheadLoops pass so it can handle those cases. It also adds support for VCMPs before the VCTP. Differential Revision: https://reviews.llvm.org/D78206

view details

Tres Popp

commit sha 02035580d3b5a4dad081704a70ceb269e9264619

[mlir] Add custom assembly formats to shape.witness ops. The assembly formats are essentially the generic forms without quotations and type information. Differential Revision: https://reviews.llvm.org/D80180

view details

Raphael Isemann

commit sha 587f81f54a3abab88fe9be5f113c74fc12655ee0

Revert "[lldb-server] Reset stop reason of all threads when resuming" This reverts commit 56de738d18e11c86169f0248b97b2854c37e35ce. This broke the aarch64 bot. Reverting on behalf of jarin.

view details

Artem Dergachev

commit sha 3f333e0af7a872a0152b4db972a37947e47e690d

[analyzer] Get scan-view executable from environment. Fixes "Use of uninitialized value $ScanView in exec" error on systems with scan-view executable not located in the expected place. Patch by Oliver Tušla! Differential Revision: https://reviews.llvm.org/D77880

view details

Simon Pilgrim

commit sha 96e1ba10e33c80502d5d9fbcc94d1cb8107a1e7b

PseudoSourceValue.h - remove unused operator declaration. NFC. MSVC was warning that the definition for the MachineMemOperand stream handler doesn't exist.

view details

Simon Pilgrim

commit sha dd60ad0b79e0f35a9c670bfa14846de577c1230c

PseudoSourceValue.h - reduce GlobalValue.h include to forward declaration. NFC. Exposes an implicit dependency on Type.h in MachineMemOperand.h

view details

Simon Pilgrim

commit sha 219f8d6c9f5104d4df6a2dff81c6827d4bbae1c8

GenericDomTreeConstruction.h - reorder includes. NFC.

view details

Alex Zinenko

commit sha eab4a199d16851fd8ad8308364d7b1b87bdbb430

[mlir] NFC: rename tests related to SCF dialect from Loops to SCF The dialect and conversions from/to it were renamed in previous commits. Differential Revision: https://reviews.llvm.org/D80216

view details

Melanie Blower

commit sha 827be690dce158924924a70fda79b35a9d7ad1cc

[clang] FastMathFlags.allowContract should be initialized only from FPFeatures.allowFPContractAcrossStatement Summary: Fix bug introduced in D72841 adding support for pragma float_control Reviewers: rjmccall, Anastasia Differential Revision: https://reviews.llvm.org/D79903

view details

Raphael Isemann

commit sha aa04ce761793bfff6de398091125823476a6e924

[lldb][NFC] Minor NamespaceMap refactor

view details

Jay Foad

commit sha 3c843538048e6439426a555698917051c1f3f3e1

[AMDGPU] Add the test from D49097.

view details

Simon Pilgrim

commit sha cb51c0549e0c14ec73a5e174b705d812b6ea0de6

DIPrinter.h - reduce unnecessary includes to forward declarations. NFC.

view details

Simon Pilgrim

commit sha f0daf240c153022dae25e0da2903593484f344be

MachineMemOperand.h - replace Type.h with full GlobalValue.h include to fix -Wundefined-inline warnings.

view details

Nicolas Vasilache

commit sha 004a3d4f56c26a30d2a65818e2bfc03b74ec8123

[mlir][Linalg] Refactor linalg tiling Summary: This revision refactors the Linalg tiling pass to be written as pattern applications and retires the use of the folder in Linalg tiling. In the early days, tiling was written as a pass that would create (partially) folded and canonicalized operations on the fly for better composability. As this evolves towards composition of patterns, the pass-specific folder is counter-productive and is retired. The tiling options struct evolves to take a tile size creation function which allows materializing tile sizes on the fly (in particular constant tile sizes). This plays better with folding and DCE. With the folder going away in Tiling, the check on whether subviews are the same in linalg fusion needs to be more robust. This revision also implements such a check. In the current form, there are still some canonicalizations missing due to AffineMin/Max ops fed by scf::ForOp. These will be improved at a later time. Differential Revision: https://reviews.llvm.org/D80267

view details

Nicolas Vasilache

commit sha 19e5b2bccb4c93f85ca098528f9fa42344e8312f

[mlir][Linalg] NFC - Simplify GenericNestLoop builder Summary: This revision trims unnecessary complexity. Differential Revision: https://reviews.llvm.org/D80290

view details

Alex Zinenko

commit sha a655144f57f8b6a9d5f4ab42b425b1f284353487

[mlir] Toy tutorial: insert terminators at the end of the loop during rewrite When creating temporary `scf.for` loops in `toy.print` lowering, the block insertion point was erronously set up to the beginning of the block rather than to its end, contradicting the comment just above the insertion point change. The code was nevertheless operational because `scf.for` was setting up its `scf.yield` terminator in an opaque to the pattern rewriting infrastructure way. Now that it is about to change, the problem would have been exposed and lead to conversion failures. Differential Revision: https://reviews.llvm.org/D80133

view details

Alex Zinenko

commit sha 5d5df06aac58cfa83ae3d22d01cfc1b25b7a656c

[mlir] DialectConversion: avoid double-free when rolling back op creation Dialect conversion infrastructure may roll back op creation by erasing the operations in the reverse order of their creation. While this guarantees uses of values will be deleted before their definitions, this does not guarantee that a parent operation will not be deleted before its child. (This may happen in case of block inlining or if child operations, such as terminators, are created in the parent's `build` function before the parent itself.) Handle the parent/child relationship between ops by removing all child ops from the blocks before erasing the parent. The child ops remain live, detached from a block, and will be safely destroyed in their turn, which may come later than that of the parent. Differential Revision: https://reviews.llvm.org/D80134

view details

Alex Zinenko

commit sha df48026b4c30d88cc1221883631ac8aa7c4c376b

[mlir] DialectConversion: support erasing blocks PatternRewriter has support for erasing a Block from its parent region, but this feature has not been implemented for ConversionPatternRewriter that needs to keep track of and be able to undo block actions. Introduce support for undoing block erasure in the ConversionPatternRewriter by marking all the ops it contains for erasure and by detaching the block from its parent region. The detached block is stored in the action description and is not actually deleted until the rewrites are applied. Differential Revision: https://reviews.llvm.org/D80135

view details

push time in 10 days

push eventdavezarzycki/llvm-project

Artem Dergachev

commit sha 3f333e0af7a872a0152b4db972a37947e47e690d

[analyzer] Get scan-view executable from environment. Fixes "Use of uninitialized value $ScanView in exec" error on systems with scan-view executable not located in the expected place. Patch by Oliver Tušla! Differential Revision: https://reviews.llvm.org/D77880

view details

Simon Pilgrim

commit sha 96e1ba10e33c80502d5d9fbcc94d1cb8107a1e7b

PseudoSourceValue.h - remove unused operator declaration. NFC. MSVC was warning that the definition for the MachineMemOperand stream handler doesn't exist.

view details

Simon Pilgrim

commit sha dd60ad0b79e0f35a9c670bfa14846de577c1230c

PseudoSourceValue.h - reduce GlobalValue.h include to forward declaration. NFC. Exposes an implicit dependency on Type.h in MachineMemOperand.h

view details

Simon Pilgrim

commit sha 219f8d6c9f5104d4df6a2dff81c6827d4bbae1c8

GenericDomTreeConstruction.h - reorder includes. NFC.

view details

Alex Zinenko

commit sha eab4a199d16851fd8ad8308364d7b1b87bdbb430

[mlir] NFC: rename tests related to SCF dialect from Loops to SCF The dialect and conversions from/to it were renamed in previous commits. Differential Revision: https://reviews.llvm.org/D80216

view details

Melanie Blower

commit sha 827be690dce158924924a70fda79b35a9d7ad1cc

[clang] FastMathFlags.allowContract should be initialized only from FPFeatures.allowFPContractAcrossStatement Summary: Fix bug introduced in D72841 adding support for pragma float_control Reviewers: rjmccall, Anastasia Differential Revision: https://reviews.llvm.org/D79903

view details

Raphael Isemann

commit sha aa04ce761793bfff6de398091125823476a6e924

[lldb][NFC] Minor NamespaceMap refactor

view details

Jay Foad

commit sha 3c843538048e6439426a555698917051c1f3f3e1

[AMDGPU] Add the test from D49097.

view details

Simon Pilgrim