- Nov 11, 2021
-
-
Mehdi Amini authored
This decouples the printing/parsing from the "context" in which the parsing occurs. This will allow to invoke these methods directly using an OpAsmParser/OpAsmPrinter. Differential Revision: https://reviews.llvm.org/D113637
-
Bin Cheng authored
The function BranchProbabilityInfo::SccInfo::getSccExitBlocks is supposed to collect all exit blocks for SCC rather than all exiting blocks. This patch fixes the typo. Reviewed By: ebrevnov Differential Revision: https://reviews.llvm.org/D113344
-
Craig Topper authored
At least I think that's what the 32 here is. Use RegisterBitWidth instead. While there replace zext with zextOrSelf to simplify the code. Reviewed By: samparker, dmgreen Differential Revision: https://reviews.llvm.org/D113495
-
Matthias Springer authored
This is in preparation of decoupling Comprehensive Bufferize from the various dialects. Differential Revision: https://reviews.llvm.org/D113387
-
Qiu Chaofan authored
9e9b0f46 introduced support for asm-full-reg-names on AIX. Now we can merge the test check prefix.
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp:301:20: error: unused function 'printValueInfo' [-Werror,-Wunused-function]
-
River Riddle authored
-
Matthias Springer authored
Move helper functions for traversing reverse use-def chains. These are useful for implementing custom optimizations (e.g., custom InitTensorOp eliminations). Also move over the AllocationCallbacks struct. This is in preparation for decoupling ComprehensiveBufferize from various dialects. Differential Revision: https://reviews.llvm.org/D113386
-
Vitaly Buka authored
-
Kazu Hirata authored
-
Huihui Zhang authored
Add baseline test to check for folding select into binop operand enabled through D113442.
-
River Riddle authored
mapped_iterator is a useful abstraction for applying a map function over an existing iterator, but our current usage ends up allocating storage/making indirect calls even with the map function is a known function, which is horribly inefficient. This commit refactors the usage of mapped_iterator to avoid this, and allows for directly referencing the map function when dereferencing. Fixes PR52319 Differential Revision: https://reviews.llvm.org/D113511
-
Emily Shi authored
Currently, SANITIZER_COMMON_SUPPORTED_OS is being used to enable many libraries. Unfortunately this makes it impossible to selectively disable a library based on the OS. This patch removes this limitation by adding a separate list of supported OSs for the lsan, ubsan, ubsan_minimal, and stats libraries. Reviewed By: delcypher Differential Revision: https://reviews.llvm.org/D113444
-
Matthias Springer authored
This is a generalization of "do not copy buffers for a LinalgOp output if the output is not used". Differential Revision: https://reviews.llvm.org/D113385
-
Matthias Springer authored
This is a generalization of "do not copy the result of an InitTensorOp". This commit is in preparation of decoupling `getResultBuffer` from the Linalg dialect. Differential Revision: https://reviews.llvm.org/D113381
-
Jacques Pienaar authored
-
Vitaly Buka authored
-
kpyzhov authored
Differential Revision: https://reviews.llvm.org/D113203
-
River Riddle authored
* Sprinkle `inline` on a few small and hot hashing/uniquing methods * Use the faster DenseMapInfo hash functions instead of llvm::hash_value. This provides a speed up of a few percent in workloads with lots of attributes.
-
River Riddle authored
Identifier and StringAttr essentially serve the same purpose, i.e. to hold a string value. Keeping these seemingly identical pieces of functionality separate has caused problems in certain situations: * Identifier has nice accessors that StringAttr doesn't * Identifier can't be used as an Attribute, meaning strings are often duplicated between Identifier/StringAttr (e.g. in PDL) The only thing that Identifier has that StringAttr doesn't is support for caching a dialect that is referenced by the string (e.g. dialect.foo). This functionality is added to StringAttr, as this is useful for StringAttr in generally the same ways it was useful for Identifier. Differential Revision: https://reviews.llvm.org/D113536
-
Matthias Springer authored
This make `getResultBuffer` in ComprehensiveBufferize independent of the SCF, Affine and Linalg dialects. This commit is in preparating of decoupling op interface implementations from ComprehensiveBufferize. Differential Revision: https://reviews.llvm.org/D113380
-
Jake Egan authored
Soft floats are not currently supported on AIX, so mark this test as XFAIL on AIX for now. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D113407
-
lipracer authored
The specific description is [[ https://llvm.discourse.group/t/adding-unsigned-integer-ceil-and-floor-in-std-dialect/4541 | Adding unsigned integer ceil in Std Dialect ]] . When we lower ceilDivOp this will generate below code, sometimes we know m and n are unsigned intergal.Here are some redundant judgments about positive and negative. So we need to add some unsigned operations to simplify the instructions. ``` ceilDiv(n, m) x = (m > 0) ? -1 : 1 return (n*m>0) ? ((n+x) / m) + 1 : - (-n / m) ``` unsigned operations: ``` ceilDivU(n, m) return n ==0 ? 0 : ((n - 1) / m) + 1 ``` Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D113363
-
Jake Egan authored
The default wchar type on 64-bit AIX is `unsigned int`, so this patch sets `WCHAR_T_TYPE` to `unsigned int` rather than `int`. This patch follows similar reasoning to D110428 except for 64-bit. Reviewed By: daltenty Differential Revision: https://reviews.llvm.org/D113428
-
Matthias Springer authored
BufferizationAliasInfo is used in BufferizationOpInterface::bufferize implementations, so it should be part of the same build target as BufferizableOpInterface. This commit is in preparation of decoupling the ComprehensiveBufferize from the various dialects. Differential Revision: https://reviews.llvm.org/D113378
-
Matthias Springer authored
* Store inplace bufferization decisions in `inplaceBufferized`. * Remove `InPlaceSpec`. Use a bool instead. * Use `BufferizableOpInterface::bufferizesToWritableMemory` and `bufferizesToWritableMemory` instead of `getInPlace(BlockArgument)`. The analysis does not care about inplacability of block arguments. It only cares whether the buffer can be written to or not. * The `kInPlaceResultsAttrName` op attribute is for testing purposes only. This commit further decouples BufferizationAliasInfo from other dialects such as SCF. Differential Revision: https://reviews.llvm.org/D113375
-
Craig Topper authored
Add riscv64 coverage for f32 and f64 frem. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D113531
-
Matthias Springer authored
After replacing then init_tensor with a new value, the new value must be inserted into the corresponding union/equivalence sets. Differential Revision: https://reviews.llvm.org/D113374
-
Stanislav Mekhanoshin authored
Even if wave offset is not present we still need to do the rest of the initialization. The mov into s32 was missing in the kernels. Fixes: SWDEV-310935 Differential Revision: https://reviews.llvm.org/D113628
-
Jacques Pienaar authored
-
Stanislav Mekhanoshin authored
Tests for: ``` (a | ~(b & c)) & ~(a & (b ^ c)) --> ~(a | b) | (a ^ b ^ c) (~(a & b) | c) & ~(a & (b & c)) -> ~(a & b) (~(a & b) | c) & ~(b & (a & c)) -> ~(a & b) (~a | b | c) & ~(a & b & c) -> ~a | (b ^ c) (~a | b | c) & ~(a & b) -> (c & ~b) | ~a ```
-
Matthias Springer authored
Also enclose all bufferization code in a new namespace: `comprehensive_bufferize` Differential Revision: https://reviews.llvm.org/D113373
-
Matt Arsenault authored
We were previously setting an ignored bit in the kernel headers. The current behavior is to add the large amount on top of the statically known size of a single stack frame. I'm not sure if we should just use the large size as the entire reported size instead.
-
Vitaly Buka authored
It was added for RTEMS which was removed at D104279.
-
Jez Ng authored
Previously, our unwind info finalization logic assumed that the LSDA section referenced by `__compact_unwind` was already finalized before `__TEXT,__unwind_info` itself. However, that assumption could be broken by the use of `-rename_section` -- it could be (and is) used to move `__gcc_except_tab` it into a different segment later in the file. (__TEXT is always the first non-zerofill segment, so any rename basically guarantees that the section will be ordered after `__unwind_info`.) To handle this case, we compare LSDA relocations instead of their final values in `UnwindInfoSection::finalize()`, and we actually relocate those LSDAs in `UnwindInfoSection::writeTo()`. In order to do this, we need an easy way to track which Symbol a given CUE corresponds to. My solution was to change our `cuPtrVector` into a vector of indices, with each index used for both the symbols vector (`symbolsVec`) as well as the CUE vector (`cuVector`). This change seems perf neutral. Numbers for linking chromium_framework on my 16 core Mac Pro: base diff difference (95% CI) sys_time 1.248 ± 0.025 1.245 ± 0.026 [ -1.3% .. +0.8%] user_time 3.588 ± 0.045 3.587 ± 0.037 [ -0.6% .. +0.5%] wall_time 4.605 ± 0.069 4.595 ± 0.069 [ -1.0% .. +0.5%] samples 42 26 Reviewed By: #lld-macho, oontvoo Differential Revision: https://reviews.llvm.org/D113582
-
Jacques Pienaar authored
Avoids multiple cast & getElementType calls. Just a local change for ShapedType containers but reduces one model case from 24.7 to 24.04s. Resultant code generated change: https://gist.github.com/jpienaar/7ffd2e9b0737134ba2ea2729b91c9572 Differential Revision: https://reviews.llvm.org/D113621
-
Craig Topper authored
This test add check lines using a prefixes that weren't passed to FileCheck. This may have occurred when the B extension files were split up.
-
Jacques Pienaar authored
Simply emit traits, interfaces & effects (with some minimal formatting) to the generated docs to make this information easier to find in the docs. Differential Revision: https://reviews.llvm.org/D113539
-
Vitaly Buka authored
-
Kazu Hirata authored
This patch fixes: mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp:2240:13: error: unused function 'checkAliasInfoConsistency' [-Werror,-Wunused-function]
-