- Apr 22, 2021
-
-
Wang, Pengfei authored
SmallSet may use operator `<` when we insert MIRef elements, so we cannot limit the comparison between different BBs. We allow MIRef() to be less that any initialized MIRef object, otherwise, we always reture false when compare between different BBs. Differential Revision: https://reviews.llvm.org/D101039
-
Nico Weber authored
"EmptyNodeIntrospection.inc.in" needs to be a source of the action, so that ninja knows to rerun this action if that input changes.
-
Stephen Kelly authored
-
Nico Weber authored
-
Pavel Labath authored
This addresses post-commit feedback to cd64273f.
-
Nathan Sidwell authored
Document oldest libstdc++ as 4.8.3, remove a hack for a 4.6 issue. Differential Revision: https://reviews.llvm.org/D100465
-
Sander de Smalen authored
We found issues with a number of intrinsics when building them with C++, so it makes sense to guard these tests with some extra RUN lines to build the tests in C++ mode.
-
Valeriy Savchenko authored
Objective-C++ is not yet suppoerted. rdar://76729552 Differential Revision: https://reviews.llvm.org/D100955
-
Frederik Gossen authored
Eliminate empty shapes from the operands, partially fold all constant shape operands, and fix normal folding. Differential Revision: https://reviews.llvm.org/D100634
-
Raphael Isemann authored
`InsertSequence` doesn't take ownership of the pointer so releasing this pointer is just leaking memory. Follow up to D100806 that was fixing other leak sanitizer test failures Reviewed By: JDevlieghere Differential Revision: https://reviews.llvm.org/D100846
-
Jan Svoboda authored
These flags are being generated by `clang-scan-deps` and it makes sense to ensure it keeps doing so.
-
Stephen Kelly authored
-
Raphael Isemann authored
It seems we can't find the symbols of static members on Windows? The bug is not relevant to what this test is actually testing so let's just XFAIL it.
-
Jay Foad authored
-
Stephen Kelly authored
This way we can add support for other nodes without duplication. Differential Revision: https://reviews.llvm.org/D98774
-
Benjamin Kramer authored
Some linters get rather upset upon seeing `std::unordered_map<const char*`, because it looks like a map of strings but isn't. lldb uses interned strings so this is not a problem. DenseMap is a better data structure for this anyways, so use that instead.
-
Stephen Tozer authored
This patch fixes an issue in which ConstantAsMetadata arguments to a DIArglist, as well as the Constant values referenced by that metadata, would not be always be emitted correctly into bitcode. This patch fixes this issue firstly by searching for ConstantAsMetadata in DIArgLists (previously we would only search for them when directly wrapped in MetadataAsValue), and secondly by enumerating all of a DIArgList's arguments directly prior to enumerating the DIArgList itself. This patch also adds a number of asserts, and no longer treats the arguments to a DIArgList as optional fields when reading/writing to bitcode. Differential Revision: https://reviews.llvm.org/D100572
-
Hamza Mahfooz authored
From https://bugs.llvm.org/show_bug.cgi?id=49739: Currently, `#pragma clang fp` are ignored for matrix types. For the code below, the `contract` fast-math flag should be added to the generated call to `llvm.matrix.multiply` and `fadd` ``` typedef float fx2x2_t __attribute__((matrix_type(2, 2))); void foo(fx2x2_t &A, fx2x2_t &C, fx2x2_t &B) { #pragma clang fp contract(fast) C = A*B + C; } ``` Reviewed By: fhahn, mibintc Differential Revision: https://reviews.llvm.org/D100834
-
Simon Pilgrim authored
-
Simon Pilgrim authored
This is a llvm12 only bug, and is already avoided in trunk, but we should keep track of it.
-
Nemanja Ivanovic authored
For compatibility with XLC, add these overloads.
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D100712
-
Raphael Isemann authored
The gtest checks compare all against unsigned int constants so this also needs to be unsigned.
-
Raphael Isemann authored
At the moment the expression parser doesn't support evaluating expressions in static member functions and just pretends the expression is evaluated within a non-member function. This causes that all static members are inaccessible when doing unqualified name lookup. This patch adds support for evaluating in static member functions. It essentially just does the same setup as what LLDB is already doing for non-static member functions (i.e., wrapping the expression in a fake member function) with the difference that we now mark the wrapping function as static (to prevent access to non-static members). Reviewed By: shafik, jarin Differential Revision: https://reviews.llvm.org/D81550
-
Nemanja Ivanovic authored
We currently do not utilize instructions that convert single precision vectors to doubleword integer vectors. These conversions come up in code occasionally and this improvement allows us to open code some functions that need to be added to altivec.h.
-
Thomas Schmeyer authored
Split memref-test from standard test and move them to the folder MemRef. Differential Revision: https://reviews.llvm.org/D100950
-
Martin Storsjö authored
When inspecting the calling convention, for calling windows functions from a non-windows function, inspect the calling convention of the called function, not the caller. Also remove an unnecessary parameter to AArch64CallLowering OutgoingArgHandler. Differential Revision: https://reviews.llvm.org/D100890
-
Jan Svoboda authored
To simplify tools consuming dependency scanning results, prepend the "-cc1" argument by default. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D100942
-
Tobias Gysi authored
The interchange option attached to the linalg to loop lowering affects only the loops and does not update the memory accesses generated in to body of the operation. Instead of performing the interchange during the loop lowering use the interchange pattern. Differential Revision: https://reviews.llvm.org/D100758
-
Martin Probst authored
The if condition was testing the current element, but forgot to check the previous element (doh), so it would fail depending on sort order of the imports. Differential Revision: https://reviews.llvm.org/D101020
-
Jay Foad authored
STRICT_WWM and STRICT_WQM are already defined with Uses = [EXEC], so there is no need to add another implicit use of $exec when lowering them to V_MOV_B32 instructions. Differential Revision: https://reviews.llvm.org/D100969
-
Serge Pavlov authored
Differential Revision: https://reviews.llvm.org/D91242
-
David Sherwood authored
In quite a few cases in LoopVectorize.cpp we call createStepForVF with a step value of 0, which leads to unnecessary generation of llvm.vscale intrinsic calls. I've optimised IRBuilder::CreateVScale and createStepForVF to return 0 when attempting to multiply vscale by 0. Differential Revision: https://reviews.llvm.org/D100763
-
Wenlei He authored
The change adds support for triming and merging cold context when mergine CSSPGO profiles using llvm-profdata. This is similar to the context profile trimming in llvm-profgen, however the flexibility to trim cold context after profile is generated can be useful. Differential Revision: https://reviews.llvm.org/D100528
-
Martin Storsjö authored
The straightforward `AddLinkFlag('-lc++experimental')` approach doesn't work on e.g. MSVC. For linking to libc++ itself, a more convoluted logic is used (see configure_link_flags_cxx_library). Differential Revision: https://reviews.llvm.org/D99177 -
Georgy Komarov authored
clang-tidy should not generate warnings for the goto argument without parentheses, because it would be a syntax error. The only valid case where an argument can be enclosed in parentheses is "Labels as Values" gcc extension: https://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html. This commit adds support for the label-as-values extension as implemented in clang. Fixes bugzilla issue 49634. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D99924
-
Arthur Eubanks authored
We shouldn't print IR when seeing these passes.
-
Craig Topper authored
The value is always an immediate and can never be in a register. This the kind of thing TargetConstant is for. Saves a step GenDAGISel to convert a Constant to a TargetConstant.
-
Max Kazantsev authored
This patch allows PRE of the following type of loads: ``` preheader: br label %loop loop: br i1 ..., label %merge, label %clobber clobber: call foo() // Clobbers %p br label %merge merge: ... br i1 ..., label %loop, label %exit ``` Into ``` preheader: %x0 = load %p br label %loop loop: %x.pre = phi(x0, x2) br i1 ..., label %merge, label %clobber clobber: call foo() // Clobbers %p %x1 = load %p br label %merge merge: x2 = phi(x.pre, x1) ... br i1 ..., label %loop, label %exit ``` So instead of loading from %p on every iteration, we load only when the actual clobber happens. The typical pattern which it is trying to address is: hot loop, with all code inlined and provably having no side effects, and some side-effecting calls on cold path. The worst overhead from it is, if we always take clobber block, we make 1 more load overall (in preheader). It only matters if loop has very few iteration. If clobber block is not taken at least once, the transform is neutral or profitable. There are several improvements prospect open up: - We can sometimes be smarter in loop-exiting blocks via split of critical edges; - If we have block frequency info, we can handle multiple clobbers. The only obstacle now is that we don't know if their sum is colder than the header. Differential Revision: https://reviews.llvm.org/D99926 Reviewed By: reames
-
Pushpinder Singh authored
This patch adds new clang tool named amdgpu-arch which uses HSA to detect installed AMDGPU and report back latter's march. This tool is built only if system has HSA installed. The value printed by amdgpu-arch is used to fill -march when latter is not explicitly provided in -Xopenmp-target. Reviewed By: JonChesterfield, gregrodgers Differential Revision: https://reviews.llvm.org/D99949
-