- Feb 21, 2022
-
-
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
-
Fangrui Song authored
In many call sites we know uncompression cannot happen (non-SHF_ALLOC, or the data (even if compressed) must have been uncompressed by a previous pass). Prefer rawData in these cases. data() increases code size and prevents optimization on rawData.
-
Matthias Springer authored
This is for consistency with other dialects. Differential Revision: https://reviews.llvm.org/D120190
-
Prateek Gupta authored
This commit adds canonicalization pattern in `linalg.generic` op for static shape inference. If any of the inputs or outputs have static shape or is casted from a tensor of static shape, then shapes of all the inputs and outputs can be inferred by using the affine map of the static shape input/output. Signed-Off-By:
Prateek Gupta <prateek@nod-labs.com> Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D118929
-
Shraiysh Vaishay authored
This patch adds assemblyFormat for omp.sections operation. Some existing functions have been altered to fit the custom directive in assemblyFormat. This has led to their callsites to get modified too, but those will be removed in later patches, when other operations get their assemblyFormat. All operations were not changed in one patch for ease of review. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D120176
-
Kito Cheng authored
Resource folder[1] should include before sysroot[2] in general (Linux clang toolchain, BareMetal clang toolchain, and GCC using that order), and that prevent sysroot's header file override resource folder's one, this change is reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3]. And also fix the behavior of `-nobuiltininc`. [1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/` [2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include` [3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193 Reviewed By: asb Differential Revision: https://reviews.llvm.org/D119837 The recommit fixes the Windows build failure due to path issue.
-
Kito Cheng authored
This reverts commit 47b1fa5f.
-
Craig Topper authored
This function was added in D49837, but no setOperationAction call was added with it. The code is equivalent to what is done by the default ExpandIntRes_ABS implementation when ADDCARRY is supported. Test case added to verify this. There was some existing coverage from Thumb2 MVE tests, but they started from vectors.
-
Kito Cheng authored
Resource folder[1] should include before sysroot[2] in general (Linux clang toolchain, BareMetal clang toolchain, and GCC using that order), and that prevent sysroot's header file override resource folder's one, this change is reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3]. And also fix the behavior of `-nobuiltininc`. [1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/` [2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include` [3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193 Reviewed By: asb Differential Revision: https://reviews.llvm.org/D119837 The recommit fixes the Windows build failure due to path issue.
-
Kito Cheng authored
This reverts commit 079d1366.
-
Kito Cheng authored
Resource folder[1] should include before sysroot[2] in general (Linux clang toolchain, BareMetal clang toolchain, and GCC using that order), and that prevent sysroot's header file override resource folder's one, this change is reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3]. And also fix the behavior of `-nobuiltininc`. [1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/` [2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include` [3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193 Reviewed By: asb Differential Revision: https://reviews.llvm.org/D119837
-
Craig Topper authored
[SelectionDAG][RISCV][ARM][PowerPC][X86][WebAssembly] Change default abs expansion to use sra (X, size(X)-1); sub (xor (X, Y), Y). Previous we used sra (X, size(X)-1); xor (add (X, Y), Y). By placing sub at the end, we allow RISCV to combine sign_extend_inreg with it to form subw. Some X86 tests for Z - abs(X) seem to have improved as well. Other targets look to be a wash. I had to modify ARM's abs matching code to match from sub instead of xor. Maybe instead ISD::ABS should be made legal. I'll try that in parallel to this patch. This is an alternative to D119099 which was focused on RISCV only. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D119171
-
Serguei Katkov authored
LR is modified at the moment of the call and before any use is read. Reviewers: reames Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D120114
-
esmeyi authored
Fix the Buildbot failure #19373. Differential Revision: https://reviews.llvm.org/D117642
-
Chen Zheng authored
Reviewed By: RKSimon, craig.topper Differential Revision: https://reviews.llvm.org/D120049
-
Lian Wang authored
Add sched to brev8, zip and unzip instruction. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D120009
-
Luo, Yuanke authored
This patch extract the sub folding from D119654 and leave only add folding in that patch. Differential Revision: https://reviews.llvm.org/D120116
-
Amir Ayupov authored
This adds a target that would consume random binary as an input ELF file. TBD: add structured input support (ELF). Build: ``` cmake /path/to/llvm-project/llvm -GNinja \ -DLLVM_TARGETS_TO_BUILD="X86;AArch64" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=1 \ -DCMAKE_C_COMPILER=<sanitizer-capable clang> \ -DCMAKE_CXX_COMPILER=<sanitizer-capable clang++> \ -DLLVM_ENABLE_PROJECTS="bolt" \ -DLLVM_USE_SANITIZER=Address \ -DLLVM_USE_SANITIZE_COVERAGE=On ninja llvm-bolt-fuzzer ``` Test Plan: ninja llvm-bolt-fuzzer Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D120016
-
Amir Ayupov authored
Fix data race reported by ThreadSanitizer in clang.test: ``` ThreadSanitizer: data race /data/llvm-project/bolt/lib/Passes/ShrinkWrapping.cpp:1359:28 in llvm::bolt::ShrinkWrapping::moveSaveRestores() ``` The issue is with incrementing global counters from multiple threads. Reviewed By: yota9 Differential Revision: https://reviews.llvm.org/D120218
-
Krystian Kuzniarek authored
Differential Revision: https://reviews.llvm.org/D120220
-
David Blaikie authored
This is helping me debug some issues with simplified template names
-
Kesavan Yogeswaran authored
D90110 modified the behavior of `run-clang-tidy` to always pass the `--use-color` option to clang-tidy, which enabled colored diagnostics output regardless of TTY status or .clang-tidy settings. This left the user with no option to disable the colored output. This presents an issue when trying to parse the output of run-clang-tidy programmaticall, as the output is polluted with ANSI escape characters. This PR fixes this issue in two ways: 1. It restores the default behavior of `run-clang-tidy` to let `clang-tidy` decide whether to color output. This allows the user to configure color via the `UseColor` option in a .clang-tidy file. 2. It adds mutually exclusive, optional `-use-color` and `-no-use-color` argument flags that let the user explicitly set the color option via the invocation. After this change the default behavior of `run-clang-tidy` when no .clang-tidy file is available is now to show no color, presumably because `clang-tidy` detects that the output is being piped and defaults to not showing colored output. This seems like an acceptable tradeoff to respect .clang-tidy configurations, as users can still use the `-use-color` option to explicitly enable color. Fixes #49441 (50097 in Bugzilla) Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D119562
-
Krystian Kuzniarek authored
...options markers Note: Option 'IndentRequiresClause' was previously known as 'IndentRequires' but the version marker should still indicate 'clang-format 15' as this option most recent name wasn't accessible earlier and it would produce: error: unknown key 'IndentRequiresClause' Differential Revision: https://reviews.llvm.org/D119682
-
Björn Schäpers authored
We can return as early as possible and only calculate IsComparison if we really need to. Also cache getPrecedence() instead of querying it at most 4 times. Differential Revision: https://reviews.llvm.org/D119923
-
Björn Schäpers authored
Fixes https://github.com/llvm/llvm-project/issues/53820. Differential Revision: https://reviews.llvm.org/D119893
-
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.
-