- Jan 25, 2021
-
-
Adam Czachorowski authored
When working with invalid code, we would try to dereference a nullptr while deducing template arguments in some dependend code operating on a lambda with invalid return type. Differential Revision: https://reviews.llvm.org/D95145
-
Nicolas Vasilache authored
This revision addresses a remaining comment that was overlooked in https://reviews.llvm.org/D95243: the pad hoisting transformation is made to additionally bail out on side effecting ops other than LoopLikeOps.
-
Simon Pilgrim authored
We're relying on the source inputs for shuffle combining having already been widened to the root size (otherwise the offset logic falls over) - we're going to be supporting different sized shuffle inputs soon, so we need to explicitly make the minimum widened width the original root size.
-
Abhina Sreeskantharajan authored
This reverts commit 06f8a496.
-
Abhina Sreeskantharajan authored
Revert "[SystemZ][z/OS] Fix No such file or directory expression error matching in lit tests - continued" This reverts commit 520b5ecf.
-
Tom Ritter authored
D62056 makes the output color if clang auto-detects a tty, but if it does not, there is no way to force it to use colors anyway. This patch adjusts the command-lines given to ClangTool which will force color on or off if --use-color is specified.
-
Sanjay Patel authored
We can sink extends after min/max if they match and would not change the sign-interpreted compare. The only combo that doesn't work is zext+smin/smax because the zexts could change a negative number into positive: https://alive2.llvm.org/ce/z/D6sz6J Sext+umax/umin works: define i32 @src(i8 %x, i8 %y) { %0: %sx = sext i8 %x to i32 %sy = sext i8 %y to i32 %m = umax i32 %sx, %sy ret i32 %m } => define i32 @tgt(i8 %x, i8 %y) { %0: %m = umax i8 %x, %y %r = sext i8 %m to i32 ret i32 %r } Transformation seems to be correct!
-
Sanjay Patel authored
-
Sven van Haastregt authored
This reverts commit 14947cd0 because it broke clang-cmake-armv7-quick.
-
Nicolas Vasilache authored
This transformation anchors on a padding op whose result is only used as an input to a Linalg op and pulls it out of a given number of loops. The result is a packing of padded tailes of ops that is amortized just before the outermost loop from which the pad operation is hoisted. Differential revision: https://reviews.llvm.org/D95243
-
Faris Rehman authored
Update the preprocessor regression tests to use the new driver if the new driver is built (FLANG_BUILD_NEW_DRIVER=On), otherwise the tests will still run using f18. Summary of changes: - Introduce %flang to the regression tests, which points to the new driver if it is built or otherwise points to f18 - Update all tests in flang/test/Preprocessing/ to use %flang Differential Revision: https://reviews.llvm.org/D94805
-
Sander de Smalen authored
This change also changes getReductionCost to return InstructionCost, and it simplifies two expressions by removing a redundant 'isValid' check.
-
Simon Pilgrim authored
We allow extract_subvector lowering of all legal types, so pre-bitcast the source type to try and reduce bitcast pollution.
-
Sven van Haastregt authored
The included test case triggered a sign assertion on the result in `Success()`. This was caused by the APSInt created for a bitcast having its signedness bit inverted. The second APSInt constructor argument is `isUnsigned`, so invert the result of `isSignedIntegerType`. Differential Revision: https://reviews.llvm.org/D95135
-
Faris Rehman authored
Remove a new line in CompilerInvocation, to now follow the style when clang-format is applied.
-
Simon Pilgrim authored
We allow insert_subvector lowering of all legal types, so don't always cast to the vXi64/vXf64 shuffle types - this is only necessary for X86ISD::SHUF128/X86ISD::VPERM2X128 patterns later.
-
Simon Pilgrim authored
Use const reference to avoid std::string copy - accordingly to the style guide we shouldn't be using auto anyway. Fixes MSVC analyzer warning.
-
Sander de Smalen authored
For a function that returns InstructionCost, it is very tempting to write: return InstructionCost::Invalid; But that actually returns InstructionCost(1 /* int value of Invalid */)) which has a totally different meaning. By marking this constructor as `delete`, this can no longer happen.
-
Anastasia Stulova authored
Added documentation for the fast builtin function declarations with -fdeclare-opencl-builtins. Tags: #clang Differential Revision: https://reviews.llvm.org/D95038
-
Fraser Cormack authored
This patch adds support for scalable-vector splats in DAGCombiner's `isConstantOrConstantVector` and `ISD::matchUnaryPredicate` functions, which enable the SelectionDAG div/rem-by-constant optimizations for scalable vector types. It also fixes up one case where the UDIV optimization was generating a SETCC without first consulting the target for its preferred SETCC result type. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D94501
-
Philip Pfaffe authored
The llvm-dwp tool hard-codes the target triple to x86. Instead, deduce the target triple from the object files being read. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D93749
-
Benjamin Kramer authored
This is both cleaner and less prone to creating a mess out of overload resolution.
-
Georgii Rymar authored
D95140 introduced `static constexpr StringRef TypeStr = "SectionHeaderTable";` member of `SectionHeaderTable` with in-class initialized. BB reports the link error: /usr/bin/ld: lib/libLLVMObjectYAML.a(ELFYAML.cpp.o): in function `llvm::yaml::MappingTraits<std::unique_ptr<llvm::ELFYAML::Chunk, std::default_delete<llvm::ELFYAML::Chunk> > >::mapping(llvm::yaml::IO&, std::unique_ptr<llvm::ELFYAML::Chunk, std::default_delete<llvm::ELFYAML::Chunk> >&)': ELFYAML.cpp:(.text._ZN4llvm4yaml13MappingTraitsISt10unique_ptrINS_7ELFYAML5ChunkESt14default_deleteIS4_EEE7mappingERNS0_2IOERS7_+0x58): undefined reference to `llvm::ELFYAML::SectionHeaderTable::TypeStr' /usr/bin/ld: ELFYAML.cpp:(.text._ZN4llvm4yaml13MappingTraitsISt10unique_ptrINS_7ELFYAML5ChunkESt14default_deleteIS4_EEE7mappingERNS0_2IOERS7_+0x353):undefined reference to `llvm::ELFYAML::SectionHeaderTable::TypeStr' /usr/bin/ld: ELFYAML.cpp:(.text._ZN4llvm4yaml13MappingTraitsISt10unique_ptrINS_7ELFYAML5ChunkESt14default_deleteIS4_EEE7mappingERNS0_2IOERS7_+0x6e5): undefined reference to `llvm::ELFYAML::SectionHeaderTable::TypeStr' This patch adds a definition to cpp file, I guess it should fix the issue.
-
Kirill Bobyrev authored
Follow-up on D95336. A bunch of these cases were found manually, the rest made sense to be included to eliminate llvm-else-after-return Clang-Tidy warnings.
-
Georgii Rymar authored
This was discussed in D93678 thread. Currently we have one special chunk - Fill. This patch re implements the "SectionHeaderTable" key to become a special chunk too. With that we are able to place the section header table at any location, just like we place sections. Differential revision: https://reviews.llvm.org/D95140
-
Marek Kurdej authored
-
James Henderson authored
Whilst migrating/retiring some downstream testing, I came across a test for weak undef IE and LD TLS references, but was unable to find any equivalent in LLD's upstream testing. There does seem to be some slight subtle differences that could be worth testing compared to LE TLS references, in particular that IE can be relaxed to LE in this case, hence this change. Differential Revision: https://reviews.llvm.org/D95124 Reviewed by: grimar, MaskRay
-
Kirill Bobyrev authored
Update the code to be compatible with LLVM Coding Guidelines. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D95336
-
Nicolas Vasilache authored
This revision allows the base Linalg tiling pattern to optionally require padding to a constant bounding shape. When requested, a simple analysis is performed, similar to buffer promotion. A temporary `linalg.simple_pad` op is added to model padding for the purpose of connecting the dots. This will be replaced by a more fleshed out `linalg.pad_tensor` op when it is available. In the meantime, this temporary op serves the purpose of exhibiting the necessary properties required from a more fleshed out pad op, to compose with transformations properly. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D95149
-
Sjoerd Meijer authored
This adds subtarget features for AES, literal, and compare and branch instruction fusion for different Cortex CPUs. Patch by: Cassie Jones. Differential Revision: https://reviews.llvm.org/D94457
-
Simon Cook authored
This adds support for ".attribute arch" for all extensions that are currently supported by the compiler. Differential Revision: https://reviews.llvm.org/D94931
-
Simon Cook authored
This adds support for the new architecture extension test macros as defined in the C-API Document: https://github.com/riscv/riscv-c-api-doc/blob/master/riscv-c-api.md Extension versions have been taken from what are used in RISCVTargetStreamer for ratified extensions, and the -march parser for experimental extensions. Differential Revision: https://reviews.llvm.org/D94403
-
Marek Kurdej authored
* This variable populates the default value of FOLDER target property. It is used in some IDE's (e.g. MSVC) to group different targets together.
-
Fangrui Song authored
[XRay] Support DW_TAG_call_site and delete unneeded PATCHABLE_EVENT_CALL/PATCHABLE_TYPED_EVENT_CALL lowering
-
Fangrui Song authored
-
Haojian Wu authored
The test ms-lookup-template-base-classes.cpp added in d972d4c7 is failing on some builtbot that don't include x86. This patch should fix that (following the patterns in the test directory).
-
Lukas Barth authored
Currently, empty lines and comments break alignment of assignments on consecutive lines. This makes the AlignConsecutiveAssignments option an enum that allows controlling whether empty lines or empty lines and comments should be ignored when aligning assignments. Reviewed By: MyDeveloperDay, HazardyKnusperkeks, tinloaf Differential Revision: https://reviews.llvm.org/D93986
-
Marek Kurdej authored
This reverts commit f00a20e5.
-
Marek Kurdej authored
Currently, empty lines and comments break alignment of assignments on consecutive lines. This makes the AlignConsecutiveAssignments option an enum that allows controlling whether empty lines or empty lines and comments should be ignored when aligning assignments. Reviewed By: MyDeveloperDay, HazardyKnusperkeks, tinloaf Differential Revision: https://reviews.llvm.org/D93986
-