- Oct 12, 2021
-
-
Hans Wennborg authored
-
Siger Yang authored
Due to CMake cache, find_package in FindLuaAndSwig.cmake will be ignored. This commit adds EXACT and REQUIRED flags to it and removes find_package in Lua ScriptInterpreter. Signed-off-by:
Siger Yang <sigeryeung@gmail.com> Reviewed By: tammela, JDevlieghere Differential Revision: https://reviews.llvm.org/D108515
-
Nicolas Vasilache authored
Differential Revision: https://reviews.llvm.org/D111641
-
Michał Górny authored
Adjust the encoding and format applied to i387_ext and vec* type registers from gdbserver to match lldb-server. Both types are now displayed as vector of uint8 instead of float and integer formats used before. Additionally, this fixes display of STi registers when they do not carry floating-point data (they are also used to hold MMX vectors). Differential Revision: https://reviews.llvm.org/D108468
-
Nico Weber authored
`[[clang::fallthrough]]` has meaning for the CFG, but all other StmtAttrs we currently have don't. So omit them, as AttributedStatements with children cause several issues and there's no benefit in including them. Fixes PR52103 and PR49454. See PR52103 for details. Differential Revision: https://reviews.llvm.org/D111568
-
Nicolas Vasilache authored
-
Nicolas Vasilache authored
This revision takes advantage of the recently added support for 0-d transfers and vector.multi_reduction that return a scalar. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D111626
-
Lei Zhang authored
* Fold extract_slice immediately after insert_slice. * Fold overlapping insert_slice. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D111439
-
Nicolas Vasilache authored
This revision also renames and moves some tests around. Differential Revision: https://reviews.llvm.org/D111606
-
Simon Pilgrim authored
-
Nicolas Vasilache authored
Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D111603
-
Kerry McLaughlin authored
collectLoopScalars collects pointer induction updates in ScalarPtrs, assuming that the instruction will be scalar after vectorization. This may crash later in VPReplicateRecipe::execute() if there there is another user of the instruction other than the Phi node which needs to be widened. This changes collectLoopScalars so that if there are any other users of Update other than a Phi node, it is not added to ScalarPtrs. Reviewed By: david-arm, fhahn Differential Revision: https://reviews.llvm.org/D111294
-
Nicolas Vasilache authored
This revision updates the op semantics, printer, parser and verifier to allow 0-d transfers. Until 0-d vectors are available, such transfers have a special form that transits through vector<1xt>. This is a stepping stone towards the longer term work of adding 0-d vectors and will help significantly reduce corner cases in vectorization. Transformations and lowerings do not yet support this form, extensions will follow. Differential Revision: https://reviews.llvm.org/D111559
-
Nicolas Vasilache authored
[mlir][Linalg] NFC - Refactor vector.broadcast op verification logic and make it available as a precondition in Linalg vectorization. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D111558
-
Florian Hahn authored
Using contains was suggested in D108114, but I forgot to include it when landing the patch.
-
Nicolas Vasilache authored
vector.multi_reduction currently does not allow reducing down to a scalar. This creates corner cases that are hard to handle during vectorization. This revision extends the semantics and adds the proper transforms, lowerings and canonicalizations to allow lowering out of vector.multi_reduction to other abstractions all the way to LLVM. In a future, where we will also allow 0-d vectors, scalars will still be relevant: 0-d vector and scalars are not equivalent on all hardware. In the process, splice out the implementation patterns related to vector.multi_reduce into a new file. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D111442
-
Shraiysh Vaishay authored
`hint-expression` is an IntegerAttr, because it can be a combination of multiple values from the enum `omp_sync_hint_t` (Section 2.17.12 of OpenMP 5.0) Reviewed By: ftynse, kiranchandramohan Differential Revision: https://reviews.llvm.org/D111360
-
LLVM GN Syncbot authored
-
Sjoerd Meijer authored
This is a follow up of D110529 that disallowed constexprs. That change introduced a regression as this also disallowed constexprs that are function pointers, which is actually one of the motivating use cases that we do want to support. Differential Revision: https://reviews.llvm.org/D111567
-
Florian Hahn authored
This patch adds a new cost heuristic that allows peeling a single iteration off read-only loops, if the loop contains a load that 1. is feeding an exit condition, 2. dominates the latch, 3. is not already known to be dereferenceable, 4. and has a loop invariant address. If all non-latch exits are terminated with unreachable, such loads in the loop are guaranteed to be dereferenceable after peeling, enabling hoisting/CSE'ing them. This enables vectorization of loops with certain runtime-checks, like multiple calls to `std::vector::at` if the vector is passed as pointer. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D108114
-
Jan Svoboda authored
To reduce the number of explicit builds of a single module, we can try to squash multiple occurrences of the module with different command-lines (and context hashes) by removing benign command-line options. The greatest contributors to benign differences between command-lines are the header search paths. In this patch, the lookup cache in `HeaderSearch` is used to identify paths that were actually used when implicitly building the module during scanning. This information is serialized into the unhashed control block of the implicitly-built PCM. The dependency scanner then loads this and may use it to prune the header search paths before computing the context hash of the module and generating the command-line. We could also prune the header search paths when serializing `HeaderSearchOptions` into the PCM. That way, we could do it only once instead of every load of the PCM file by dependency scanner. However, that would result in a PCM file whose contents don't produce the same context hash as the original build, which is probably highly surprising. There is an alternative approach to storing extra information into the PCM: wire up preprocessor callbacks to capture the used header search paths on-the-fly during preprocessing of modularized headers (similar to what we currently do for the main source file and textual headers). Right now, that's not compatible with the fact that we do an actual implicit build producing PCM files during dependency scanning. The second run of dependency scanner loads the PCM from the first run, skipping the preprocessing altogether, which would result in different results between runs. We can revisit this approach when we stop building implicitly during dependency scanning. Depends on D102923. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D102488
-
Nico Weber authored
-
Vladislav Vinogradov authored
Make `raw_ostream operator<<` follow const correctness semantic, since it is a requirement of FormatVariadic implementation. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D111547
-
jacquesguan authored
Reviewed By: khchen Differential Revision: https://reviews.llvm.org/D111597
-
Jan Svoboda authored
For dependency scanning, it would be useful to collect header search paths (provided on command-line via `-I` and friends) that were actually used during preprocessing. This patch adds that feature to `HeaderSearch` along with a new remark that reports such paths as they get used. Previous version of this patch tried to use the existing `LookupFileCache` to report used paths via `HitIdx`. That doesn't work for `ComputeUserEntryUsage` (which is intended to be called *after* preprocessing), because it indexes used search paths by the file name. This means the values get overwritten when the code contains `#include_next`. Note that `HeaderSearch` doesn't use `HeaderSearchOptions::UserEntries` directly. Instead, `InitHeaderSearch` pre-processes them (adds platform-specific paths, removes duplicates, removes paths that don't exist) and creates `DirectoryLookup` instances. This means we need a mechanism for translating between those two. It's not possible to go from `DirectoryLookup` back to the original `HeaderSearch`, so `InitHeaderSearch` now tracks the relationships explicitly. Depends on D111557. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D102923
-
Louis Dionne authored
Some embedded platforms do not wish to support the C library functionality for handling wchar_t because they have no use for it. It makes sense for libc++ to work properly on those platforms, so this commit adds a carve-out of functionality for wchar_t. Unfortunately, unlike some other carve-outs (e.g. random device), this patch touches several parts of the library. However, despite the wide impact of this patch, I still think it is important to support this configuration since it makes it much simpler to port libc++ to some embedded platforms. Differential Revision: https://reviews.llvm.org/D111265
-
Caitlyn Cano authored
* Change callback signature `bool(Operation *)` -> `Optional<bool>(Operation *)` * addDynamicallyLegalOp add callback to the chain * If callback returned empty `Optional` next callback in chain will be called Differential Revision: https://reviews.llvm.org/D110487
-
Andrew Ng authored
Differential Revision: https://reviews.llvm.org/D111436
-
Sven van Haastregt authored
Add atomic_half types and builtins operating on the types from the cl_ext_float_atomics extension. Patch by Haonan Yang. Differential Revision: https://reviews.llvm.org/D109740
-
Nimish Mishra authored
[flang][OpenMP] Added test case for OpenMP 5.0 specification based semantic checks for parallel sections construct Parallel sections directive borrows the semantic checks from both sections directive and parallel directive. Semantic checks for both are merged in main branch; this test case is added to make sure correct semantic checks upon merging the two. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D111438
-
Vladislav Vinogradov authored
Call `printType(subElemType)` instead of `os << subElemType` for them. It allows to handle type aliases inside complex types. As a side effect, fixed `test.int` parsing. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D111536
-
Vladislav Vinogradov authored
* Call `llvm_canonicalize_cmake_booleans` for all CMake options, which are propagated to `lit.local.cfg` files. * Use Python native boolean values instead of strings for such options. This fixes the cases, when CMake variables have values other than `ON` (like `TRUE`). This might happen due to IDE integration or due to CMake preset usage. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D110073
-
Roger Ferrer Ibanez authored
There is no code that uses this base class yet, hence the typo went unnoticed when this class was added in D105871 Differential Revision: https://reviews.llvm.org/D110930
-
Diana Picus authored
Split into 2 entry points, one for the length and one for the value. Differential Revision: https://reviews.llvm.org/D111392
-
Qiu Chaofan authored
The case was added in 728e1397, testing it outputs lxsibzx instead of lbzux. Here we need some minimal update to avoid DCE in future patches.
-
Jan Svoboda authored
This fixes an LLDB build failure where the `ImportLoc` argument is missing: https://lab.llvm.org/buildbot#builders/68/builds/19975 This change also makes it possible to drop `SourceLocation()` in `Preprocessor::getCurrentModule`.
-
Victor Campos authored
Reviewed By: pratlucas Differential Revision: https://reviews.llvm.org/D110241
-
Jan Svoboda authored
This patch propagates the import `SourceLocation` into `HeaderSearch::lookupModule`. This enables remarks on search path usage (implemented in D102923) to point to the source code that initiated header search. Reviewed By: dexonsmith Differential Revision: https://reviews.llvm.org/D111557
-
Valentin Clement authored
Add two test for needExternalNameMangling. - One varibale in a function - One namelist in a module This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D111544
-
jacquesguan authored
Rename vfredsum and vfwredsum to vfredusum and vfwredusum. Add aliases for vfredsum and vfwredsum. Reviewed By: luismarques, HsiangKai, khchen, frasercrmck, kito-cheng, craig.topper Differential Revision: https://reviews.llvm.org/D105690
-