- Jun 04, 2021
-
-
Victor Kuznetsov authored
Template args of outer types were not fully-qualified when calling getFullyQualifiedType() for inner types. For simplicity the patch is a copy-paste of the same call from getFullyQualifiedType(). Reviewed at: https://reviews.llvm.org/D103039
-
Philip Reames authored
This is a first step towards simplifying the transform interface to be less error prone. The basic idea is that querying SCEV is cheap (since it's cached) and we can just check for properties related to branch folding in the transform method instead of relying on the heuristic part to pass everything in correctly. Differential Revision: https://reviews.llvm.org/D103584
-
Alexey Bataev authored
No need to recalculate the cost of extractelements, just no need to compensate the cost of all extractelements, need to check before if this is actually going to be removed at the vectorization. Also, no need to generate new extractelement instruction, we may just regenerate the original one. It may improve the final vectorization. Differential Revision: https://reviews.llvm.org/D102933
-
Philip Reames authored
This cleans up the unroll action into two phases. Phase 1 does the mechanical act of unrolling, and leaves all conditional branches in place. Phase 2 optimizes away some of the conditional branches and then simplifies the loop. The primary benefit of the reordering is that we can delete some special cases dom tree update logic. Differential Revision: https://reviews.llvm.org/D103561
-
Jinsong Ji authored
-
Alexey Bataev authored
tryToVectorizeList function allows to reorder only 2 scalars. Patch allows to reorder >2 scalars. Also, to avoid possible regressions, it allows extra vectorization of the remaining parts of the scalars elements if possible. Part of D57059. Differential Revision: https://reviews.llvm.org/D103247
-
Nikita Popov authored
Fix one more missing include in a unit test after 983565a6.
-
Nikita Popov authored
Fix lld build after 983565a6.
-
Harald van Dijk authored
As noticed by NAKAMURA Takumi back in 2017, we cannot use properlyDominates for std::stable_sort as properlyDominates only partially orders blocks. That is, for blocks A, B, C, D, where A dominates B and C dominates D, we have A == C, B == C, but A < B. This is not a valid comparison function for std::stable_sort and causes different results between libstdc++ and libc++. This change uses DFS numbering to give deterministic results for all reachable blocks. Unreachable blocks are ignored already, so do not need special consideration. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D103441
-
Nikita Popov authored
Try to fix buildbots after 983565a6.
-
Fangrui Song authored
-
Nikita Popov authored
This is a followup to D103422. The DenseMapInfo implementations for ArrayRef and StringRef are moved into the ArrayRef.h and StringRef.h headers, which means that these two headers no longer need to be included by DenseMapInfo.h. This required adding a few additional includes, as many files were relying on various things pulled in by ArrayRef.h. Differential Revision: https://reviews.llvm.org/D103491
-
Mark de Wever authored
D101613 added some macros used by Microsofts SAL. D103425 uses `__pre` and `__post`. They are also used by SAL and cause issues when used on Windows. Add them to the blacklist making it easier to figure out what the issue is. Differential Revision: https://reviews.llvm.org/D103541
-
Jeremy Morse authored
This reverts commit ae4303b4. Expensive checks buildbot has found a problem with this: https://lab.llvm.org/buildbot/#/builders/16/builds/11863
-
Rosie Sumpter authored
Differential Revision: https://reviews.llvm.org/D103601
-
Jeremy Morse authored
In the instruction referencing variable location model, we store variable locations that point at PHIs in MachineFunction during register allocation. Unfortunately, register coalescing can substantially change the locations of registers, and so that PHI-variable-location side table needs maintenence during the pass. This patch builds an index from the side table, and whenever a vreg gets coalesced into another vreg, update the index to record the new vreg that the PHI happens in. It also accepts a limited range of subregister coalescing, for example merging a subregister into a larger class. Differential Revision: https://reviews.llvm.org/D86813
-
Jez Ng authored
D103423 neglected to call `parseReexports()` for nested TBD documents, leading to symbol resolution failures when trying to look up a symbol nested more than one level deep in a TBD file. This fixes the regression and adds a test. It also appears that `umbrella` wasn't being set properly when calling `parseLoadCommands` -- it's supposed to resolve to `this` if `nullptr` is passed. I didn't write a failing test case for this but I've made `umbrella` a member so the previous behavior should be preserved. Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D103586
-
- Jun 03, 2021
-
-
Gerhard Gappmeier authored
This allows to set a different indent width for preprocessor statements. Example: #ifdef __linux_ # define FOO #endif int main(void) { return 0; } Differential Revision: https://reviews.llvm.org/D103286 -
Gerhard Gappmeier authored
This re-applies the old patch D27651, which was never landed, into the latest "main" branch, without understanding the code. I just applied the changes "mechanically" and made it compiling again. This makes the right pointer alignment working as expected. Fixes https://llvm.org/PR27353 For instance const char* const* v1; float const* v2; SomeVeryLongType const& v3; was formatted as const char *const * v1; float const * v2; SomeVeryLongType const &v3; This patch keep the *s or &s aligned to the right, next to their variable. The above example is now formatted as const char *const *v1; float const *v2; SomeVeryLongType const &v3; It is a pity that this still does not work with clang-format in 2021, even though there was a fix available in 2016. IMHO right pointer alignment is the default case in C, because syntactically the pointer belongs to the variable. See int* a, b, c; // wrong, just the 1st variable is a pointer vs. int *a, *b, *c; // right Prominent example is the Linux kernel coding style. Some styles argue the left pointer alignment is better and declaration lists as shown above should be avoided. That's ok, as different projects can use different styles, but this important style should work too. I hope that somebody that has a better understanding about the code, can take over this patch and land it into main. For now I must maintain this fork to make it working for our projects. Cheers, Gerhard. Differential Revision: https://reviews.llvm.org/D103245
-
Aart Bik authored
Useful for "exhaustively" testing and benchmarking annotation combinations to verify correctness and perform state space search for best performing. Reviewed By: penpornk Differential Revision: https://reviews.llvm.org/D103566
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Linalg.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103619
-
Hsiangkai Wang authored
-
Alexander Belyaev authored
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in InlineScalarOperands.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103518
-
Peter Steinfeld authored
It's possible to specify defined input/output procedures either as a type-bound procedure of a derived type or as a defined-io-generic-spec. This means that you can specify the same procedure in both mechanisms, which does not cause problems. Alternatively, you can specify two different procedures to be the defined input/output procedure for the same derived type. This is an error. This change catches this error. The situation is slightly complicated by parameterized derived types. Types with the same value for a KIND parameter are treated as the same type while types with different KIND parameters are treated as different types. I implemented this check by adding a vector to keep track of which defined input/output procedures had been seen for which derived types along with the kind of procedure (read vs write and formatted vs unformatted). I also added tests for non-parameterized types and types parameterized by KIND and LEN type parameters. I also removed an erroneous check from the code that creates runtime type information. Differential Revision: https://reviews.llvm.org/D103560
-
Hamza Mahfooz authored
This patch makes it so, floating-point instructions created in LowerMatrixIntrinsics retain fast-math flags from instructions that are higher up the chain. Fixes https://bugs.llvm.org/show_bug.cgi?id=49738 Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D103233
-
Valeriy Savchenko authored
The majority of all `addVisitor` callers follow the same pattern: addVisitor(std::make_unique<SomeVisitor>(arg1, arg2, ...)); This patches introduces additional overload for `addVisitor` to simplify that pattern: addVisitor<SomeVisitor>(arg1, arg2, ...); Differential Revision: https://reviews.llvm.org/D103457
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in LinalgOps.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103506
-
Louis Dionne authored
Since D100581, Clang started flagging this variable which is set but never read. Based on comparing this function with __match_at_start_posix_nosubs (which is very similar), I am pretty confident that `__j` was simply left behind as an oversight in Howard's 6afe8b0a. Also workaround some unused variable warnings in the <random> tests. It's pretty lame that we're not asserting the skew and kurtosis of the binomial and negative binomial distributions, but that should be tackled separately. Differential Revision: https://reviews.llvm.org/D103533
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Loops.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103453
-
Nicolas Agostini authored
Introduces a test pass that rewrites PadTensorOps with static shapes as a sequence of: ``` linalg.init_tensor // to create output linalg.fill // to initialize with padding value linalg.generic // to copy the original contents to the padded tensor ``` The pass can be triggered with: - `--test-linalg-transform-patterns="test-transform-pad-tensor"` Differential Revision: https://reviews.llvm.org/D102804
-
James Henderson authored
In such cases, the executables are not in the llvm_tools_dir directory, so we need to look in the other search locations. Previously, they were found via the PATH, but this was disabled by default in commit rGa1e65658. Depends on D103154. Reviewed By: thopre Differential Revision: https://reviews.llvm.org/D103156
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in DropUnitDims.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103448
-
Martin Storsjö authored
Make sure that comdat symbols also have a non-null dummy SectionChunk associated. This requires moving around an existing FIXME regarding comdats in LTO. Differential Revision: https://reviews.llvm.org/D103012
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Bufferize.cpp, Detensorize.cpp, and Interchange.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103530
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in TestLinalgElementwiseFusion.cpp, TestLinalgFusionTransforms.cpp, and Transforms.cpp. The patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103528
-
David Green authored
-
Tobias Gysi authored
Replace the uses of deprecated Structured Op Interface methods in Promotion.cpp. This patch is based on https://reviews.llvm.org/D103394. Differential Revision: https://reviews.llvm.org/D103450
-
Muhammad Omair Javaid authored
TestDataFormatterStdUniquePtr.py fails on lldb arm/aarch64 linux buildbot but not reproducible on test machine. Skipping for now.
-
Muhammad Omair Javaid authored
TestDataFormatterStdUniquePtr.py fails on lldb arm/aarch64 linux buildbot but not reproducible on test machine. Skipping for now.
-