- Jul 07, 2020
-
-
Sam McCall authored
Summary: .clangd/index was well-intentioned in 2754942c, but `.clangd` is the best filename for the clangd config file (matching .clang-format and .clang-tidy). And of course we can't have both .clangd/index and .clangd... There are a few overlapping goals to satisfy: - it should be clear from the directory name that this is transient data that is safe to delete at the cost of recomputation, i.e. a cache - it should be easy and self-documenting to blacklist these files in .gitignore - we should have some consistency between filenames in-tree and corresponding files in user storage (e.g. under XDG's ~/.cache/) - we should be consistent across platforms (including windows, which doesn't have distinct cache vs config directories) So the plan is: $PROJECT/.clangd (project config) $PROJECT/.cache/clangd/index/ (project index) $PROJECT/.cache/clangd/modules/ (maybe in future) $XDG_CONFIG_HOME/clangd/config.yaml (user config) $XDG_CACHE_HOME/clangd/index/ (index of non-project files) $XDG_CACHE_HOME/clangd/modules/ (maybe in future) This is sensible if XDG_{CONFIG,CACHE}_HOME coincide, and has a simple .gitignore rule going forward: `.cache/`. The monorepo gitignore is updated to reflect the backwards-compatible practice: ignore .clangd/ (with trailing slash) matching index files from clangd 9/10 ignore .cache matching index from clangd 11+, and potentially other tools. The entries from llvm-project/llvm gitignore are removed (obsolete). Reviewers: kadircet, hokein Subscribers: ilya-biryukov, MaskRay, jkorous, omtcyfz, arphaman, usaxena95, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D83099
-
Benjamin Kramer authored
vector.fma and mulf don't work on integers. Use a muli/addi pair or plain muli instead. Differential Revision: https://reviews.llvm.org/D83292
-
Lei Zhang authored
Similar to OwningModuleRef, OwningSPIRVModuleRef signals ownership transfer clearly. This is useful for APIs like spirv::deserialize, where a spirv::ModuleOp is returned by deserializing SPIR-V binary module. This addresses the ASAN error as reported in https://bugs.llvm.org/show_bug.cgi?id=46272 Differential Revision: https://reviews.llvm.org/D81652
-
Ayal Zaks authored
If a loop is in a function marked OptSize, Loop Access Analysis should refrain from generating runtime checks for unit strides that will version the loop. If a loop is in a function marked OptSize and its vectorization is enabled, it should be vectorized w/o any versioning. Fixes PR46228. Differential Revision: https://reviews.llvm.org/D81345
-
Raphael Isemann authored
io.BytesIO seems to produce a stream in Python 2 which isn't recognized as a file object in the SWIG API, so this test fails for Python 2 (and I assume also an old SWIG version needs to be involved). Instead just open an empty input file which is a file object in all Python versions to make this test pass everywhere.
-
Georgii Rymar authored
It was requested in D83225 review to do it separately.
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D83293
-
Georgii Rymar authored
It is possible to: 1) Avoid using the `unwrapOrError` calls and hence allow to continue dumping even when something is not OK with one of SHT_LLVM_LINKER_OPTIONS sections. 2) replace `reportWarning` with `reportUniqueWarning` calls. In this method it is no-op, because it is not possible to have a duplicated warnings anyways, but since we probably want to switch to `reportUniqueWarning` globally, this is a good thing to do. This patch addresses both these points. Differential revision: https://reviews.llvm.org/D83131
-
Georgii Rymar authored
This introduces `printHashTableSymbols` and `printGNUHashTableSymbols` to split the `printHashSymbols`. It makes the code more readable and consistent. Differential revision: https://reviews.llvm.org/D83040
-
Kerry McLaughlin authored
Summary: When splitting a store of a scalable type, the new address is calculated in SplitVecOp_STORE using a vscale and an add instruction. Reviewers: sdesmalen, efriedma, david-arm Reviewed By: david-arm Subscribers: tschuett, hiraditya, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D83041
-
Georgii Rymar authored
This is a followup for D83129. It is possible to make `getStaticSymbolName` report warnings inside and return the "<?>" on a error. This allows to encapsulate errors handling and slightly simplifies the logic in callers code. Differential revision: https://reviews.llvm.org/D83208
-
Georgii Rymar authored
The code we have currently reports an error if something is not right with the profile section. Instead we can report a warning and continue dumping when it is possible. This patch does it. Differential revision: https://reviews.llvm.org/D83129
-
Kerry McLaughlin authored
Summary: When splitting a load of a scalable type, the new address is calculated in SplitVecRes_LOAD using a vscale and an add instruction. This patch also adds a DAG combiner fold to visitADD for vscale: - Fold (add (vscale(C0)), (vscale(C1))) to (add (vscale(C0 + C1))) Reviewers: sdesmalen, efriedma, david-arm Reviewed By: david-arm Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82792
-
Manuel Klimek authored
This allows us to share the allocator in the future so we can create tokens while parsing. Differential Revision: https://reviews.llvm.org/D83218
-
Guillaume Chatelet authored
This is the first step to add support for the align attribute to AtomicRMWInst and AtomicCmpXchgInst. Next step is to add support in IRBuilder and BitcodeReader. Bug: https://bugs.llvm.org/show_bug.cgi?id=27168 Differential Revision: https://reviews.llvm.org/D83136
-
Pavel Labath authored
Summary: Unify the code for requiring a complete type and move it into a single place. The only functional change is that the "cannot start a definition of an incomplete type" is upgrated from a runtime error/warning to an lldbassert. An plain assert might also be fine, since (AFAICT) this can only happen in case of a programmer error. Reviewers: teemperor, aprantl, shafik Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D83199
-
Georgii Rymar authored
We might crash when the dynamic symbols table is empty (or not found) and --hash-symbols is requested. Both .hash and .gnu.hash logic is affected. The patch fixes this issue. Differential revision: https://reviews.llvm.org/D83037
-
Kiran Kumar T P authored
Summary: This patch enhances parser support for flush construct to OpenMP 5.0 by including memory-order-clause. 2.18.8 flush Construct !$omp flush [memory-order-clause] [(list)] where memory-order-clause is acq_rel release acquire The patch includes code changes and testcase modifications. Reviewed By: klausler, kiranchandramohan Differential Revision: https://reviews.llvm.org/D82177
-
River Riddle authored
These were largely leftover from when MLIR was a google project, and don't really follow LLVM guidelines.
-
David Sherwood authored
There are now more SVE tests in LLVM and Clang that do not emit warnings related to invalid use of EVT::getVectorNumElements() and VectorType::getNumElements(). For these tests I have added additional checks that there are no warnings in order to prevent any future regressions. Differential Revision: https://reviews.llvm.org/D82943
-
David Sherwood authored
In an earlier commit 584d0d5c I added functionality to allow AArch64 CodeGen support for falling back to DAG ISel when Global ISel encounters scalable vector types. However, it seems that we were not falling back early enough as llvm::getLLTForType was still being invoked for scalable vector types. I've added a new fallback function to the call lowering class in order to catch this problem early enough, rather than wait for lowerFormalArguments to reject scalable vector types. Differential Revision: https://reviews.llvm.org/D82524
-
David Sherwood authored
This patch fixes all remaining warnings in: llvm/test/CodeGen/AArch64/sve-trunc.ll llvm/test/CodeGen/AArch64/sve-vector-splat.ll I hit some warnings related to getCopyPartsToVector. I fixed two issues: 1. In widenVectorToPartType() we assumed that we'd always be using BUILD_VECTOR nodes to expand from one vector type to another, which is incorrect for scalable vector types. I've fixed this for now by simply bailing out immediately for scalable vectors. 2. In getCopyToPartsVector() I've changed the code to compare the element counts of different types. Differential Revision: https://reviews.llvm.org/D83028
-
Craig Topper authored
'64bit' shows up from -march=native on 64-bit capable CPUs. 'retpoline-eternal-thunk' isn't a real feature but shows up when -mretpoline-external-thunk is passed to clang.
-
Craig Topper authored
This is failing on the bots. Remove while I try to figure out what feature I missed in the table.
-
Craig Topper authored
setFeatureEnabled is a virtual function. setFeatureEnabledImpl was its implementation. This split was to avoid virtual calls when we need to call setFeatureEnabled in initFeatureMap. With C++11 we can use 'final' on setFeatureEnabled to enable the compiler to perform de-virtualization for the initFeatureMap calls.
-
Carl Ritson authored
MAD/MAC is no longer always available. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D83207
-
Saiyedul Islam authored
This function uses __builtin_amdgcn_atomic_inc32(): uint32_t atomicInc(uint32_t *address, uint32_t max); These functions use __builtin_amdgcn_fence(): __kmpc_impl_threadfence() __kmpc_impl_threadfence_block() __kmpc_impl_threadfence_system() They will take place of current mechanism of directly calling IR functions. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D83132
-
Saiyedul Islam authored
builtin_amdgcn_atomic_inc32(uint *Ptr, uint Val, unsigned MemoryOrdering, const char *SyncScope) builtin_amdgcn_atomic_inc64(uint64_t *Ptr, uint64_t Val, unsigned MemoryOrdering, const char *SyncScope) builtin_amdgcn_atomic_dec32(uint *Ptr, uint Val, unsigned MemoryOrdering, const char *SyncScope) builtin_amdgcn_atomic_dec64(uint64_t *Ptr, uint64_t Val, unsigned MemoryOrdering, const char *SyncScope) As AMDGCN IR instrinsic for atomic inc/dec does unsigned comparison, these clang builtins should also take unsigned types instead of signed int types. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D83121
-
Craig Topper authored
[X86] Move the feature dependency handling in X86TargetInfo::setFeatureEnabledImpl to a table based lookup in X86TargetParser.cpp Previously we had to specify the forward and backwards feature dependencies separately which was error prone. And as dependencies have gotten more complex it was hard to be sure the transitive dependencies were handled correctly. The way it was written was also not super readable. This patch replaces everything with a table that lists what features a feature is dependent on directly. Then we can recursively walk through the table to find the transitive dependencies. This is largely based on how we handle subtarget features in the MC layer from the tablegen descriptions. Differential Revision: https://reviews.llvm.org/D83273
-
Max Kazantsev authored
-
Craig Topper authored
We had both SSE4A and SSE4_A. So remove one of them.
-
Martin Waitz authored
An operation can specify that an operation or result type matches the type of another operation, result, or attribute via the `AllTypesMatch` or `TypesMatchWith` constraints. Use these constraints to also automatically resolve types in the automatically generated assembly parser. This way, only the attribute needs to be listed in `assemblyFormat`, e.g. for constant operations. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D78434
-
Sameer Arora authored
This diff merges all options for llvm-install-name-tool under a single function processLoadCommands. Also adds another test case for -add_rpath option. Test plan: make check-all Reviewed by: jhenderson, alexshap, smeenai, Ktwu Differential Revision: https://reviews.llvm.org/D82812
-
Nemanja Ivanovic authored
When legalizing shuffles, we make an attempt to combine it into a PPC specific canonical form that avoids a need for a swap. If the combine is successful, we RAUW the node and the custom legalization replaces the now dead node instead of the one it should replace. Remove that erroneous call to RAUW.
-
LLVM GN Syncbot authored
-
Valentin Clement authored
Summary: Generate the isAllowedClauseForDirective function from tablegen. This patch introduce the VersionedClause in the tablegen file so that clause can be encapsulated in this class to specify a range of validity on a directive. VersionedClause has default minVersion, maxVersion so it can be used without them or minVersion. Reviewers: jdoerfert, jdenny Reviewed By: jdenny Subscribers: yaxunl, hiraditya, guansong, jfb, sstefan1, aaron.ballman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82982
-
Xiang1 Zhang authored
INTEL ADVANCED MATRIX EXTENSIONS (AMX). AMX is a new programming paradigm, it has a set of 2-dimensional registers (TILES) representing sub-arrays from a larger 2-dimensional memory image and operate on TILES. These intrinsics use direct TMM register number as its params. Spec can be found in Chapter 3 here https://software.intel.com/content/www/us/en/develop/download/intel-architecture-instruction-set-extensions-programming-reference.html Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D83111
-
Mauricio Sifontes authored
with the objective to reduce large test cases into smaller ones while preserving their interesting behavior. Implement the framework to parse the command line arguments, parse the input MLIR test case into a module and call reduction passes on the MLIR module. Implement the Tester class which allows the different reduction passes to test the interesting behavior of the generated reduced variants of the test case and keep track of the most reduced generated variant.
-
Biplob Mishra authored
Implements builtins for the following prototypes: vector signed int vec_splati (const signed int); vector float vec_splati (const float); vector double vec_splatid (const float); vector signed int vec_splati_ins (vector signed int, const unsigned int, const signed int); vector unsigned int vec_splati_ins (vector unsigned int, const unsigned int, const unsigned int); vector float vec_splati_ins (vector float, const unsigned int, const float); Differential Revision: https://reviews.llvm.org/D82520
-
Amy Kwan authored
This patch aims to exploit the xxsplti32dx XT, IX, IMM32 instruction when lowering VECTOR_SHUFFLEs. We implement lowerToXXSPLTI32DX when lowering vector shuffles to check if: - Element size is 4 bytes - The RHS is a constant vector (and constant splat of 4-bytes) - The shuffle mask is a suitable mask for the XXSPLTI32DX instruction where it is one of the 32 masks: <0, 4-7, 2, 4-7> <4-7, 1, 4-7, 3> Differential Revision: https://reviews.llvm.org/D83245
-