[LLVM][CMake][NFC] Use generator expression to separate CXXFLAGS (#173869)
This avoids looking at the individual sources for mixed C/C++ libraries.
The previous code was written ~2014. Generator expressions were added in
CMake 3.3 (2015). We currently require CMake 3.20 and therefore can rely
on more modern features.
Apart from simplifying the code, this is preliminary work to make more
use of pre-compiled headers (#173868).
[mlir][ods] Fix ODS bug for usePropertiesForAttributes = 0 (#173006)
This fixes invalid cpp generated in the `verifyInvariantsImpl` method
for operations generated from ODS when `usePropertiesForAttributes = 0`
is set on the Dialect.
Fixes the bug introduced in
- https://github.com/llvm/llvm-project/pull/153603
Closes #171217
Reland "[mlir][tensor] Add ValueBoundsOpInterface for ExpandShapeOp and CollapseShapeOp #173356" (#173857)
The original PR #173356 was reverted (commit 5d6c40b) due to an
AddressSanitizer failure
(https://lab.llvm.org/buildbot/#/builders/52/builds/13831).
The failure was caused by incorrect use of a const reference
https://github.com/llvm/llvm-project/pull/173356#discussion_r2643027667,
which bound a reference to a temporary value returned by
`getReassociationIndices()`.
This reland drops the const reference and uses a copy instead.
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
[mlir][docs] Add more examples for the "canonical form" (#173667)
Mention that there is no formal definition of the canonical form. Also
add more examples for users to understand what kind of transformations
the community has agreed upon in the past.
---------
Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
[mlir][Transforms][NFC] `remove-dead-values`: Simplify dropped value handling (#173540)
`RDVFinalCleanupList::values` is used only for function op handling. The
functionality for dropping function arg uses can be incorporated into
Step 5 (function op handling). There is no need for a separate step.
[Clang] Remove 't' from __builtin_amdgcn_flat_atomic_fmin/fmax_f64 (#173839)
Allows for type checking depending on the built-in signature.
There is no `f32` version for both builtins
[clang-doc] Add friends to class template
This patch also allows comments to be associated with friend
declarations. Currently, it seems like the comments for friend `RecordDecl`
are taken from the actual class declaration, while a friend
function's comments are taken from the actual `friend` declaration.
[clang-doc] Add friends to class template
This patch also allows comments to be associated with friend
declarations. Currently, it seems like the comments for friend `RecordDecl`
are taken from the actual class declaration, while a friend
function's comments are taken from the actual `friend` declaration.
[clang-doc] Add class member enums to template
Some Mustache tags for member enums already existed in the class
template, but they weren't compatible with the current JSON scheme.
[clang-doc] Add concepts to namespace template
This patch serializes concepts in HTML. This patch also includes changes
to bitcode reading/writing and JSON to serialize the concept's location,
which was missing.
[RISCV] Add regalloc hints for QC_EXTU (#173953)
`ANDI` with a mask gets converted into `QC_EXTU` in certain cases. Add
regalloc hints to use the same source and destination register so that
we can generate the compressed `QC_C_EXTU` instruction.
[mlir] Avoid crash in mlir-query's MatchFinder class (#145049)
It was failing for cases where the location was not a FileLineColLoc and fileLoc a nullptr.
If the following query is run:
`match getUsersByPredicate(hasOpName("memref.alloc"),
hasOpName("memref.dealloc"), true)`
on the IR illustrated below, it caused the program to crash.
``` mlir
func.func @slicing_linalg_op(%arg0 : index, %arg1 : index, %arg2 : index) {
%a = memref.alloc(%arg0, %arg2) : memref<?x?xf32>
%b = memref.alloc(%arg2, %arg1) : memref<?x?xf32>
%c = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
%d = memref.alloc(%arg0, %arg1) : memref<?x?xf32>
linalg.matmul ins(%a, %b : memref<?x?xf32>, memref<?x?xf32>)
outs(%c : memref<?x?xf32>)
[9 lines not shown]