- Jan 04, 2024
-
-
Amir Ayupov authored
Created using spr 1.3.4 [skip ci]
-
Amir Ayupov authored
Created using spr 1.3.4 [skip ci]
-
Ahmed Bougacha authored
The upstream test relies on jump-tables, which are lowered in dramatically different ways with later arm64e/ptrauth patches. Concretely, it's failing for at least two reasons: - ptrauth removes x16/x17 from tcGPR64 to prevent indirect tail-calls from using either register as the callee, conflicting with their usage as scratch for the tail-call LR auth checking sequence. In the 1/2_available_regs_left tests, this causes the MI scheduler to move the load up across some of the inlineasm register clobbers. - ptrauth adds an x16/x17-using pseudo for jump-table dispatch, which looks somewhat different from the regular jump-table dispatch codegen by itself, but also prevents compression currently. They seem like sensible changes. But they mean the tests aren't really testing what they're intented to, because there's always an implicit x16/x17 clobber when using jump-tables. This updates the test in a way that should work identically regardless of ptrauth support, with one exception, #1 above, which merely reorders the load/inlineasm w.r.t. eachother. I verified the tests still fail the live-reg assertions when applicable.
-
Andrzej Warzyński authored
A mix of "Transform dialect" and "transform dialect" is used ATM. This patch capitalizes the outstanding instances of "transform".
-
Craig Topper authored
[DAGCombiner][RISCV] Preserve disjoint flag in folding (shl (or x, c1), c2) -> (or (shl x, c2), c1 << c2) (#76860) Since we are shifting both inputs to the original Or by the same amount and inserting zeros in the LSBs, the result should still be disjoint.
-
Muhammad Omair Javaid authored
This reverts commit 9191ac0b. Breaks build on following buildbot: https://lab.llvm.org/buildbot/#/builders/177/builds/27432
-
Florian Hahn authored
Simplify the code and rename Result->NewExitingVPV as suggested by @ayalz in https://github.com/llvm/llvm-project/pull/70253.
-
David Goldblatt authored
As requested in https://github.com/llvm/llvm-project/pull/76770#pullrequestreview-1801649466 A few months of experimentation in a large codebase did not reveal any significant build speed regressions, and b07bf16a speeds up hint lookup even further. Co-authored-by:
David Goldblatt <davidgoldblatt@meta.com>
-
Krzysztof Drewniak authored
Expand the copying of attributes on GPU kernel arguments during LLVM lowering. Support copying attributes from values that are already LLVM pointers. Support copying attributes, like `noundef`, that aren't specific to (the pointer parts of) arguments.
-
Craig Topper authored
After 47a1704a we are able to reassociate a disjoint Or used as a GEP index to get the constant closer to a load to fold it. This is show by the first test. We are not able to do this if the GEP created a shift left to scale the index as the second test shows. To make this work, we need to preserve the disjoint flag when pulling the Or through the shift.
-
Craig Topper authored
Keep the haveNoCommonBitsSet check because we haven't started inferring the flag yet. I've added tests for two transforms, but these are not the only transforms that use isADDLike.
-
Krystian Stasiowski authored
[Clang][Sema] Diagnose unexpanded packs in the template argument lists of function template specializations (#76677) This diagnoses unexpanded packs in the _unqualified-id_ of a function template specialization's _declarator-id_. For example: ```cpp template<typename... Ts> struct A { template<typename U> void f(); template<> void f<Ts>(); // error: explicit specialization contains unexpanded parameter pack 'Ts' }; ``` I moved the handling of template-id's so it happens right after we determine whether we are declaring a function template/function template specialization so diagnostics are issued in lexical order. -
Alexey Bataev authored
vectorized. If the insertelement instruction is vectorized, and the extractelement instruction from such insertelement also vectorized as part of the same tree, need to extract from the corresponding for insertelement vectorized value rather than original insertelement instruction.
-
Craig Hesling authored
Fix one spelling typo and remove second newline from end of files.
-
Hassnaa Hamdi authored
Ex: `fdot v26.8H, v22.16B, v9.2B[0]` should be equivalent to `fdot v26.8h, v22.16b, v9.2b[0]`
-
Jacques Pienaar authored
Make it so that PDL in pattern rewrites can be optionally disabled. PDL is still enabled by default and not optional bazel. So this should be a NOP for most folks, while enabling other to disable. This is piped through mlir-tblgen invocation and that could be changed/avoided by splitting up the passes file instead. This only works with tests disabled. With tests enabled this still compiles but tests fail as there is no lit config to disable tests that depend on PDL rewrites yet.
-
Alex Zinenko authored
The change in c1eab576 fixed the behavior of `getDiscardableAttrDictionary` for ops that are not using properties to only return discardable attributes. AsmPrinter was relying on the wrong behavior when printing such ops in the generic form, assuming all attributes are discardable.
-
Puyan Lotfi authored
This PR adds API `makeReproducer` and cl::opt flag `--mlir-generate-reproducer=<filename>` in order to allow for mlir reproducer dumps even when the pipeline doesn't crash. This PR also decouples the code that handles generation of an MLIR reproducer from the crash recovery portion. The purpose is to allow for generating reproducers outside of the context of a compiler crash. This will be useful for frameworks and runtimes that use MLIR where it is needed to reproduce the pipeline behavior for reasons outside of diagnosing crashes. An example is for diagnosing performance issues using offline tools, where being able to dump the reproducer from a runtime compiler would be helpful.
-
Han-Chung Wang authored
-
Hugo Melder authored
This PR updates the list of architectures for which libobjc2 has fast-path objc_msgSend implementations. Related to: https://github.com/gnustep/libobjc2/pull/261
-
Arthur Eubanks authored
Revert "Reapply "RegisterCoalescer: Add implicit-def of super register when coalescing SUBREG_TO_REG"" This reverts commit 0e46b49d. Causes crashes, see repro on https://github.com/llvm/llvm-project/commit/0e46b49de43349f8cbb2a7d4c6badef6d16e31ae.
-
Arthur Eubanks authored
This reverts commit 5cfc7b33. This depends on 0e46b49d which is being reverted.
-
Yuxuan Chen authored
This PR is proposing a fix for https://github.com/llvm/llvm-project/issues/76521. Clang used to assume that during template instantiation, Lambda expressions can only have `FunctionProtoTypeLoc`s. However, this is not true for certain attributes like `__attribute__((pcs("aapcs-vfp")))`, whose interpretation happens after template instantiation. This PR changes the transformation logic for lambdas.
-
Mark de Wever authored
Revert "Reapply "[Sema] Fix crash on invalid code with parenthesized aggregate initialization" (#76272)" This reverts commit 02347fc7. These changes break the libc++ CI again. I'll look at a better solution later.
-
Wei Wang authored
Follow up #75402 to cover DPValue
-
Matheus Izvekov authored
This fixes https://github.com/llvm/llvm-project/issues/75115 In C mode with MSVC compatibility, when the `assert` macro is defined, as a workaround, `static_assert` is implicitly defined as well, if not already so, in order to work around a broken `assert.h` implementation. This workaround was implemented in https://github.com/llvm/llvm-project/commit/8da090381d567d0ec555840f6b2a651d2997e4b3 A synthesized symbol does not occur in source code, and therefore should not have valid source location, but this was not checked when inserting this into a `symbol -> include file` map. The invalid FileID value is used for empty key representation in the include file hash table, so it's not valid to insert it.
-
Alex Zinenko authored
The change in c1eab576 fixed the behavior of `getDiscardableAttrDictionary` for ops that are not using properties to only return discardable attributes. `InferTypeOpInterface` was relying on the wrong behavior when constructing an adaptor and would assume that all attributes were discardable, which is not the case.
-
Nikita Popov authored
Add the underlying object of both separate_storage arguments as affected values. This allows us to use assumptionsFor() in BasicAA, which will be more efficient if there are many assumes in the function.
-
Nikita Popov authored
The number of variables in the constraint is usually very small. Use SmallDenseMap to avoid allocations.
-
Ilya Biryukov authored
I ran into the following compiler error when trying to build with GCC 12 and `-DCMAKE_CXX_STANDARD=20`: ``` llvm-project/clang/lib/Sema/SemaChecking.cpp:16690:16: required from here /usr/include/c++/12/type_traits:971:30: error: default member initializer for '{anonymous}::SequenceChecker::Usage::UsageExpr' required before the end of its enclosing class ``` The error seems correct, GCC just instantiates the `SmallDenseMap` early and detects it. Clang does not, but that's an acceptable implementation difference as far as the standard is concerned. Move constructor outside the class to avoid this problem. -
Balaji V. Iyer authored
Added a check to see if the stride tensor is empty. If so then return false for isContiguousSlice function. Possible fix for #74463
-
- Jan 03, 2024
-
-
Oleksandr "Alex" Zinenko authored
When properties are not enabled in an operation, inherent attributes are stored in the common dictionary with discardable attributes. However, `getDiscardableAttrs` and `getDiscardableAttrDictionary` were returning the entire dictionary, making the caller mistakenly believe that all inherent attributes are discardable. Fix this by filtering out attributes whose names are registered with the operation, i.e., inherent attributes. This requires an API change so `getDiscardableAttrs` returns a filter range.
-
Mirko Brkušanin authored
-
Teresa Johnson authored
The GlobalResolutions map was found to contribute ~9% of the peak memory of a large thin link. However, we are essentially done with it when we are about to compute cross module imports, which itself adds to the peak memory due to the import and export lists (there is one use just after importing but it can easily be moved before importing). Move the last use up above importing, and free the GlobalResolutions map after that (and before importing). To help guard against future inadvertent use after it has been released, change it to a std::optional.
-
kadir çetinkaya authored
This makes PragmaIncldues copyable, and copies it from preamble when building a new AST. Fixes https://github.com/clangd/clangd/issues/1843 Fixes https://github.com/clangd/clangd/issues/1571
-
James Y Knight authored
-
Alexandros Lamprineas authored
When creating a declaration for a vector variant, in order to determine the argument types we need to consult the VFABI demangler. This will allow us to add TLI mappings with linear arguments (see #76060).
-
Stefan Gränitz authored
NFC follow-up from https://github.com/llvm/llvm-project/pull/76236
-
Florian Hahn authored
Remove left over redundant parentheses after 9b6127d7 as pointed out by @nikic.
-