- May 07, 2020
-
-
Sander de Smalen authored
This patch adds builtins for: - svadrb, svadrh, svadrw, svadrd
-
Sander de Smalen authored
-
Sander de Smalen authored
This patch adds builtins for: - svrdffr, svrdffr_z - svsetffr - svwrffr
-
Sander de Smalen authored
This patch adds builtins for saturating add/sub instructions: - svqadd, svqadd_n - svqsub, svqsub_n and builtins for dot product instructions: - svdot, svdot_lane
-
Kazushi (Jam) Marukawa authored
Remove unnecessary EncoderMethod and DecoderMethod which cause errors in supporting MC layer. Differential Revision: https://reviews.llvm.org/D79544
-
Kazushi (Jam) Marukawa authored
Summary: Correct instruction bitfield addresses to generate machine code correctly. Also add some variables to represent all instructions correctly and change default values to use registers by default. Differential Revision: https://reviews.llvm.org/D79539
-
Lucas Prates authored
Summary: Conflicting types for the same section name defined in clang section pragmas and GNU-style section attributes were not properly captured by Clang's Sema. The lack of diagnostics was caused by the fact the section specification coming from attributes was handled by Sema as implicit, even though explicitly defined by the user. This patch enables the diagnostics for section type conflicts between those specifications by making sure sections defined in section attributes are correctly handled as explicit. Reviewers: hans, rnk, javed.absar Reviewed By: rnk Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78573
-
Lucas Prates authored
Summary: Section names used in clang section pragmas were not validated against previously defined sections, causing section type conflicts to be ignored by Sema. This patch enables Clang to capture these section type conflicts by using the existing Sema's UnifySection method to validate section names from clang section pragmas. Reviewers: hans, rnk, javed.absar Reviewed By: rnk Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78572
-
Sander de Smalen authored
This patch adds builtins for: - sveorbt - sveortb - svpmul - svpmullb, svpmullb_pair - svpmullt, svpmullt_pair The svpmullb and svpmullt builtins are expressed using the svpmullb_pair and svpmullt_pair LLVM IR intrinsics, respectively. Reviewers: SjoerdMeijer, efriedma, rengolin Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D79480
-
Sjoerd Meijer authored
With 3 llvm regr tests fixed/updated that I had missed.
-
Adam Czachorowski authored
Summary: We used getEnclosingNamespaceContext(), which calls getParent() rather than getLexicalParent(), so we would end up adding the "using" line in places that do not affect the cursor location, or just return an error when declaration was in another file. Patch by Adam Czachorowski! Reviewers: hokein Reviewed By: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79496
-
Kerry McLaughlin authored
Summary: Adds AArch64ISD nodes for: - SHL_PRED (logical shift left) - SHR_PRED (logical shift right) - SRA_PRED (arithmetic shift right) Existing patterns for unpredicated left shift by immediate have also been moved into the appropriate multiclasses in SVEInstrFormats.td. Reviewers: sdesmalen, efriedma, ctetreau, huihuiz, rengolin Reviewed By: efriedma Subscribers: huihuiz, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79478
-
Alex Zinenko authored
This functionality was introduced in a87db48e but only only tested indirectly though Linalg tests. Add direct tests.
-
Alex Zinenko authored
Adds a test exercising the rewriting pattern in the test dialect that calls OperationFolder.create.
-
Alex Zinenko authored
Originally, these operations were folded only if all expressions in their affine maps could be folded to a constant expression that can be then subject to numeric min/max computation. This introduces a more advanced version that partially folds the affine map by lifting individual constant expression in it even if some of the expressions remain variable. The folding can update the operation in place to use a simpler map. Note that this is not as powerful as canonicalization, in particular this does not remove dimensions or symbols that became useless. This allows for better composition of Linalg tiling and promotion transformation, where the latter can handle some canonical forms of affine.min that the folding can now produce. Differential Revision: https://reviews.llvm.org/D79502
-
Kadir Cetinkaya authored
Summary: Depends on D78740. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78743
-
LLVM GN Syncbot authored
-
Jay Foad authored
-
Carl Ritson authored
Summary: Add DAG scheduling mutation to cluster export instructions. This avoids unnecessary waitcnts being added when computation ends up interspersed with exports. Reviewers: foad, arsenm, rampitec, nhaehnle Reviewed By: foad Subscribers: kzhuravl, jvesely, wdng, mgorny, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D79481
-
Carl Ritson authored
Test shows unnecessary s_waitcnt between shader exports.
-
Wen-Heng (Jack) Chung authored
ROCLD -> ROCDL. Differential Revision: https://reviews.llvm.org/D79441
-
Alex Zinenko authored
In the Vector to LLVM conversion, the `replaceTransferOp` function calls into a type converter that may fail and suppresses the status. Change the function to return the failure status instead, Since it is called from a pattern, the failure can be readily propagated to the rest of infrastructure.
-
Wen-Heng (Jack) Chung authored
When emitting masked load / store, set alignment from data layout. Differential Revision: https://reviews.llvm.org/D79246
-
Kerry McLaughlin authored
Summary: This patch handles illegal scalable types when lowering IR operations, addressing several places where the value of isScalableVector() is ignored. For types such as <vscale x 8 x i32>, this means splitting the operations. In this example, we would split it into two operations of type <vscale x 4 x i32> for the low and high halves. In cases such as <vscale x 2 x i32>, the elements in the vector will be promoted. In this case they will be promoted to i64 (with a vector of type <vscale x 2 x i64>) Reviewers: sdesmalen, efriedma, huntergr Reviewed By: efriedma Subscribers: david-arm, tschuett, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78812
-
Yevgeny Rouban authored
Splitting critical edges for indirect branches the SplitIndirectBrCriticalEdges() function may break branch probabilities if target basic block happens to have unset a probability for any of its successors. That is because in such cases the getEdgeProbability(Target) function returns probability 1/NumOfSuccessors and it is called after Target was split (thus Target has a single successor). As the result the correspondent successor of the split block gets probability 100% but 1/NumOfSuccessors is expected (or better be left unset). Reviewers: yamauchi Differential Revision: https://reviews.llvm.org/D78806
-
Sjoerd Meijer authored
This reverts commit 617aa64c. while I investigate buildbot failures.
-
Sjoerd Meijer authored
If tail-folding of the scalar remainder loop is applied, the primary induction variable is splat to a vector and used by the masked load/store vector instructions, thus the IV does not remain scalar. Because we now mark that the IV does not remain scalar for these cases, we don't emit the vector IV if it is not used. Thus, the vectoriser produces less dead code. Thanks to Ayal Zaks for the direction how to fix this. Differential Revision: https://reviews.llvm.org/D78911
-
Sam Parker authored
-
Haojian Wu authored
Reviewers: gribozavr2 Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79494
-
David Sherwood authored
When calculating the natural alignment for scalable vectors it is acceptable to calculate an allocation size based on the minimum number of elements in the vector. This code path is exercised by an existing test: CodeGen/AArch64/sve-intrinsics-int-arith.ll Differential Revision: https://reviews.llvm.org/D79475
-
Craig Topper authored
We're truncating so the extra bits will be discarded.
-
Craig Topper authored
[X86] Add test cases for missed opportunity to match pmulh from multiplies with elements larger than i32. We currently look for vXi32 sext/zext to match PMULH, but it doesn't matter how many extra bits above i32 there are.
-
Uday Bondhugula authored
The list of destination load ops while evaluating producer-consumer fusion wasn't being maintained as a set, and as such, duplicate load ops were being added to it. Although this is harmless correctness-wise, it's a killer efficiency-wise and it prevents interesting/useful fusions (including for eg. reshapes into a matmul). The reason the latter fusions would be missed is that a slice union would be unnecessarily needed due to the duplicate load ops on a memref added to the 'dst loads' list. Since slice union is unimplemented for the local var case, a single destination load op that leads to local vars (like a floordiv / mod producing fusion), a common case, would not get fused due to an unnecessary union being tried with itself. (The union would actually be the same thing but we would bail out.) Besides the above, this would also significantly speed up fusion as all the unnecessary slice computations / unions, checks, etc. due to the duplicates go away. Differential Revision: https://reviews.llvm.org/D79547
-
Med Ismail Bennani authored
The source file used to test Objective-C data-formatters didn't respected any formatting (mixed tab and spaces, lines exceed column 80, etc...). This patch reformats the file using clang-format to make it easier to work with. Signed-off-by:Med Ismail Bennani <medismail.bennani@gmail.com>
-
Jonas Devlieghere authored
Fix DWARFLinker.cpp:2538:5: error: call to 'sort' is ambiguous.
-
Craig Topper authored
I missed this case when I did the same for gather results and scatter operands in c69a4d6b.
-
Jonas Devlieghere authored
This patch adds statistics about the contribution of each object file to the linked debug info. When --statistics is passed to dsymutil, it prints a table after linking as illustrated below. It lists the object file name, the size of the debug info in the object file in bytes, and the absolute size contribution to the linked dSYM and the percentage difference. The table is sorted by the output size, so the object files contributing the most to the link are listed first. .debug_info section size (in bytes) ------------------------------------------------------------------------------- Filename Object dSYM Change ------------------------------------------------------------------------------- basic2.macho.x86_64.o 210b 165b -24.00% basic3.macho.x86_64.o 177b 150b -16.51% basic1.macho.x86_64.o 125b 129b 3.15% ------------------------------------------------------------------------------- Total 512b 444b -14.23% ------------------------------------------------------------------------------- Differential revision: https://reviews.llvm.org/D79513
-
Han Zhu authored
f8990feb enabled installing PIC version of both libclang.a and libclang.so when LIBCLANG_BUILD_STATIC is ON. But it broke the no-PIC build when LLVM_ENABLE_PIC=OFF with the following error: ``` CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/clang/tools/libclang/CMakeLists.txt:123 (target_compile_definitions): target_compile_definitions called with non-compilable target type ``` This is because as the code loops through ${name} and ${name}_static, it introduced a side effect, which is adding an empty libclang_static to targets. Later target_compile_definitions is called on libclang_static. That function requires that target must have been created by a command such as add_executable() or add_library(), so it crashed. The solution is to not naively loop through both libclang and libclang_static, but only the ones that are actually added by llvm_add_library(). Here's the library build type to library target name mapping: | SHARED only | libclang | | STATIC only | libclang | | SHARED and STATIC | libclang and libclang_static | So only when SHARED and STATIC are both set should we loop through two targets. Explicitly parse the STATIC argument and set the list accordingly. Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D79059
-
Julian Lettner authored
When reporting diagnostics from ASan's (and other sanitizer's) signal handlers we should strip the "invalid signature" bit before printing addresses. This makes the report less confusing and let's the user focus on the real issue. rdar://62615826 Reviewed By: kubamracek, delcypher Differential Revision: https://reviews.llvm.org/D79132
-
Eli Friedman authored
Now using patterns, since there's a single-instruction lowering. (We could convert to VSELECT and pattern-match that, but there doesn't seem to be much point.) I think this might be the first instruction to use nested multiclasses this way? It seems like a good way to reduce duplication between different integer widths. Let me know if it seems like an improvement. Also, while I'm here, fix the return type of SETCC so we don't try to merge a sign-extend with a SETCC. Differential Revision: https://reviews.llvm.org/D79193
-