- Mar 12, 2021
-
-
Nikita Popov authored
These are incompatible with opaque pointers and are going away. Explicitly specify the loaded type instead.
-
Fangrui Song authored
-
Martin Storsjö authored
Check that appends with a path object doesn't do allocations, even on windows. Suggested by Marek in D98398. The patch might apply without D98398 (depending on how much of the diff context has to match), but doesn't make much sense until after that patch has landed. Differential Revision: https://reviews.llvm.org/D98412
-
Martin Storsjö authored
This makes sure that no extra allocations happen on windows, fixing earlier errors in the DisableAllocationGuard (in the second case that is modified). This is split out from D98398. Differential Revision: https://reviews.llvm.org/D98406
-
Fangrui Song authored
GNU ld supports `.` and `$` in symbol names while LLD doesn't support them in `readPrimary` expressions. Using `.` can result in such an error: ``` https://github.com/ClangBuiltLinux/linux/issues/1318 ld.lld: error: ./arch/powerpc/kernel/vmlinux.lds:255: malformed number: .TOC. >>> __toc_ptr = (DEFINED (.TOC.) ? .TOC. : ADDR (.got)) + 0x8000; ``` Allow `.` (ppc64 special symbol `.TOC.`) and `$` (RISC-V special symbol `__global_pointer$`). Change `diag[3-5].test` to use an invalid character `^`. Note: GNU ld allows `~` in non-leading positions of a symbol name. `~` is not used in practice, conflicts with the unary operator, and can cause some parsing difficulty, so this patch does not add it. Differential Revision: https://reviews.llvm.org/D98306
-
Craig Topper authored
This uses a really simple approach of converting to an i8 vector and extracting. This is probably not the best approach especially if you know the index is constant. Other ideas: -Store to stack temporary using vse1, load as scalar and shift. -Sort of bitcast the vector to a vector of i8, slide down the appropriate 8 bit element, copy to scalar, shift down the correct bit within the 8 bits we extracted. Not exactly sure how to describe such a bitcast from i1 vector to i8 vector within the type system for elements less than 8. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D98310
-
Craig Topper authored
RISCV makes all fixed vector MVTs with size less than or equal to a command line option legal. This didn't include v1f16 because it was missing but did include v1f32 and v1f64. One test is affected where we did test this type, but it is a horizontal reduction so it is non-sensical. Perhaps we should canonicalize that away somewhere. I'm not sure if we should be making v1 types legal, but this will at least make RISCV consistent across all types. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D98365
-
Alex Zinenko authored
-
- Mar 11, 2021
-
-
Alex Zinenko authored
Data layout information allows to answer questions about the size and alignment properties of a type. It enables, among others, the generation of various linear memory addressing schemes for containers of abstract types and deeper reasoning about vectors. This introduces the subsystem for modeling data layouts in MLIR. The data layout subsystem is designed to scale to MLIR's open type and operation system. At the top level, it consists of attribute interfaces that can be implemented by concrete data layout specifications; type interfaces that should be implemented by types subject to data layout; operation interfaces that must be implemented by operations that can serve as data layout scopes (e.g., modules); and dialect interfaces for data layout properties unrelated to specific types. Built-in types are handled specially to decrease the overall query cost. A concrete default implementation of these interfaces is provided in the new Target dialect. Default...
-
Arpith C. Jacob authored
Support specifying the II and disabling pipelining. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D98420
-
Matt Arsenault authored
This enables the look-through-copy to hack around not correctly regbankselecting constants to match the use bank.
-
Matt Arsenault authored
For attribute sets, the return index is at 0, and arguments start at 1. getParamAlignment adds the offset of 1, so we need to convert from attribute index back to IR index.
-
Matt Arsenault authored
-
Arnamoy Bhattacharyya authored
[flang][OpenMP] Add semantic check for occurrence of multiple list items in aligned clause for simd directive Reviewed By: kiranchandramohan, clementval Differential Revision: https://reviews.llvm.org/D97964
-
Raphael Isemann authored
D96202 removes the test dependency on debugserver which is causing a bunch of tests to fail on a clean build. This patch re-adds the dependency. I decided to not add the dependency in the `test/API` folder as we actually need it in all kinds of tests (we have shell, API and a few unit tests such as the LLDBServerTests that depend on the debugserver binary). lldb-server is also handled in the same way. Reviewed By: JDevlieghere, labath Differential Revision: https://reviews.llvm.org/D98196
-
Joseph Huber authored
Summary: The changes introduced in D87946 changed the API for libomptarget functions. `__kmpc_push_target_tripcount` was a function in Clang 11.x but was not given a backward-compatible interface. This change will require people using Clang 13.x or 12.x to recompile their offloading programs. Reviewed By: jdoerfert cchen Differential Revision: https://reviews.llvm.org/D98358
-
Simon Pilgrim authored
getAs<> returns null for missed casts, resulting in null dereferences - use castAs<> instead which will assert the cast is correct.
-
Stephen Tozer authored
Revert "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" This reverts commit c0f3dfb9. Reverted due to an error on the clang-x64-windows-msvc buildbot.
-
Simon Pilgrim authored
-
Stefan Pintilie authored
Starting with Power 10 the instruction paddi is available to use. The instruction allows for immediates that are 34 bits. This patch adds exploitation of the paddi instruction to allow us to materialize constants. Reviewed By: lei, amyk Differential Revision: https://reviews.llvm.org/D93300
-
Thorsten Schütt authored
This is the minimal port from ELF. Any extension should easy from here Test plan: ninja check-all-macho Reviewed By: #lld-macho, thakis Differential Revision: https://reviews.llvm.org/D98419
-
Anastasia Stulova authored
Add documentation that explains how to extend clang with the new extensions/features. The guidelines also detail clang's position about the extension pragmas for the new functionality. Differential Revision: https://reviews.llvm.org/D97072
-
Stefan Gränitz authored
-
Simon Pilgrim authored
-
Qiu Chaofan authored
4c973ae5 implemented reduction of vector swap for lane-insensitive operations. This commit fixes it for checking number of uses of the vector operation.
-
Nathan James authored
Adds fix-its when users forget to explicitly capture variables or this in lambdas Addresses https://github.com/clangd/clangd/issues/697 Reviewed By: kbobyrev Differential Revision: https://reviews.llvm.org/D96975
-
Nikita Popov authored
Explicitly pass loaded type when creating loads, in preparation for the deprecation of these APIs. There are still a couple of uses left.
-
Bradley Smith authored
Differential Revision: https://reviews.llvm.org/D98348
-
gbtozers authored
This patch improves salvageDebugInfoImpl by allowing it to salvage arithmetic operations with two or more non-const operands; this includes the GetElementPtr instruction, and most Binary Operator instructions. These salvages produce DIArgList locations and are only valid for dbg.values, as currently variadic DIExpressions must use DW_OP_stack_value. This functionality is also only added for salvageDebugInfoForDbgValues; other functions that directly call salvageDebugInfoImpl (such as in ISel or Coroutine frame building) can be updated in a later patch. Differential Revision: https://reviews.llvm.org/D91722
-
Bradley Smith authored
This patch introduced codegen faults. An attempt to fix this was done in https://reviews.llvm.org/D97193, but ultimately it was decided to approach this differently. This reverts commit 42635856. Differential Revision: https://reviews.llvm.org/D98350
-
Nikita Popov authored
If we encounter a degenerate select node where both operands are the same, then we can continue negating the condition while swapping operands, resulting in an infinite loop. Avoid this by bailing out if both operands are the same. Fixes https://bugs.llvm.org/show_bug.cgi?id=49509. Differential Revision: https://reviews.llvm.org/D98340
-
Martin Storsjö authored
When building builtins, the toolchain might not yet be at a stage when linking a test application works yet, as builtins aren't available. Therefore set CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY, to avoid failing the compiler sanity check. Setting CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY has the risk of making checks for library availability succeed falsely (e.g. indicating that libs would be available that really aren't, as the tests don't do any linking), but the builtins library doesn't try to link against any external libraries (and only produces static libraries anyway), so it should be safe here. This avoids having to set CMAKE_C_COMPILER_WORKS when bootstrapping a cross toolchain, when building the builtins. Differential Revision: https://reviews.llvm.org/D91334
-
Simon Pilgrim authored
Revert rGcd938ab1 "[X86] canonicalizeShuffleWithBinOps - add X86ISD::PSHUFB handling." Investigating an issue reported by @bkramer, possibly when the PSHUFB mask generates zero elements.
-
Arnamoy Bhattacharyya authored
-
Kadir Cetinkaya authored
-
Kadir Cetinkaya authored
This enables unifying command line flags with config options in clangd internals. This patch changes behaviour in 2 places: - BackgroundIndex was previously disabled when -remote-index was provided. After this patch, it will be enabled but all files will have bkgindex policy set to Skip. - -index-file was loaded at startup (at least load was initiated), now the load will happen through ProjectAwareIndex with first index query. Unfortunately this doesn't simplify any options initially, as - CompileCommandsDir is also used by clangd --check workflow, which doesn't use configs. - EnableBackgroundIndex option controls whether the component will be created at all, which implies creation of extra threads registering a listener for compilation database discoveries. Differential Revision: https://reviews.llvm.org/D98029
-
Kadir Cetinkaya authored
Explicit specifier can only be mentioned on the in-line declaration of a constructor, so don't carry it over to the definition. Differential Revision: https://reviews.llvm.org/D98164
-
Simon Pilgrim authored
Fixes PR49451
-
Tres Popp authored
verifyCompatibleShapes is not transitive. Create an n-ary version and update SameOperandShapes and SameOperandAndResultShapes traits to use it. Differential Revision: https://reviews.llvm.org/D98331
-
Sam McCall authored
Also give CanonicalIncludes a less powerful interface (canonicalizes symbols vs headers separately) so we can cache its results better. Prior to this: - path->uri conversions were not consistently cached, this is particularly cheap when we start from a FileEntry* (which we often can) - only a small fraction of header-to-include calculation was cached This is a significant speedup at least for dynamic indexing of preambles. On my machine, opening XRefs.cpp: ``` PreambleCallback 1.208 -> 1.019 (-15.7%) BuildPreamble 5.538 -> 5.214 (-5.8%) ``` Differential Revision: https://reviews.llvm.org/D98371
-