This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Apr 04, 2022
-
-
Pavel Samolysov authored
Few times in different methods of the EmitAssemblyHelper class the following code snippet is used to get the TargetTriple and then use it's single method to check some conditions: TargetTriple(TheModule->getTargetTriple()) The parsing of a target triple string is not a trivial operation and it takes time to repeat the parsing many times in different methods of the class and even numerous times in one method just to call a getter (llvm::Triple(TheModule->getTargetTriple()).getVendor()), for example. The patch extracts the TargetTriple member of the EmitAssemblyHelper class to parse the triple only once in the class' constructor. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D122587
-
Simon Pilgrim authored
-
PeixinQiao authored
Fix the build error with "-Werror,-Wcovered-switch-default". Reviewed By: hpmorgan Differential Revision: https://reviews.llvm.org/D123018
-
David Green authored
A vector mul(sext, sext) or mul(zext, zext) will be code generated as a single smull or umull instruction. This most notably effects v2i64 multiplies, which are otherwise not legal and need to be expanded. The oneuse check has also been slightly changed, as it is already checked from the use of isWideningInstruction in getCastInstrCost. Differential Revision: https://reviews.llvm.org/D123006
-
Simon Pilgrim authored
-
David Spickett authored
This updates the disassembler to enable every optional extension. Previously we had added things that we added "support" for in lldb. (where support means significant work like new registers, fault types, etc.) Something like TME (transactional memory) wasn't added because there are no new lldb features for it. However we should still be disassembling the instructions. So I went through the AArch64 extensions and added all the missing ones. The new test won't prevent us missing a new extension but it does at least document our current settings. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121999
-
Simon Pilgrim authored
-
David Green authored
-
Nikita Popov authored
With opaque pointers, we can eliminate zero-index GEPs even if they have multiple indices, as this no longer impacts the result type of the GEP. This optimization is already done for instructions in InstSimplify, but we were missing the corresponding constant expression handling. The constexpr transform is a bit more powerful, because it can produce a vector splat constant and also handles undef values -- it is an extension of an existing single-index transform.
-
Nikita Popov authored
-
Simon Pilgrim authored
-
Muhammad Omair Javaid authored
This reverts commit e91fe089. Breaks following buildbots: https://lab.llvm.org/buildbot/#/builders/171
-
Andrzej Warzynski authored
These are mostly small changes to make the code a bit clearer and more consistent. Summary of changes: * add missing namespace qualifiers (that's the preference in Flang) * replace const member methods with static methods (to avoid passing the *this pointer unnecessarily) * rename `currentObjTy` (current object type) as `cpnTy` (component type) - the latter feels more fitting * remove redundant `return failure();` calls (` return mlir::emitError` gives the same result) * updated a few comments Differential Revision: https://reviews.llvm.org/D122799
-
Jeremy Morse authored
Use the "isBitfield" flag for debug types to determine whether something is a bitfield, rather than trying to guess from it's layout. Fixes https://bugs.llvm.org/show_bug.cgi?id=44601 Patch by: mahkoh Differential Revision: https://reviews.llvm.org/D96334
-
Simon Pilgrim authored
Extension to D122891, peek through NOT() ops, adjusting the condcode as we go.
-
Simon Pilgrim authored
As suggested in post review on D122891
-
Florian Hahn authored
Update VPInterleavedAccessInfo to use the generic getVectorLoopRegion helper instead of relying on the entry block being the top-most vector loop region.
-
Martin Sebor authored
If both the character and string are known, but the length potentially isn't, we can optimize the memchr() call to a select of either the known position of the character or null. Split off from https://reviews.llvm.org/D122836.
-
Martin Sebor authored
Handle the simple constant char case before the bitmask optimization. This will allow extending the code to handle a non-constant size argument in a followup change. Split out from https://reviews.llvm.org/D122836.
-
Valentin Clement authored
This patch adds tests for the array-value-copy pass with array assignment involving Fortran pointers. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D122878
-
Martin Sebor authored
If the memchr() size is 1, then we can convert the call into a single-byte comparison. This works even if both the string and the character are unknown. Split off from https://reviews.llvm.org/D122836.
-
Martin Sebor authored
And fix some test names / comments.
-
Florian Hahn authored
At the moment this is NFC, but will be needed once nested loops are also modeled as regions. Preparation for D123005.
-
Nikita Popov authored
As discussed on https://github.com/llvm/llvm-project/issues/54682, MemorySSA currently has a bug when computing the clobber of calls that access loop-varying locations. I think a "proper" fix for this on the MemorySSA side might be non-trivial, but we can easily work around this in MemCpyOpt: Currently, MemCpyOpt uses a location-less getClobberingMemoryAccess() call to find a clobber on either the src or dest location, and then refines it for the src and dest clobber. This was intended as an optimization, as the location-less API is cached, while the location-affected APIs are not. However, I don't think this really makes a difference in practice, because I don't think anything will use the cached clobbers on those calls later anyway. On CTMark, this patch seems to be very mildly positive actually. So I think this is a reasonable way to avoid the problem for now, though MemorySSA should also get a fix. Differential Revision: https://reviews.llvm.org/D122911
-
Nikita Popov authored
The range calculation in walkForwards() assumes that the ranges of the operands have already been calculated. With the used visit order, this is not necessarily the case when there are multiple roots. (There is nothing guaranteeing that instructions are visited in topological order.) Fix this by queuing instructions for reprocessing if the operand ranges haven't been calculated yet. Fixes https://github.com/llvm/llvm-project/issues/54669. Differential Revision: https://reviews.llvm.org/D122817
-
Jean Perier authored
In case a character component PDT length only depends on kind parameters, fold it while instantiating the PDT. This is especially important if the component has an initializer because later semantic phases (offset computation or runtime type info generation) might get confused and generate offset/type info that will lead to crashes in lowering. Differential Revision: https://reviews.llvm.org/D122938
-
Valentin Clement authored
This patch adds FIR to LLVM test for fir.address_of. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D122889 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Fangrui Song authored
Reported at https://github.com/llvm/llvm-project/issues/54679#issuecomment-1086862116
-
Min-Yih Hsu authored
This patch is covered by existing MC tests.
-
Min-Yih Hsu authored
The associated test had a redundant CHECK-LABEL directive that might fail the test since the inception, but this issue was "burried" by a missing colon, which was addressed in fb65aaf0. Thus, the test finally failed after the said commit. This patch remove that CHECK-LABEL directive.
-
Yuanfang Chen authored
This relands commit a87ba5c8. Adjust llvm/utils/lit/tests/googletest-timeout.py for new test output.
-
Argyrios Kyrtzidis authored
The LLVM builders that were doing that have been updated to use "-DLLVM_CCACHE_BUILD=ON" instead.
-
Augie Fackler authored
I didn't dig into this very much because it appears to be totally valid (especially once these properties can come from attributes instead of only from hard-coded library functions) for TLI to not be defined, and nothing broke when I added this check, including with all my other patches applied. Differential Revision: https://reviews.llvm.org/D122917
-
Augie Fackler authored
Prior to this change, CallBase::hasFnAttr checked the called function to see if it had an attribute if it wasn't set on the CallBase, but getFnAttr didn't do the same delegation, which led to very confusing behavior. This patch fixes the issue by making CallBase::getFnAttr also check the function under the same circumstances. Test changes look (to me) like they're cleaning up redundant attributes which no longer get specified both on the callee and call. We also clean up the one ad-hoc implementation of this getter over in InlineCost.cpp. Differential Revision: https://reviews.llvm.org/D122821
-
Philip Reames authored
In general, anywhere we might need to insert a blind bitcast, we need to make sure the types are losslessly convertible. This fixes pr54634.
-
Philip Reames authored
The search for the clobbering call is fairly expensive if uses are not optimized at construction. Defer the clobber walk to the point in the implementation we need it; there are a bunch of bailouts before that point. (e.g. If the source pointer is not an alloca, we can't do callslotopt.) On a test case which involves a bunch of copies from argument pointers, this switches memcpyopt from > 1/2 second to < 10ms.
-
Yuanfang Chen authored
This reverts commit a87ba5c8. Breaks bots: https://lab.llvm.org/buildbot/#/builders/196/builds/10454
-
Yuanfang Chen authored
This helps lit unit test performance by a lot, especially on windows. The performance gain comes from launching one gtest executable for many subtests instead of one (this is the current situation). The shards are executed by the test runner and the results are stored in the json format supported by the GoogleTest. Later in the test reporting stage, all test results in the json file are retrieved to continue the test results summary etc. On my Win10 desktop, before this patch: `check-clang-unit`: 177s, `check-llvm-unit`: 38s; after this patch: `check-clang-unit`: 37s, `check-llvm-unit`: 11s. On my Linux machine, before this patch: `check-clang-unit`: 46s, `check-llvm-unit`: 8s; after this patch: `check-clang-unit`: 7s, `check-llvm-unit`: 4s. Reviewed By: yln, rnk Differential Revision: https://reviews.llvm.org/D122251
-
Xiang1 Zhang authored
-
Dávid Bolvanský authored
This reverts commit 14e3450f.
-