- Dec 07, 2023
-
-
Jacob Yu authored
Following discussions from this RFC: https://discourse.llvm.org/t/rfc-integer-overflow-semantics Adding the overflow semantics into the muli, subi and addi arith operations.
-
Craig Topper authored
We prefer to pass SmallVectorImpl reference so that no specific inline size is required.
-
Tobias Burnus authored
Issue #72639 The commit at 020cdaff broke build of asan on macOS with GCC. GCC does not support the Apple blocks extension (yet). Uses of blocks in other parts of the sanitisers are protected by MISSING_BLOCKS_SUPPORT. But the type definition is not. _This applies FX's patch from the issue._ Co-authored-by:
FX Coudert <fxcoudert@gmail.com>
-
Shengchen Kan authored
-
Maksim Panchenko authored
When lpStartEncoding is different from DW_EH_PE_omit, lpStart can be set to zero which is a valid base address for landing pads. Such base value is useful when landing pads are placed in different sections. Fixes #72582.
-
Chen Zheng authored
12 bit is not enough for PPC's target specific flags. If 8 bit for the bitmask flags, 4 bit for the direct mask, PPC can total have 16 direct mask and 8 bitmask. Not enough for PPC, see this issue in https://github.com/llvm/llvm-project/pull/66316 Redesign how PPC target set the target specific flags. With this patch, all ppc target flags are direct flags. No bitmask flag in PPC anymore. This patch aligns with some targets like X86 which also has many target specific flags. The patch also fixes a bug related to flag `MO_TLSGDM_FLAG` and `MO_LO`. They are the same value and the test case changes in this PR shows the bug.
-
Esme authored
This PR adds the support for parsing auxiliary symbols of XCOFF object file for obj2yaml.
-
Matthias Springer authored
Rewrite patterns must return `success` if the IR was modified. This commit fixes sparse tensor tests such as `SparseTensor/sparse_fusion.mlir`, `SparseTensor/CPU/sparse_reduce_custom.mlir`, `SparseTensor/CPU/sparse_semiring_select.mlir` when running with `MLIR_ENABLE_EXPENSIVE_PATTERN_API_CHECKS`.
-
XinWang10 authored
R16-R31 was added into GPRs in https://github.com/llvm/llvm-project/pull/70958, This patch supports the encoding/decoding for promoted INVPCID instruction in EVEX space. RFC: https://discourse.llvm.org/t/rfc-design-for-apx-feature-egpr-and-ndd-support/73031/4
-
Jianjian GUAN authored
-
Matthias Springer authored
The op used to support only float element types. This was inconsistent with `ConstantOp::isBuildableWith`, which allows integer element types. The complex type allows any float/integer element type. Note: The other complex dialect ops do not support non-float element types yet. The main purpose of this change to fix `Tensor/canonicalize.mlir`, which is currently failing when verifying the IR after each pattern application (#74270). ``` within split at mlir/test/Dialect/Tensor/canonicalize.mlir:231 offset :8:15: error: 'complex.constant' op result #0 must be complex type with floating-point elements, but got 'complex<i32>' %complex1 = tensor.extract %c1[] : tensor<complex<i32>> ^ within split at mlir/test/Dialect/Tensor/canonicalize.mlir:231 offset :8:15: note: see current operation: %0 = "complex.constant"() <{value = [1 : i32, 2 : i32]}> : () -> complex<i32> "func.func"() <{function_type = () ->... -
Owen Pan authored
-
Matthias Springer authored
-
antangelo authored
[clang] Exclude non-template classes when checking if constraint refers to containing template arguments (#74265) When checking if the constraint uses any enclosing template parameters for [temp.friend]p9, if a containing record is used as argument, we assume that the constraint depends on enclosing template parameters without checking if the record is templated. The reproducer from the bug is included as a test case. Fixes #71595
-
Craig Topper authored
This instruction produces a 32-bit sign extended value if the SEW is less than or equal to 32.
-
dong jianqiang authored
Adds a warning, issued by the clang semantic analysis. The patch warns on switch which don't have the default branch. This is a counterpart of gcc's Wswitch-default.
-
Owen Pan authored
Fixed #41854.
-
Johannes Doerfert authored
Reverts llvm/llvm-project#74360 As I wrote in the analysis of #74360: Since https://github.com/llvm/llvm-project/commit/bc4e0c048aa3cd940b0cea787014c7e8680e5040 we will not add PluginAdaptors into the container of all plugin adaptors before the plugin is not ready. The error is thereby gone. When and old HSA loads other libraries they can call register_image but that will simply not register the image with the plugin we are currently initializing. That seems like reasonable behavior, thought it is good to keep in mind if we ever want a kernel library (@jhuber6 @mjklemm). We can still have a standalone kernel library though or load it late after all plugins are setup (which seems reasonable). I did not expect one our tests actually doing exactly what this will not allow anymore, at least when you use rocm <5.5.0. Need to figure out if we want this behavior (for rocm <5.5.0).
-
Peiming Liu authored
-
Matthias Springer authored
The `ForallRewriter` pattern used to generate invalid IR: ``` mlir/test/Dialect/SparseTensor/GPU/gpu_combi.mlir:0:0: error: 'scf.for' op expects region #0 to have 0 or 1 blocks mlir/test/Dialect/SparseTensor/GPU/gpu_combi.mlir:0:0: note: see current operation: "scf.for"(%8, %2, %9) ({ ^bb0(%arg5: index): // ... "scf.yield"() : () -> () ^bb1(%10: index): // no predecessors "scf.yield"() : () -> () }) : (index, index, index) -> () ``` This commit fixes tests such as `mlir/test/Dialect/SparseTensor/GPU/gpu_combi.mlir` when verifying the IR after each pattern application (#74270). -
Matthias Springer authored
`createQuickSort` used to generate invalid IR: ``` "func.func"() <{function_type = (index, index, memref<?xindex>, memref<?xf32>, memref<?xi32>) -> (), sym_name = "_sparse_qsort_0_1_index_coo_1_f32_i32", sym_visibility = "private"}> ({ ^bb0(%arg0: index, %arg1: index, %arg2: memref<?xindex>, %arg3: memref<?xf32>, %arg4: memref<?xi32>): %0:2 = "scf.while"(%arg0, %arg1) ({ ^bb0(%arg5: index, %arg6: index): // ... "scf.condition"(%3, %arg5, %arg6) : (i1, index, index) -> () }, { ^bb0(%arg5: index, %arg6: index): // ... %7:2 = "scf.if"(%6) ({ %8 = "arith.cmpi"(%2, %3) <{predicate = 7 : i64}> : (index, index) -> i1 // ... "scf.yield"(%9#0, %9#1) : (index, index) -> () %10 = "arith.constant"() <{value = 0 : index}> : () -> index }, { "scf.yield"(%arg5, %arg5) : (index, index) -> () }) : (i1) -> (index, index) "scf.yield"(%7#0, %7#1) : (index, index) -> () }) : (index, index) -> (index, index) "func.return"() : () -> () }) : () -> () within split at mlir/test/Dialect/SparseTensor/buffer_rewriting.mlir:76 offset :11:1: error: 'scf.yield' op must be the last operation in the parent block ``` This commit fixes tests such as `mlir/test/Dialect/SparseTensor/buffer_rewriting.mlir` when verifying the IR after each pattern application (#74270). -
Yaxun (Sam) Liu authored
The test fails intermittently due to non-unique file name %T. Use %t based file names instead. Fixes: https://github.com/llvm/llvm-project/issues/74472
-
Matthias Springer authored
Op verifiers should verify only local properties of an op. The dynamic sizes of a `tensor.generate` op should not be verified. Dynamic sizes that have a negative constant value should not prevent the `tensor.generate` op from verifying. Also share some code between the `tensor.empty` and `tensor.generate` "dynamic dim -> static dim" canonicalization patterns. Remove the `invalid-canonicalize.mlir` file and move the test case to `canonicalize.mlir`. Canonicalization no longer produces IR that does not verify (and leaves the op as is).
-
Lang Hames authored
Pointer jump stubs content was incorrectly using 1-byte alignment. This bug flew under the radar because the ordinary instruction streams (and aligned section starts) usually left the block 4-byte aligned anyway. The bug was observed when an out-of-tree pass introduced new content with arbitrary sizes into the text section. No testcase yet: We don't have a good way to replicate the perturbation that was caused by the out-of-tree pass.
-
Justin Bogner authored
RWBuffer doesn't have a default type in dxc's implementation, so it shouldn't have one in clang either. Reviewers: llvm-beanz, python3kgae Reviewed By: python3kgae, llvm-beanz Pull Request: https://github.com/llvm/llvm-project/pull/71265
-
Matthias Springer authored
The partial bufferization framework has been replaced with One-Shot Bufferize. SCF-specific canonicalization patterns for `to_memref`/`to_tensor` are no longer needed.
-
Fangrui Song authored
-
Justin Bogner authored
If a template is defined via an external AST source, it won't have a location. When we emit warnings about misusing such templates we shouldn't emit a "template is declared here" warning with no location, as that's just confusing. Reviewers: llvm-beanz, erichkeane, AaronBallman Reviewed By: erichkeane, AaronBallman Pull Request: https://github.com/llvm/llvm-project/pull/71264
-
Johannes Doerfert authored
-
Finn Plummer authored
Add missing constant propogation folder for LeftShiftLogical, RightShift[Logical|Arithmetic]. Implement additional folding when Shift value is 0. This helps for readability of lowered code into SPIR-V. Part of work for #70704
-
Johannes Doerfert authored
Before we expected all symbols in the device image to be backed up with data that we could read. However, uninitialized values are not. We now check for this case and avoid reading random memory. This also replaces the correct readGlobalFromImage call with a isSymbolInImage check after https://github.com/llvm/llvm-project/pull/74550 picked the wrong one. Fixes: https://github.com/llvm/llvm-project/issues/74582
-
Valentin Clement (バレンタイン クレメン) authored
`*` is not friendly to the MLIR attribute parser and will fail to be parsed. Switch the `*` enum representation to `star`.
-
Johannes Doerfert authored
We probably should use a temporary name, but having stable names helps debugging.
-
Johannes Doerfert authored
Remove `DelayedBinDesc` as it is not necessary since https://github.com/llvm/llvm-project/commit/bc4e0c048aa3cd940b0cea787014c7e8680e5040. See https://github.com/llvm/llvm-project/pull/74360#issuecomment-1843603736 for details.
-
Felipe de Azevedo Piovezan authored
These tests started passing after this PR landed: https://github.com/llvm/llvm-project/pull/74580
-
Christopher Di Bella authored
The reorganisation assists with identifying information that's relevant to the reader by using sections, note/warning blocks, and highlighted lists. Some rewording was necessary to fit the new structure and some to improve flow. Changes to the intention of the documentation have not been made. --------- Co-authored-by:Will Hawkins <whh8b@obs.cr>
-
Philip Reames authored
getOptionVisibilityMask already returns options::FlangOption in FlangMode, so this assignment is entirely pointless.
-
Craig Topper authored
Original message: We still have to keep the noCommonBitsSet call to handle multiple reassociations in one pass. We'll lose the flag on the first reassociation.
-
Johannes Doerfert authored
By default we now only look for the plugins we build, but the user can overwrite that with `LIBOMPTARGET_PLUGINS_TO_LOAD="cuda,amdgpu,x86_64"`