- Mar 12, 2021
-
-
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
-
Serguei Katkov authored
Recently gc.result has been marked with readnone instead of readonly and this opens a door for different optimization to duplicate gc.result. Statepoint lowering is not ready to see several gc.results. The problem appears when there are gc.results with one located in the same basic block and another located in other basic block. In this case we need both export VR and fill local setValue. Note that this case is not sufficient optimization done before CodeGen. It is evident that local gc.result dominates all other gc.results and it is handled by GVN and EarlyCSE. But anyway, even if IR is not optimal Backend should not crash on a valid IR. Reviewers: reames, dantrushin Reviewed By: dantrushin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D98393
-
Julian Gross authored
Buffer hoisting moves allocs upwards although it has dependency within its nested region. This patch fixes this issue. https://bugs.llvm.org/show_bug.cgi?id=49142 Differential Revision: https://reviews.llvm.org/D98248
-
Simon Pilgrim authored
Fix MSVC "'type cast': conversion from 'unsigned int' to 'const llvm::CallBase *' of greater size" warning. NFCI.
-
Thomas Preud'homme authored
As pointed out by Joel E. Denny in D97845, the OverflowErrorStr variable is misnamed because the error is raised for any parsing error. Note that in FileCheck proper this only happens in case of (under|over)flow because the regex will ensure a number in the correct format is matched. Reviewed By: jdenny Differential Revision: https://reviews.llvm.org/D98342
-
Simon Pilgrim authored
It wasn't taking into account that QueryingAA was a pointer.
-
Simon Pilgrim authored
-
David Spickett authored
This moves code that sets the architecture name and Float ABI into two new functions in ToolChains/Arch/ARM.cpp. Greatly simplifying ComputeLLVMTriple. Some light refactoring in setArchNameInTriple to move local variables closer to their first use. Reviewed By: ostannard Differential Revision: https://reviews.llvm.org/D98253
-