- Feb 22, 2023
-
-
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
-
Ethan Luis McDonough authored
This PR makes flang emit a warning when the user passes an unsupported gfortran warning flag in as a CLI arg. This PR also checks each `-W` argument instead of just looking at the last one passed in. Reviewed By: awarzynski Differential Revision: https://reviews.llvm.org/D143301
-
Sanjay Patel authored
This is a generalization of a suggestion from issue #60799 that allows removing a redundant guard of an input value via icmp+select. It should also solve issue #60801. This only comes into play for a select with an equality condition where we are trying to substitute a constant into the false arm of a select. (A 'true' select arm substitution allows "refinement", so it is not on this code path.) The constant must be the same in the compare and the select, and it must be a "binop absorber" (X op C = C). That query currently includes 'or', 'and', and 'mul', so there are tests for all of those opcodes. We then use "impliesPoison" on the false arm binop and the original "Op" to be replaced to ensure that the select is not actually blocking poison from leaking. That could be potentially expensive as we recursively test each operand, but it is currently limited to a depth of 2. That's enough to catch our motivating cases, but probably nothing more complicated (although that seems unlikely). I don't know how to generalize a proof for Alive2 for this, but here's a positive and negative test example to help illustrate the subtle logic differences of poison/undef propagation: https://alive2.llvm.org/ce/z/Sz5K-c Differential Revision: https://reviews.llvm.org/D144493
-
ManuelJBrito authored
With this patch freeze undef/poison will no longer be folded into a constant if it's used as a vector operand in a shufflevector. Differential Revision: https://reviews.llvm.org/D143593
-
Maryam Moghadas authored
This patch is to fix some implicit castings for emulated intrinsics so that there are no lax-vector-conversions errors and warnings. Reviewed By: nemanjai, #powerpc Differential Revision: https://reviews.llvm.org/D144293
-
Mark Danial authored
[Flang] Add user option -funderscoring/-fnounderscoring to control trailing underscore added to external names This patch adds user option -funderscoring/-fnounderscoring to control the trailing underscore being appended to external names (e.g. procedure names, common block names). The option in gfortran is documented in https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D140795
-
Peiming Liu authored
Eliminates the sort seems make the whole conversion slower (probably because loop rotation leads to bad locality). Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D144517
-
Alexey Bataev authored
No need to swap extractelements, which were not excluded from the list during cost analysis. It leads to incorrect cost calculation and make vector code more profitable than it is actually is.
-
Siva Chandra Reddy authored
Few existing call-sites have been modified to use LIBC_ASSERT. Reviewed By: lntue, michaelrj Differential Revision: https://reviews.llvm.org/D144161
-
Krzysztof Parzyszek authored
The previous algorithm could order nodes incorrectly, this one strictly follows the topological order.
-
Michal Paszkowski authored
This change adds a new spv_undef intrinsic which is emitted in place of aggregate undef operands and later selected to single OpUndef SPIR-V instruction. The behavior matches that of Khronos SPIR-V Translator and should support nested aggregates. Differential Revision: https://reviews.llvm.org/D143107
-
Philip Reames authored
-
Teresa Johnson authored
As suggested in D140908, make the hasSingleAllocType helper non-static so that it can be used in other files. Add unit testing. Differential Revision: https://reviews.llvm.org/D144318
-