- Dec 02, 2023
-
-
Johannes Doerfert authored
This basically moves code around again, but this time to provide cleaner interfaces and remove duplication. PluginAdaptorManagerTy is almost all gone after this.
-
chrulski-intel authored
Update the string reported to include the pass name of last pass when running verifier after each pass.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Joseph Huber authored
Summary: This may be problematic to pin a stack pointer. Allocate it via the OS allocator instead as the documentation suggests. For some reason, if you attempt to free this pointer after the memory region has been unlocked, it will return an invalid pointer.
-
Caslyn Tonelli authored
Following from https://github.com/llvm/llvm-project/pull/73372: Fuchsia targets currently don't support `float128`. Add detection for `LIBC_TARGET_OS_IS_FUCHSIA`, and exclude this OS from setting `LIBC_COMPILER_HAS_FLOAT128_EXTENSION`.
-
Craig Topper authored
I used an IR test because it was easier than constructing different MIR test for each type of addressing.
-
Amir Ayupov authored
-
Amir Ayupov authored
Heatmap mode has been moved to a separate tool. Drop the support in llvm-bolt-wrapper.
-
Andrzej Warzyński authored
At the moment the logic to tile and vectorize `linalg.matmul` is duplicated in multiple test files: * matmul.mlir * matmul_mixed_ty.mlir Instead, this patch uses `transform.foreach` to apply the same sequence to multiple functions within the same test file (e.g. `matmul_f32` and `matmul_mixed_ty` as defined in the original files). This allows us to merge relevant test files.
-
Radu Salavat authored
-
Mircea Trofin authored
Opcode value change.
-
Shraiysh authored
This patch addresses the concern about multiple devices and also adds more tests for `map(to:)`, `map(from:)` and named common blocks.
-
Youngsuk Kim authored
Users should migrate to IRBuilderBase::getPtrTy.
-
cor3ntin authored
https://wiki.edg.com/pub/Wg21kona2023/StrawPolls/p2308r1.html This implements P2308R1 as a DR and resolves CWG2459, CWG2450 and CWG2049. Fixes #73666 Fixes #58434 Fixes #41227 Fixes #49978 Fixes #36296
-
Jon Chesterfield authored
The plugin checks the values of HSA_AMD_INTERFACE_VERSION_* so we now set them to something safe in the header.
-
Dmitri Gribenko authored
Revert "Reland [X86] With large code model, put functions into .ltext with large section flag (#73037)" This reverts commit 4bf8a688. This commit seems to be breaking the semantics of the ObjectFile::isSectionText method, which breaks numba/llvmlite bindings.
-
Ramkumar Ramachandra authored
Follow up on 9468de48 (TargetInstrInfo: make getOperandLatency return optional (NFC)) to squelch a signedness warning on MSVC, reported by Simon Pilgrim.
-
- Dec 01, 2023
-
-
Daniel Grumberg authored
[clang][ExtractAPI] Ensure LocationFileChecker doesn't try to traverse VFS when determining file path (#74071) As part of https://reviews.llvm.org/D154130 the logic of LocationFileChecker changed slightly to try and get the absolute external file path instead of the name as requested when the file was openened which would be before VFS mappings in our usage. Ensure that we only check against the name as requested instead of trying to generate the external canonical file path. rdar://115195433
-
Jon Roelofs authored
When we lower calls, the sequence of argument copy-to-reg nodes are glued to the smstart. In the InstrEmitter, these glued copies are turned into implicit defs, since the actual call instruction uses those physregs, resulting in the register allocator adding unnecessary copies of regs that are preserved anyway.
-
Spenser Bauman authored
The lowering of tosa.conv2d produces an illegal tensor.empty operation where the number of inputs do not match the number of dynamic dimensions in the output type. The fix is to base the generation of tensor.dim operations off the result type of the conv2d operation, rather than the input type. The problem and fix are very similar to this fix https://github.com/llvm/llvm-project/pull/72724 but for convolution.
-
Spenser Bauman authored
The current lowering of tosa.fully_connected produces a linalg.matmul followed by a linalg.generic to add the bias. The IR looks like the following: %init = tensor.empty() %zero = linalg.fill ins(0 : f32) outs(%init) %prod = linalg.matmul ins(%A, %B) outs(%zero) // Add the bias %initB = tensor.empty() %result = linalg.generic ins(%prod, %bias) outs(%initB) { // add bias and product } This has two down sides: 1. The tensor.empty operations typically result in additional allocations after bufferization 2. There is a redundant traversal of the data to add the bias to the matrix product. This extra work can be avoided by leveraging the out-param of linalg.matmul. The new IR sequence is: %init = tensor.empty() %broadcast = linalg.broadcast ins(%bias) outs(%init) %prod = linalg.matmul ins(%A, %B) outs(%broadcast) In my experiments, this eliminates one loop and one allocation (post bufferization) from the generated code. -
Nikita Popov authored
My initial patch contained a typo, resulting in the wrong value being checked for non-negativeness. ----- If the lshr operand is non-negative, we can treat it the same way as an ashr. Ideally we would represent this as "lshr nneg", but for now just perform the necessary ValueTracking query. Proof: https://alive2.llvm.org/ce/z/Ahg4ri
-
Nikita Popov authored
-
Spenser Bauman authored
TOSA operators consumed by non-TOSA ops generally do not have their types inferred, as that would alter the types expected by their consumers. This prevents type refinement on many TOSA operators when the IR contains a mix of dialects. This change modifies tosa-infer-shapes to update the types of all TOSA operators during inference. When a consumer of that TOSA op is not safe to update, a tensor.cast is inserted back to the original type. This behavior is similar to how TOSA ops consumed by func.return are handled. This allows for more type refinement of TOSA ops, and the additional tensor.cast operators may be removed by later canonicalizations.
-
Nikita Popov authored
This reverts commit b92693ac. I've made a silly typo in the condition. Will reapply the corrected version.
-
Quinn Dawkins authored
This does the same as #72142 for vector.transfer_write. Previously the pattern would silently drop the mask.
-
Nikita Popov authored
If the lshr operand is non-negative, we can treat it the same way as an ashr. Ideally we would represent this as "lshr nneg", but for now just perform the necessary ValueTracking query. Proof: https://alive2.llvm.org/ce/z/Ahg4ri
-
Nikita Popov authored
-
Adam Paszke authored
…ation The previous code was technically incorrect in that the type indicated that the memref only has 1 dimension, while the code below was happily dereferencing the size array out of bounds. Now, if the compiler doesn't get too smart about optimizations, this code *might even work*. But, if the compiler realizes that the array has 1 element it might starrt doing silly things. This generates a specialization per each supported rank, making sure we don't do any UB.
-
Nikita Popov authored
In order to use SQ inside of these. There doesn't seem to be any strong need for these to be static.
-
Matthew Devereau authored
See https://github.com/ARM-software/acle/pull/217 Patch by: Kerry McLaughlin kerry.mclaughlin@arm.com
-
Benjamin Maxwell authored
This folds transpose(shape_cast) into a new shape_cast, when the transpose just permutes a unit dim from the result of the shape_cast. Example: ``` %0 = vector.shape_cast %vec : vector<[4]xf32> to vector<[4]x1xf32> %1 = vector.transpose %0, [1, 0] : vector<[4]x1xf32> to vector<1x[4]xf32> ``` Folds to: ``` %0 = vector.shape_cast %vec : vector<[4]xf32> to vector<1x[4]xf32> ``` This is an (alternate) fix for lowering matmuls to ArmSME.
-
Louis Dionne authored
This reverts commit 61aef978, which broke the CI on GCC.
-
Vlad Serebrennikov authored
This patch continues the work started with ea5b1ef0. See that commit and its corresponding PR for details.
-
Eleanor Bonnici authored
Follow-up on https://github.com/llvm/llvm-project/pull/72873/ When ADR/LDR instructions reference a label in a different section, the offset is not known until link time, however, the assembler assumes it can resolve them in some cases. The previous patch addressed the issue for most LDR instructions, focusing on little-endian targets. This patch addresses the remaining work for ADRs and big-endian targets.
-
Nikita Popov authored
Extract a function and call it with both operand orders, so that we don't have to explicitly commute every single pattern.
-
Guillaume Chatelet authored
-
Guillaume Chatelet authored
To make it consistent with https://github.com/llvm/llvm-project/pull/73948 and https://github.com/llvm/llvm-project/pull/73950
-
Guillaume Chatelet authored
-