- Oct 24, 2022
-
-
Jean Perier authored
This patch adds the kernel to lower evaluate::Expr to HLFIR to a hlfir::FortranEntity (a single mlir::Value that can be interpreted as a Fortran variable or the value of a Fortram expression). It implements lowering of simple name designators ("x") and starts adding a translation layer in AbstractConverter::genExprBox and AbstractConverter::genExprAddr so that the new expression lowering can be used without any changes for now in the current statement and construct lowering. Differential Revision: https://reviews.llvm.org/D136453 -
Erich Keane authored
As that bug reports, the problem here is that the lambda's 'context-decl' was not set to the concept, and the lambda picked up template arguments from the concept. SO, we failed to get the correct template arguments in SemaTemplateInstantiate. However, a Concept Specialization is NOT a decl, its an expression, so we weren't able to put the concept in the decl tree like we needed. This patch introduces a ConceptSpecializationDecl, which is the smallest type possible to use for this purpose, containing only the template arguments. The net memory impliciation of this is turning a trailing-objects into a pointer to a type with trailing-objects, so it should be minor. As future work, we may consider giving this type more responsibility, or figuring out how to better merge duplicates, but as this is just a template-argument collection at the moment, there isn't much value to it. Differential Revision: https://reviews.llvm.org/D136451
-
Adrian Kuegel authored
-
Sanjay Patel authored
Try to get better coverage for the pattern-matching possibilities in D136015.
-
Sanjay Patel authored
This gets the tests closer to the form that we are trying to test in D136015. Note that the IR has changed, but the check lines have not changed. This also shows that the desired commuted pattern coverage is not as expected.
-
Arthur Grillo authored
When checking for non null arguments the wrong SourceLocation was given, this fix to pass the proper argument's location. Fixes #58273 Differential Revision: https://reviews.llvm.org/D136355
-
Matthias Springer authored
There was a bug in scf.for loop bufferization that could lead to a missing buffer copy (alloc was there, but not the copy). Differential Revision: https://reviews.llvm.org/D135053
-
Sjoerd Meijer authored
This adds Clang command line support for the NVIDIA Grace CPU [1], which we would like to target with -mcpu=grace. Grace is based on the Arm Neoverse V2 CPU [1], which is why, in the driver, we pass neoverse-v2 to the compiler when grace is requested. Thus, for now, it's an alias to Neoverse V2. This adds support for grace in user-facing tool Clang, but not yet the developer tools like opt and llc, so we probably want to follow up on this. [1] https://www.nvidia.com/en-us/data-center/grace-cpu/ Differential Revision: https://reviews.llvm.org/D136425
-
Petar Avramovic authored
Recognize when sub-vectors have been split to elements which are used to build large vector. This happens when instructions have different vector sizes available. For example a few arithmetic instruction are required to process all elements of larger vector that can be stored using one instruction. Differential Revision: https://reviews.llvm.org/D109242
-
Petar Avramovic authored
Recognize when source could have been unmerged to pieces with DstTy without having to split source to smaller elements and then merge small elements into DstTy pieces. This happens when vector was meant to be split to sub-vectors but there was leftover. At this point artifact combiner have already dealt with leftover and we can continue to use sub-vectors. Differential Revision: https://reviews.llvm.org/D109241
-
Petar Avramovic authored
Recognize copy that is represented as split of a source register to elements that were reassembled to another register with the same type. Differential Revision: https://reviews.llvm.org/D109240
-
Petar Avramovic authored
Differential Revision: https://reviews.llvm.org/D117655
-
Nico Weber authored
-
Benjamin Maxwell authored
The lack of this attribute (particularly on the load intrinsics) prevented InstCombine from optimizing away allocas and memcpys for arrays that could be read directly from rodata. This now also includes a new test to check the masked load/store intrinsics have the expected attributes (specifically nocapture). Differential Revision: https://reviews.llvm.org/D135656
-
Guillaume Chatelet authored
This was broken by https://reviews.llvm.org/D136351
-
Guillaume Chatelet authored
-
Guillaume Chatelet authored
`cpp::byte` is better than `char` which -depending on platform- can be `signed char` or `unsigned char`. This has introduced subtle arithmetic errors.
-
David Green authored
This switches the v8.5-a FRINT intrinsics over to be target-gated, behind preprocessor defines. This one is pretty simple, being AArch64 only. Differential Revision: https://reviews.llvm.org/D135646
-
Michał Górny authored
Move include_directories() declaration before gtest targets are created in standalone build. This fixes build failure due to gtest targets being unable to find LLVM headers, e.g.: /var/tmp/portage/dev-util/lldb-16.0.0_pre20221023/work/llvm/utils/unittest/googletest/include/gtest/internal/custom/raw-ostream.h:43:10: fatal error: llvm/ADT/Optional.h: No such file or directory Differential Revision: https://reviews.llvm.org/D136552 -
David Spickett authored
RegisterInfo is often initialised with a memcpy, and ContextInfo does not run destructors for anything within it. This was discussed in https://reviews.llvm.org/D134041. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D136584
-
Guillaume Chatelet authored
-
Guillaume Chatelet authored
-
Simon Pilgrim authored
getNonRedundantWriteProcRes was assuming that tblgen topologically sorted the cpu ModelProcResources[] arrays so that resource units were declared before the resource groups that used them, but unfortunately that doesn't appear to be true - in most cases it was just getting lucky based off the alphanumeric sorting that was being performed and the choice of the resource pipe names in most scheduler models (Intel models in particular). This patch adds an explicit sort, based off llvm-mca's initializeUsedResources, that sorts by resource mask - I'm hoping this basic sorting is enough, I don't think overlapping groups or Super resources are a problem. I'd like to take this further in the future and start sharing more code between llvm-mca and llvm-exegesis - while triaging this bug I saw how similar both approaches are, but are just dissimilar enough that any refactor isn't going to be trivial :( Working with @courbet on a follow up unit test Fixes #58500 Fixes #37045 Differential Revision: https://reviews.llvm.org/D136351
-
Simon Pilgrim authored
If the upper half of an abs() is all sign bits, then we can perform the abs() using just the lower half and then zero extend. I've limited the DAG combine to only sign_extend_inreg (and free truncate/zero_extend) to minimise any later promotion issues, but for legalization a similar fold can use ComputeNumSignBits to be more aggressive. Alive2: https://alive2.llvm.org/ce/z/y32fS4 Fixes #43370 Differential Revision: https://reviews.llvm.org/D136559
-
Guillaume Chatelet authored
This version is more composable and also simpler at the expense of being more explicit and more verbose. This patch provides rationale for the framework, implementation and unit tests but the functions themselves are still using the previous version. The change in implementation will come in a follow up patch. Differential Revision: https://reviews.llvm.org/D136292
-
Piyou Chen authored
Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D136570
-
LLVM GN Syncbot authored
-
Carlos Alberto Enciso authored
llvm-debuginfo-analyzer is a command line tool that processes debug info contained in a binary file and produces a debug information format agnostic “Logical View”, which is a high-level semantic representation of the debug info, independent of the low-level format. The code has been divided into the following patches: 1) Interval tree 2) Driver and documentation 3) Logical elements 4) Locations and ranges 5) Select elements 6) Warning and internal options 7) Compare elements 8) ELF Reader 9) CodeView Reader Full details: https://discourse.llvm.org/t/llvm-dev-rfc-llvm-dva-debug-information-visual-analyzer/62570 This patch: Compare elements - Support for logical elements comparison. See '--compare' options. LVCompare Reviewed By: psamolysov, probinson Differential Revision: https://reviews.llvm.org/D125782
-
Matthias Springer authored
`getDestinationOperands` was almost a duplicate of `DestinationStyleOpInterface::getOutputOperands`. Now that the interface has been moved to mlir/Interfaces, it is no longer needed. Differential Revision: https://reviews.llvm.org/D136240
-
Kazu Hirata authored
-
Kazu Hirata authored
-
gonglingqin authored
For now, only support lowering frame/return address for current frame. Differential Revision: https://reviews.llvm.org/D136215
-
Adrian Kuegel authored
-
River Riddle authored
This adds a subset of the necessary metadata for defining debug info in the LLVM dialect. It doesn't import everything, but just enough to start actually generating LLVM debug info the expected way. Export/Import to LLVMIR will be added in a followup. Differential Revision: https://reviews.llvm.org/D136542
-
River Riddle authored
We currently only support one level of aliases, which isn't great in situations where an attribute/type can have multiple duplicated components nested within it(e.g. debuginfo metadata). This commit refactors alias generation to support nested aliases, which requires changing alias grouping to take into account the depth of child aliases, to ensure that attributes/types aren't printed before the aliases they use. The only real user facing change here was that we no longer print 0 as an alias suffix, which would be unnecessarily expensive to keep in the new alias generation method (and isn't that valuable of a behavior to preserve). Differential Revision: https://reviews.llvm.org/D136541
-
River Riddle authored
We currently wrap all multi-bit cases with a string, but this is overly restrictive. This commit refactors to use keywords when we know they are valid, and only degrade to string when the validity of the bitgroup is unknown. Differential Revision: https://reviews.llvm.org/D136540
-
Michael Buch authored
Tests that `CPlusPlusLanguage::MethodName` can parse demangled names that contain references to C-arrays. Example taken from libcxx API in the wild.
-
Muhammad Omair Javaid authored
This patch adds AArch64 to the LP64 feature to avoid running LLP64 incompatible test on AArch64/Windows platform. Differential Revision: https://reviews.llvm.org/D136070
-
Pierre van Houtryve authored
Switch to autogenerated tests so we can use the same test for GISel and DAGIsel. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D136446
-
Kazu Hirata authored
This patch fixes: mlir/include/mlir/IR/PatternMatch.h:1092:63: warning: parameter ‘values’ set but not used [-Wunused-but-set-parameter]
-