- Jan 28, 2022
-
-
Craig Topper authored
At least when starting from a vmslt.vx intrinsic or ISD::SETLT. We don't handle the case where the user used vmsle.vx intrinsic with -1.
-
natashaknk authored
Added support for concat, tile, pad, argmax and table ops Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D118397
-
Arthur O'Dwyer authored
Differential Revision: https://reviews.llvm.org/D118164
-
Arthur O'Dwyer authored
We should be checking `is_assignable<It&, ...>`. `is_assignable<It, ...>` checks for an rvalue left-hand side, which is basically never assignable-to. Found while looking into https://cplusplus.github.io/LWG/issue3435 . Differential Revision: https://reviews.llvm.org/D117660
-
Arthur O'Dwyer authored
If this is a SFINAE context, then continuing to look up names (in particular, to treat a non-function as a function, and then do ADL) might too-eagerly complete a type that it's not safe to complete right now. We should just say "okay, that's a substitution failure" and not do any more work than absolutely required. Fixes #52970. Differential Revision: https://reviews.llvm.org/D117603
-
David Green authored
Since it's introduction, the qrdmlah has been represented as a qrdmulh and a sadd_sat. This doesn't produce the same result for all input values though. This patch fixes that by introducing a qrdmlah (and qrdmlsh) intrinsic specifically for the vqrdmlah and sqrdmlah instructions. The old test cases will now produce a qrdmulh and sqadd, as expected. Fixes #53120 and #50905 and #51761. Differential Revision: https://reviews.llvm.org/D117592
-
Malhar Jajoo authored
This just updates debug location of a loop in a LIT test to point to the correct source line.
-
David Green authored
-
Florian Hahn authored
isConditionImplied is able to correctly handle 0 or 1 coefficients, so let it handle those cases, rather than skipping them.
-
Damian Rouson authored
Increase the coverage of standard-conforming and non-conforming co_sum calls. Reviewed By: ktras
-
Tue Ly authored
Guard sqrt_80_bit_long_double.h header to not be included with aarch64. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D118389
-
Simon Pilgrim authored
Makes it easier for later folds and avoids unnecessary 256-bit ops (especially on AVX1-only targets where we miss a lot of integer instructions)
-
Bjorn Pettersson authored
Another step to move away from the legacy PM syntax when specifying passes in opt. Differential Revision: https://reviews.llvm.org/D118339
-
Bjorn Pettersson authored
Adding -debugify and -check-debugify in the PassRegistry will make sure the passes are listed properly by -print-pipeline-passes as well as -print-passes. It also allows removal of the custom pipeline parsing callback that has been used in the NewPMDriver. Differential Revision: https://reviews.llvm.org/D118369
-
Jay Foad authored
Rejecting AGPR DS_WRITE instructions before adding them to any mergeable list seems cleaner than adding them to the list and rejecting them later. Differential Revision: https://reviews.llvm.org/D118368
-
Jay Foad authored
Using separate lists for AGPR and non-AGPR instructions seems like a cleaner solution than putting them all in the same list and then later refusing to merge instructions of different AGPR-ness. Differential Revision: https://reviews.llvm.org/D118367
-
Jay Foad authored
Change CombineInfo::setMI to take a reference to the SILoadStoreOptimizer instance, for easy access to common fields like TII and STM. Differential Revision: https://reviews.llvm.org/D118366
-
Ellis Hoag authored
Use the `llvm-profdata show` command to verify debug info for profile correlation using the `--debug-info` option. Reviewed By: kyulee Differential Revision: https://reviews.llvm.org/D118181
-
Med Ismail Bennani authored
There seems to be an issue on x86_64 when launching a ScriptdProcess. This disables temporarely the test that causes the bot to timeout until I finish investigating the issue. Signed-off-by:Med Ismail Bennani <medismail.bennani@gmail.com>
-
Siva Chandra Reddy authored
-
Craig Topper authored
Exts is a map of keyed by std::string with a extension info as a value. Making copies of this wouldn't be cheap. We had a mix of references and copies. This makes everything consistently use a const reference to make it clear we aren't modifying it. Differential Revision: https://reviews.llvm.org/D118326
-
Florian Hahn authored
-
Siva Chandra Reddy authored
The type names in the spec are just sugar used by the header generator to generate the function prototype. Giving the VarArgType a name of "..." allows the header generator to treat and generate the "type name" for var arg parameters similar to how it does for any other type.
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/53430. Initially, I had a quick and dirty approach, but it led to a myriad of special cases handling comments (that may add unwrapped lines). So I added TT_RecordLBrace type annotations and it seems like a much nicer solution. I think that in the future it will allow us to clean up some convoluted code that detects records. Reviewed By: MyDeveloperDay, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D118337
-
Tue Ly authored
Refactor sqrt implementations: - Move architecture specific instructions from `src/math/<arch>` to `src/__support/FPUtil/<arch>` folder. - Move generic implementation of `sqrt` to `src/__support/FPUtil/generic` folder and add it as a header library. - Use `src/__support/FPUtil/sqrt.h` for architecture/generic selections. - Add unit tests for generic implementation of `sqrt`. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D118173
-
Hongtao Yu authored
Bitcode upgrade automatically takes in place when the current compiler version doesn't match the one building the input modules. The upgrade is very expansive for large applications and unnecessary when users are sure the two compilers do not have a version issue, even if their versions mismatch literally. An optional to disable the automatic bitcode upgrade will be handy in such case. Reviewed By: wenlei Differential Revision: https://reviews.llvm.org/D109869
-
Richard authored
- Mention pp-trace - CMake configuration - Overriding registerPPCallbacks - Overriding isLanguageVersionSupported - Check development tips - Guide to useful documentation - Using the Transformer library - Developing your check incrementally - Creating private matchers - Unit testing helper code - Making your check robust - Documenting your check - Describe the Inputs test folder Differential Revision: https://reviews.llvm.org/D117939
-
Matthias Springer authored
Also switch the implementation of `-arith-bufferize` to BufferizableOpInterface. Differential Revision: https://reviews.llvm.org/D118325
-
MuAlphaOmegaEpsilon authored
This commit checks if a function is marked with the naked attribute and, if it is, will silence the emission of any unused-parameter warning. Inside a naked function only the usage of basic ASM instructions is expected. In this context the parameters can actually be used by fetching them according to the underlying ABI. Since parameters might be used through ASM instructions, the linter and the compiler will have a hard time understanding if one of those is unused or not, therefore no unused-parameter warning should ever be triggered whenever a function is marked naked.
-
Mark de Wever authored
Avoid using the libc++ internal `_LIBCPP_HAS_NO_INT128` in our tests. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D117992
-
Mark de Wever authored
This should fix the regressions detected in D117992. This lands before D117992 to avoid breaking main. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D118056
-
Matt Arsenault authored
I accidentally made this work on the GlobalISel path, and there's no real reason not to handle this.
-
Matt Arsenault authored
-
- Jan 27, 2022
-
-
Sander de Smalen authored
This adds the following changes: * Fold: vselect(<all active predicate>, x, y) => x * Extend isAllActivePredicate to take vscale_range into account, e.g. isAllActivePredicate(vl16) for nxv16i1 and vscale == 1 => true. isAllActivePredicate(vl32) for nxv16i1 and vscale == 2 => true. Differential Revision: https://reviews.llvm.org/D118147
-
Louis Dionne authored
This move is going to be needed in order to reuse `posix_readdir` in another translation unit. This doesn't change any of the code except for removing an unused function parameter that otherwise triggers a warning inside our tests. Differential Revision: https://reviews.llvm.org/D118254
-
Louis Dionne authored
In `ranges::advance(iter, n, bound)`, we'd incorrectly handle the case where bound < iter and n is 0: int a[10]; int *p = a+5; int *bound = a+3; std::ranges::advance(p, 0, bound); assert(p - a == 5); // we'd return 3 before this patch This was caused by an incorrect handling of 0 inside __magnitude_geq. Differential Revision: https://reviews.llvm.org/D117240 -
Louis Dionne authored
We were missing a constraint in common_iterator's iterator_traits and we were eagerly instantiating iter_value_t even when invalid. Thanks to Casey Carter for finding this bug. Differential Revision: https://reviews.llvm.org/D117449
-
Yousuf Ali authored
The patch handles the addition of constant global variables to the table of contents. Differential Revision: https://reviews.llvm.org/D116181
-
Matt Arsenault authored
-
Jean Perier authored
When passing a character procedure as a dummy procedure, the result length must be passed along the function address. This is to cover the cases where the dummy procedure is declared with assumed length inside the scope that will call it (it will need the length to allocate the result on the caller side). To be compatible with other Fortran compiler, this length must be appended after all other argument just like character objects (fir.boxchar). A fir.boxchar cannot be used to implement this feature because it is meant to take an object address, not a function address. Instead, argument like `tuple<function type, integer type> {fir.char_proc}` will be recognized as being character dummy procedure in FIR. That way lowering does not have to do the argument split. This patch adds tools in Character.h to create this type and tuple values as well as to recognize them and extract its tuple members. It also updates the target rewrite pass to split these arguments like fir.boxchar. This part is part of fir-dev upstreaming. It was reviwed previously in: https://github.com/flang-compiler/f18-llvm-project/pull/1393 Differential Revision: https://reviews.llvm.org/D118108
-