- Feb 22, 2023
-
-
Matthias Springer authored
This callback is triggered by `finalizeRootUpdate`. This allows listeners to listen for in-place op modifications without creating a new RewriterBase subclass. Differential Revision: https://reviews.llvm.org/D143380
-
Matthias Springer authored
These functions will be used in a subsequent change. Also some minor refactoring. Differential Revision: https://reviews.llvm.org/D143909
-
Matthias Springer authored
Allow an optional `RewriterBase::Listener` to be attached to greedy pattern rewrites, so that clients can listen for IR modifications. Differential Revision: https://reviews.llvm.org/D143340
-
Michael Platings authored
The functionality in MultilibSet for creating it is tied to its current implementation. Putting that code in a separate class is an enabler for changing the MultilibSet implementation. Differential Revision: https://reviews.llvm.org/D142893
-
Michael Platings authored
Specifying --sysroot prevents libclang_rt from being located in standard library directories. Differential Revision: https://reviews.llvm.org/D144542
-
Ricardo Jesus authored
This partially reverts a regression introduced in 8f25e382 for AArch64 targets. In particular, we restore the logic of `(abs (sub nsw x, y)) -> abds(x, y)` for all targets except X86, which keeps the logic introduced in 8f25e382. See also https://reviews.llvm.org/D142288. Differential Revision: https://reviews.llvm.org/D144379
-
Haojian Wu authored
Fixes https://github.com/llvm/llvm-project/issues/60722. Differential Revision: https://reviews.llvm.org/D144054
-
Michael Liao authored
- That saves the overhead of operand type querying.
-
Liming Liu authored
This patch includes the commit 01adf96e and a fix of unhandled declaration references. When looking up base classes, Clang first checks whether a base class is a template and takes the specialized template based on it. However, the base class might be instantiated, and the above behavior can lose information. This patch fixes the problem by first checking whether a base class is a record declaration, so the instantiated one will be taken. Differential Revision: https://reviews.llvm.org/D143840
-
Nikita Popov authored
Use hasAttrSomewhere() and directly return Argument from the helper.
-
Matthias Springer authored
``` OpBuilder OpBuilder::Listener ^ ^ | | RewriterBase RewriterBase::Listener ``` * Clients can listen to IR modifications with `RewriterBase::Listener`. * `RewriterBase` no longer inherits from `OpBuilder::Listener`. * Only a single listener can be registered at the moment (same as `OpBuilder`). RFC: https://discourse.llvm.org/t/rfc-listeners-for-rewriterbase/68198 Differential Revision: https://reviews.llvm.org/D143339 -
Jean Perier authored
This runtime API can be used to lower any flavor of array constructors, but is mainly intended to be used with: - array constructors for which the extent or length parameters cannot be computed without lowering some ac-value or ac-implied-do-control that cannot be pre-evaluated. - array constructors of a derived type with allocatable component where copy is not trivial or PDTS. Example of use cases: - `[((i+j,i=1, ifoo()), j=1,n)]` where ifoo() is not pure. - `[return_allocatable_array(), return_allocatable_array()]` Differential Revision: https://reviews.llvm.org/D144411
-
Shengchen Kan authored
-
Nikita Popov authored
This reverts commit 2e416cdd. Breaks the GCC build: In file included from /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/FloatingPointMode.h:18, from /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/APFloat.h:20, from /home/npopov/repos/llvm-project/llvm/lib/Support/APFloat.cpp:14: /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h:66:22: error: extra qualification not allowed [-fpermissive] 66 | template <> struct llvm::is_bitmask_enum<Enum> : std::true_type {}; \ | ^~~~ /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/FloatingPointMode.h:223:1: note: in expansion of macro ‘LLVM_DECLARE_ENUM_AS_BITMASK’ 223 | LLVM_DECLARE_ENUM_AS_BITMASK(FPClassTest, /* LargestValue */ fcPosInf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/BitmaskEnum.h:67:22: error: extra qualification not allowed [-fpermissive] 67 | template <> struct llvm::largest_bitmask_enum_bit<Enum> { \ | ^~~~ /home/npopov/repos/llvm-project/llvm/include/llvm/ADT/FloatingPointMode.h:223:1: note: in expansion of macro ‘LLVM_DECLARE_ENUM_AS_BITMASK’ 223 | LLVM_DECLARE_ENUM_AS_BITMASK(FPClassTest, /* LargestValue */ fcPosInf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ [43/4396] Building CXX object lib/Supp...iles/LLVMSupport.dir/CommandLine.cpp.o
-
Michael Platings authored
If clang is part of a toolchain that can locate clang_rt libraries outside its resource directory and these are built with LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON then the tests would fail because the library names don't have the arch suffix. This change makes the arch suffix optional. Differential Revision: https://reviews.llvm.org/D143666
-
Serge Pavlov authored
With this change bitwise operations are allowed for FPClassTest enumeration, it must simplify using this type. Also some functions changed to get argument of type FPClassTest instead of unsigned. Differential Revision: https://reviews.llvm.org/D144241
-
Diego Caballero authored
This patch adds support for masked vector.contract ops that needs to be decomposed using the ContractionOpLowering pattern. It just slices the mask according to the rest of the lowering. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D144427
-
Diego Caballero authored
This patch adds support for folding trivial masked reductions and multi-reductions (e.g., multi-reductions with only parallel dims, reductions of a single element, etc.). To support those foldings in a composable way we also add support for folding different flavors of empty vector.mask opertions. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D144414
-
Quinn Dawkins authored
The pack/unpack propagation patterns currently assume all map results for non-scalar arguments are AffineDimExprs, leading to crashes when the input operand being packed has constant expressions. Differential Revision: https://reviews.llvm.org/D144443
-
Kai Sasaki authored
Foo analysis for testing the data flow analysis does not support the region without any block. Although that analysis is assumed to be used for testing purpose, it is generally better to be explicit about the scope the framework supports. The original issue was reported here. https://github.com/llvm/llvm-project/issues/60580 Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D144359
-
Shengchen Kan authored
Neither the switch in A nor the switch in B is fully covered, so we don't need write an impossible format there.
-
Petr Hosek authored
These have the same purposes but two different implementations. llvm_check_compiler_linker_flag uses CMAKE_REQUIRED_FLAGS which affects flags used both for compilation and linking which is problematic because some flags may be link-only and trigger unused argument warning when set during compilation. llvm_check_linker_flag does not have this issue so we chose it as the prevailaing implementation. Differential Revision: https://reviews.llvm.org/D143052
-
Lang Hames authored
Forwards to ExecutorProcessControl::getTargetTriple, and saves clients the trouble of spelling 'getExecutorProcessControl()' everywhere.
-
Slava Zakharin authored
We used to specify benefit=0 for MathToLibm patterns so that MathToLLVM patterns are more preferable. D144450 removed the benefit parameter, so we have to run MathToLLVM separately now. This resolves Intrinsics/math-codegen failure caused by D144450. Differential Revision: https://reviews.llvm.org/D144523
-
Vitaly Buka authored
Otherwise NFC.
-
Lang Hames authored
The '__' prefix should only be used for the parts of the ORC runtime that implement compiler / loader runtime details (e.g. ORC-RT's __tlv_get_addr implementations). This patch only fixes the public API. Future changes will fix internal names.
-
Liren Peng authored
Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D144365
-
Shilei Tian authored
Make preparation for other patches Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D144320
-
Jun Ma authored
After change with D144169, the codegen generates redundant instructions like and and wrap. This fixes it. Differential Revision: https://reviews.llvm.org/D144360
-
Diego Caballero authored
This patch adds masking support for more contraction flavors including those with any combiner operation (add, mul, min, max, and, or, etc.) and regular matmul contractions. Combiner operations that are performing vertical reductions (and, therefore, they are not represented with a horizontal reduction operation) can be executed unmasked. However, the previous value of the accumulator must be propagated for lanes that shouldn't accumulate. We achieve this goal by introducing a select operation after the accumulator to choose between the combined and the previous accumulator value. This design decision is made to avoid introducing masking support to all the arithmetic and logical operations in the Arith dialect. VP intrinsics do not support pass-thru values either so we would have to generate the same sequence when lowering to LLVM. The op + select pattern is peepholed by some backend with native masking support for those operations. Consequently, this patch removes masking support from the vector.fma operation to follow the same approach for all the combiner operations. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D144239
-
Shilei Tian authored
This reverts commit 61faf261 as it makes buildbot unhappy.
-
Ting Wang authored
Add test case and will show combiner can improve these. Reviewed By: lkail Differential Revision: https://reviews.llvm.org/D144235
-
Wang, Xin10 authored
1. Extract the common code of some instructions into a class to reduce duplication 2. Refine some comments to the make the description of the class clearer By this way, the records defined here will be consistent and easier to maintain, I think. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D144154
-
Shilei Tian authored
Make preparation for other patches Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D144320
-
Slava Zakharin authored
-
Lang Hames authored
The UseCallbackStyleUnwindInfo flag already captures the original conditional, and using the flag everywhere makes it easier to switch registration styles when debugging.
-
Justin Bogner authored
LLVM's parsing of .tbd files errors out with "unsupported file type" if the tbd files have CRLF line endings. Add gitattributes for the inputs to avoid test failures on windows. Differential Revision: https://reviews.llvm.org/D144527
-
Justin Bogner authored
Since GetErrcMessages uses cmake's `try_run` mechanism it's sensitive to changes to CMAKE_CXX_FLAGS, so we move it into config-ix with the similar flag-sensitive configuration. This makes it run before HandleLLVMOptions and avoids issues with LLVM_ENABLE_WERROR and other configuration that manipulate CMAKE_CXX_FLAGS. Differential Revision: https://reviews.llvm.org/D144526
-
Nikolas Klauser authored
Reviewed By: phosek, #libunwind, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D144400
-
Maryam Moghadas authored
This patch is to fix some missing lax-vector-conversion warnings including cases that involve vector bool and vector pixel, also to fix the vector compatibility check for the warnings. Differential Revision: https://reviews.llvm.org/D143210
-