- Feb 21, 2022
-
-
Marek Kurdej authored
This reverts commit e0219872. This commit provokes failures in formatting tests of polly. Cf. https://lab.llvm.org/buildbot/#/builders/205/builds/3320. That's probably because of `)` being annotated as `CastRParen` instead of `Unknown` before, hence being kept on the same line with the next token.
-
Marek Kurdej authored
Fixes https://github.com/llvm/llvm-project/issues/53876. This is a solution for standard C++ casts: const_cast, dynamic_cast, reinterpret_cast, static_cast. A general approach handling all possible casts is not possible without semantic information. Consider the code: ``` static_cast<T>(*function_pointer_variable)(arguments); ``` vs. ``` some_return_type<T> (*function_pointer_variable)(parameters); // Later used as: function_pointer_variable = &some_function; return function_pointer_variable(args); ``` In the latter case, it's not a cast but a variable declaration of a pointer to function. Without knowing what `some_return_type<T>` is (and clang-format does not know it), it's hard to distinguish between the two cases. Theoretically, one could check whether "parameters" are types (not a cast) and "arguments" are value/expressions (a cast), but that might be inefficient (needs lots of lookahead). Reviewed By: MyDeveloperDay, HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D120140
-
Luis Penagos authored
Fixes https://github.com/llvm/llvm-project/issues/53844. I believe this regression was caused by not accounting for clang-format directives in https://reviews.llvm.org/D92257. Reviewed By: HazardyKnusperkeks, curdeius Differential Revision: https://reviews.llvm.org/D120188
-
Simon Pilgrim authored
-
Yannic Bonenberger authored
`llvm/Debuginfod/DIFetcher.h` imports `llvm/DebugInfo/Symbolize/DIFetcher.h`, so there should be a dependency on Symbolize. Reviewed By: #debug-info, dblaikie, phosek Differential Revision: https://reviews.llvm.org/D119626
-
Sanjay Patel authored
See #53829
-
Alex Bradbury authored
This change makes several updates to the ReleaseNotes template: * Orders the backend/target updates alphabetically * Adds RISC-V to the list * Uses "Backend" rather than a mix of "Target" and "Backend" (I don't have a strong view on which term is used, but we should be consistent!) * Uses * ... as the placeholder text, as this matches the format actually used for most updates in recent releases Differential Revision: https://reviews.llvm.org/D120043
-
Casey Carter authored
Make distinct `TEST_STD_VER` values for C++20 and C++23; add C++23 deprecation suppression. Fixes #53597
-
Arthur Eubanks authored
-
Simon Pilgrim authored
Peek through if we're extracting a non-zero'th subvector in an attempt to fold the extract into a lane-crossing shuffle This also exposes a failure to fold extract_subvector(movddup(x),c) -> movddup(extract_subvector(x,c))
-
Nuno Lopes authored
-
Michel Weber authored
This patch adds typing of inequalities to the simplex. This is a cental part of the coalesce algorithm and will be heavily used in later coalesce patches. Currently, only the three most basic types are supported with more to be introduced when they are needed. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D119925
-
Qiu Chaofan authored
Perfect shuffle was introduced into PowerPC backend years ago, and only available in big-endian subtargets. This optimization has good effects in simple cases, but brings serious negative impact in large programs with many shuffle instructions sharing the same mask. Here introduces a temporary backend hidden option to control it until we implemented better way to fix the gap in vectorshuffle decomposition. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D120072
-
- Feb 20, 2022
-
-
Simon Pilgrim authored
Extension to PR45974, unless we actual combine the target shuffles we shouldn't be generating temporary nodes as they may interfere with the one use checks in the shuffle recursions
-
Florian Hahn authored
Add an extra store to the test, to make sure the operations in the loop cannot be optimized away after D118051.
-
Benjamin Kramer authored
These are unused by Clang, but Flang references them.
-
Benjamin Kramer authored
-
David Green authored
-
Benjamin Kramer authored
-
Nuno Lopes authored
-
Valery Pykhtin authored
with --function-signature option (otherwise filecheck gets confused).
-
Nuno Lopes authored
-
Nuno Lopes authored
Plus fix a few wrong examples with undef
-
Benjamin Kramer authored
-
Iain Sandoe authored
This reverts commit 8a3f9a58. need to investigate build failures that do not show on CI or local testing.
-
Valery Pykhtin authored
Rename %tmp => %temp IR values to avoid update warning.
-
Iain Sandoe authored
In C++20 modules imports must be together and at the start of the module. Rather than growing more ad-hoc flags to test state, this keeps track of the phase of of a valid module TU (first decl, global module frag, module, private module frag). If the phasing is broken (with some diagnostic) the pattern does not conform to a valid C++20 module, and we set the state accordingly. We can thus issue diagnostics when imports appear in the wrong places and decouple the C++20 modules state from other module variants (modules-ts and clang modules). Additionally, we attempt to diagnose wrong imports before trying to find the module where possible (the latter will generally emit an unhelpful diagnostic about the module not being available). Although this generally simplifies the handling of C++20 module import diagnostics, the motivation was that, in particular, it allows detecting invalid imports like: import module A; int some_decl(); import module B; where being in a module purview is insufficient to identify them. Differential Revision: https://reviews.llvm.org/D118893
-
Amara Emerson authored
This is a partial port of the same optimization from AArch64ISelLowering, although the original handles more cases when generating regular compares instead of this one which just does it when selecting G_SELECTs. For more detailed comments see the original comments for emitConditionalComparison() in AArch64ISelLowering. Gives minor code size improvements. Differential Revision: https://reviews.llvm.org/D117166
-
Amara Emerson authored
Differential Revision: https://reviews.llvm.org/D117160
-
Yaxun (Sam) Liu authored
HIP programs compiled with -c -fgpu-rdc generate clang-offload-bundler bundles which contain bitcode for different GPU's. Such files can be archived to an archive file which can be linked with HIP programs with -fgpu-rdc. This patch adds suppor of linking archive of bundled bitcode. When an archive of bundled bitcode is passed to clang by -l, for each GPU specified through --offload-arch, clang extracts bitcode from the archive and creates a new archive for that GPU and pass it to lld. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D120070 Fixes: SWDEV-321741, SWDEV-315773
-
Arjun P authored
This allows to differentiate between the cases where the optimum does not exist due to being unbounded and due to the polytope being empty. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D120127
-
Florian Hahn authored
The removed conditions are already checked by the if above. Fixes #53761.
-
Matthias Springer authored
Add `BufferizableOpInterface::verifyAnalysis`. Ops can implement this method to check for expected invariants and limitations. The purpose of this change is to introduce a modular way of checking assertions such as `assertScfForAliasingProperties`. Differential Revision: https://reviews.llvm.org/D120189
-
Craig Topper authored
This code was detecting whether the value returned by getShiftAmountTy can represent all shift amounts. If not, it would use MVT::i32 as a placeholder. getShiftAmountTy was updated last year to return i32 if the type returned by the target couldn't represent all values. This means the MVT::i32 case here is dead and can the logic can be simplified. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D120164
-
Simon Pilgrim authored
-
Benjamin Kramer authored
I made that type non-copyable in some cases in dc4f9f03
-
Simon Pilgrim authored
Break the if-else chain as every block returns, and remove the return at the end of the function as the else block means this was never hit
-
Simon Pilgrim authored
-
Benjamin Kramer authored
IntervalMap has seen type-punned arrays, AlignedCharArrayUnion and std::aligned_union_t, with varying degrees of buggyness. Plain unions have become quite powerful, so just try that instead.
-
Simon Pilgrim authored
Different shift amounts and multiuse tests
-