- Dec 16, 2020
-
-
Fangrui Song authored
Reviewed By: grimar Differential Revision: https://reviews.llvm.org/D93259
-
Joe Ellis authored
Prior to this patch, Clang supported the following C/C++ intrinsics: vceqz_p16 vceqzq_p16 vmlaq_n_f64 vmlsq_n_f64 ... exposed through arm_neon.h. However, these intrinsics are not part of the ACLE, allowing developers to write code that is not compatible with other toolchains. This patch removes these intrinsics. There is a bug report capturing this issue here: https://bugs.llvm.org/show_bug.cgi?id=47471 Reviewed By: bsmith Differential Revision: https://reviews.llvm.org/D93206 -
Raul Tambre authored
In some build configurations more than 1.5 might be required. Paramaterize so it can be changed by the user. Reviewed By: yamauchi Differential Revision: https://reviews.llvm.org/D93281
-
Simon Pilgrim authored
Noticed while dealing with D92645 - these are now handled by getFauxShuffleMask + shuffle combining code.
-
Louis Dionne authored
When the allocator is only explicitly convertible from other specializations of itself, the new version of std::allocate_shared would not work because it would try to do an implicit conversion. This patch fixes the problem and adds a test so that we don't fall into the same trap in the future.
-
Mircea Trofin authored
Follow up from D92965 - since we try to find failed prefixes after each RUN line, it's possible the whole list of functions for a prefix be non-existent, which is fine - this happens when none of the RUN lines seen so far used the prefix.
-
Nathan James authored
-
Paul Walker authored
-
Tres Popp authored
Proposal: https://llvm.discourse.group/t/rfc-standard-add-powop-to-std-dialect/2377 Differential Revision: https://reviews.llvm.org/D93119
-
- Dec 15, 2020
-
-
David Green authored
MVE has a dual lane vector move instruction, capable of moving two general purpose registers into lanes of a vector register. They look like one of: vmov q0[2], q0[0], r2, r0 vmov q0[3], q0[1], r3, r1 They only accept these lane indices though (and only insert into an i32), either moving lanes 1 and 3, or 0 and 2. This patch adds some tablegen patterns for them, selecting from vector inserts elements. Because the insert_elements are know to be canonicalized to ascending order there are several patterns that we need to select. These lane indices are: 3 2 1 0 -> vmovqrr 31; vmovqrr 20 3 2 1 -> vmovqrr 31; vmov 2 3 1 -> vmovqrr 31 2 1 0 -> vmovqrr 20; vmov 1 2 0 -> vmovqrr 20 With the top one being the most common. All other potential patterns of lane indices will be matched by a combination of these and the individual vmov pattern already present. This does mean that we are selecting several machine instructions at once due to the need to re-arrange the inserts, but in this case there is nothing else that will attempt to match an insert_vector_elt node. Differential Revision: https://reviews.llvm.org/D92553
-
Quentin Chateau authored
locateSymbolAt (used in goToDeclaration) follows the deduced type instead of failing to locate the declaration. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D92977
-
Ulrich Weigand authored
Indirect sibling calls need to use %r1 to hold the target address. This is currently hard-coded in many places. This is not only unnecessary, but makes future changes in this area difficult. This patch now encodes the target address as operand without hard coding a register in most places throughout the MI back-end. Code generation still always uses %r1, but this is now decided solely in one place in SystemZTargetLowering::LowerCall. NFC intended.
-
Mircea Trofin authored
Two RUN lines produce outputs that, each, have some common parts and some different parts. The common parts are checked under label A. The differing parts are associated to a function and checked under labels B and C, respectivelly. When build_function_body_dictionary is called for the first RUN line, it will attribute the function body to labels A and C. When the second RUN is passed to build_function_body_dictionary, it sees that the function body under A is different from what it has. If in this second RUN line, A were at the end of the prefixes list, A's body is still kept associated with the first run's function. When we output the function body (i.e. add_checks), we stop after emitting for the first prefix matching that function. So we end up with the wrong function body (first RUN's A-association). There is no reason to special-case the last label in the prefixes list, and the fix is to always clear a label association if we fin...
-
Raphael Isemann authored
7ad49aec added a __memory subdirectory to libc++ but the code we use to find libc++ from the debug info support files wasn't prepared to encounter unknown subdirectories within libc++. The import-std-module tests automatically fell back to not importing the std module which caused them to fail. This patch removes our hardcoded exception for the 'experimental' subdirectory and instead just ignores all subdirectories of c++/vX/ when searching the support files.
-
Florian Hahn authored
The AnnotationRemarks pass is already run at the end of the module pipeline. This patch also adds it before bailing out for -O0, so remarks are also generated with -O0.
-
Kazushi (Jam) Marukawa authored
Implement FRAMEADDR for VE. Add a regression test also. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D93295
-
Kazushi (Jam) Marukawa authored
Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D93294
-
Florian Hahn authored
This patch turns updates VPWidenSelectRecipe to manage the value it defines using VPDef. Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D90560
-
Sebastian Neubauer authored
Move getNumFlatOffsetBits from AMDGPUAsmParser and SIInstrInfo into AMDGPUBaseInfo. Differential Revision: https://reviews.llvm.org/D93287
-
Sebastian Neubauer authored
-
Hansang Bae authored
This patch enables serial initialization in the forked child process to fix unstable runtime behavior when used with Python-based AI tools. Differential Revision: https://reviews.llvm.org/D93230
-
Sam McCall authored
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D93289
-
Sam McCall authored
This reverts commit 4d956af5. Assertion failures on windows fixed by 965d71c6
-
Sam McCall authored
Boost in its infinite wisdom considers C: a parent of C:\, and we've inherited that. This breaks the assumption that after canonicalizing a path, the path parents are the directory's parents.
-
Florian Hahn authored
-
Chuanqi Xu authored
[clang-format] Recognize c++ coroutine keywords as unary operator to avoid misleading pointer alignment Summary: The clang-format may go wrong when handle c++ coroutine keywords and pointer. The default value for PointerAlignment is PAS_Right. So the following format is good: ``` co_return *a; ``` But within some code style, the value for PointerAlignment is PAS_Left, the behavior goes wrong: ``` co_return* a; ``` test-plan: check-clang reviewers: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D91245
-
Jun Ma authored
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D93269
-
Jun Ma authored
Differential Revision: https://reviews.llvm.org/D93083
-
Hsiangkai Wang authored
Define vwadd/vwaddu/vwsub/vwsubu intrinsics and lower to V instructions. Authored-by:
Roger Ferrer Ibanez <rofirrim@gmail.com> Co-Authored-by:
Hsiangkai Wang <kai.wang@sifive.com> Differential Revision: https://reviews.llvm.org/D93108
-
Paul Walker authored
AddPromotedToType is being used to legalise INT_TO_FP operations when the source is a predicate. The point where this introduces vector extends might cause problems in the future so this patch falls back to manual promotion within custom lowering. Differential Revision: https://reviews.llvm.org/D90093
-
Paul Walker authored
optimizeGatherScatterInst does nothing specific to fixed length vectors but uses FixedVectorType to extract the number of elements. This patch simply updates the code to use VectorType and getElementCount instead. For testing I just copied Transforms/CodeGenPrepare/X86/gather-scatter-opt.ll replacing `<4 x ` with `<vscale x 4`. Differential Revision: https://reviews.llvm.org/D92572
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[X86][AVX] LowerBUILD_VECTOR - reduce 256/512-bit build vectors with zero/undef upper elements + pad. As discussed on D92645, we don't do a good job of recognising when we don't require the full width of a ymm/zmm build vector because the upper elements are undef/zero. This commit allows us to make use of implicit zeroing of upper elements with AVX instructions, which we emulate in DAG with a INSERT_SUBVECTOR into the bottom of a undef/zero vector of the original type. This exposed a limitation in getTargetConstantBitsFromNode which didn't extract bits from INSERT_SUBVECTORs of different element widths which I've included as well to prevent a couple of regressions.
-
Florian Hahn authored
-
Florian Hahn authored
This patch turns updates VPWidenGEPRecipe to manage the value it defines using VPDef. The VPValue is used during VPlan construction and codegeneration instead of the plain IR reference where possible. Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D90561
-
Florian Hahn authored
This patch turns updates VPWidenREcipe to manage the value it defines using VPDef. Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D90559
-
Jan Svoboda authored
This patch enables marshalling of the exception model options while enforcing their mutual exclusivity. The clang driver interface remains the same, this only affects the cc1 command line. Depends on D93215. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D93216
-
Jan Svoboda authored
This squashes multiple members in LangOptions into one. This is leveraged in a follow-up patch that implements marshalling of related command-line options. Depends on D93214. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D93215
-