- Jan 03, 2024
-
-
Michael Holman authored
There is a bit of an issue with how `mlir-linalg-ods-yaml-gen` is classified in the MLIR build. Due to it being a tool, it is excluded from the install when using `-DLLVM_BUILD_TOOLS=OFF`. However, it is a necessary component of the build, so it can cause build issues with users of the installed LLVM, and so I think it should not be excluded. It is a tablegen-like tool, so my solution is to reclassify it that way in the build.
-
David CARLIER authored
-
Aart Bik authored
COO has been supported for a while now on both lib and codegen path. So enabling this test for all paths and removing obsolete FIXME
-
Alexey Bataev authored
-
Felix Schneider authored
Currently, there exists a pattern lowering `tosa.transpose` to `linalg.generic` in `tosa-to-linalg`. This patch removes that and instead adds a pattern lowering `tosa.transpose` to `linalg.transpose` in `tosa-to-linalg-named`. Lowering to the named linalg Op has the advantage that following optimization passes can easily identify transposition without having to perform pattern matching on linalg.generic Ops. The `linalg.transpose` can simply be generalized to a `linalg.generic` in a second step.
-
Alexander Shaposhnikov authored
Add "abs(x) >=s x" fact. https://alive2.llvm.org/ce/z/gOrrU3 Test plan: ninja check-all
-
Karthika Devi C authored
There is no upper cap set on current Schedule Optimizer to compute schedule. In some cases a very long compile time taken to compute the schedule resulting in hang kind of behavior. This patch introduces a flag 'polly-schedule-computeout' to pass the capwhich is initialized to 300000. This patch handles the compute out cases by bailing out and exiting gracefully. Fixes #69090
-
lntue authored
-
Katherine Rasmussen authored
Add `notify-type` to `iso_fortran_env` module. Add `notify-wait-stmt` to the parser and add checks for constraints on the statement, `C1177` and `C1178`, from the Fortran 2023 standard. Add three semantics tests for `notify-wait-stmt`.
-
walter erquinigo authored
https://lab.llvm.org/buildbot/#/builders/96/builds/50702/steps/6/logs/stdio requires checking for multiple error messages
-
Piotr Zegar authored
Some checks were recently moved from alpha stage. Manualy running gen-static-analyzer-docs.py to generate missing documentation for Clang-tidy.
-
Dimitry Andric authored
After 05a4212c a number of long double related declarations are enabled in `int_types.h`, whenever the CPU architecture and platform support it. However, this does not work with FreeBSD's standalone environment, which disallows any use of floating point. In add98b24 this was made conditional with `CRT_HAS_FLOATING_POINT`, so extend the block guarded by that define to include all floating point related declarations.
-
Mingming Liu authored
[RawProfReader]When constructing symbol table, read the MD5 of function name in the proper byte order (#76312) Before this patch, when the field `NameRef` is generated in little-endian systems and read back in big-endian systems, the information gets dropped. - The bug gets caught by a buildbot https://lab.llvm.org/buildbot/#/builders/94/builds/17931. In the error message (pasted below), two indirect call targets are not imported. ``` ; IMPORTS-DAG: Import _Z7callee1v ^ <stdin>:1:1: note: scanning from here main.ll: Import _Z11global_funcv from lib.cc ^ <stdin>:1:10: note: possible intended match here main.ll: Import _Z11global_funcv from lib.cc ^ Input file: <stdin> Check file: /home/uweigand/sandbox/buildbot/clang-s390x-linux/llvm/llvm/test/Transforms/PGOProfile/thinlto_indirect_call_promotion.ll -dump-input=help explains the following input dump. Input was: <<<<<< 1: main.ll: Import _Z11global_funcv from lib.cc dag:34'0 X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found dag:34'1 ? possible intended match ``` [This commit](https://github.com/llvm/llvm-project/commit/b3999246b1a93bd8e6dc7acac36a7d57fac96542#diff-b196b796c5a396c7cdf93b347fe47e2b29b72d0b7dd0e2b88abb964d376ee50e) gates the fix by flag and provide test data by creating big-endian profiles (rather than reading the little-endian data on a big-endian system that might require a VM). - [This](https://github.com/llvm/llvm-project/commit/b3999246b1a93bd8e6dc7acac36a7d57fac96542#diff-643176077ddbe537bd0a05d2a8a53bdff6339420a30e8511710bf232afdda8b9) is a hexdump of little-endian profile data, and [this](https://github.com/llvm/llvm-project/commit/b3999246b1a93bd8e6dc7acac36a7d57fac96542#diff-1736a3ee25dde02bba55d670df78988fdb227e5a85b94b8707cf182cf70b28f0) is the big-endian version of it. - The [README.md](https://github.com/llvm/llvm-project/commit/b3999246b1a93bd8e6dc7acac36a7d57fac96542#diff-6717b6a385de3ae60ab3aec9638af2a43b55adaf6784b6f0393ebe1a6639438b) shows the result of `llvm-profdata show -ic-targets` before and after the fix when the profile is in big-endian.
-
Alexandros Lamprineas authored
llvm/lib/IR/Type.cpp:694: Assertion `isValidElementType(ElementType) && "Element type of a VectorType must be an integer, floating point, or pointer type."' failed. Stack dump: llvm::FixedVectorType::get(llvm::Type*, unsigned int) llvm::VPWidenCallRecipe::execute(llvm::VPTransformState&) llvm::VPBasicBlock::execute(llvm::VPTransformState*) llvm::VPRegionBlock::execute(llvm::VPTransformState*) llvm::VPlan::execute(llvm::VPTransformState*) ... Happens with function calls of void return type. -
Arthur Eubanks authored
This reverts commit 61999b18. See comments on https://github.com/llvm/llvm-project/pull/75841. This was intended to be NFC but actually isn't.
-
Walter Erquinigo authored
In order to allow smarter vscode extensions, it's useful to send additional structured information of SBValues to the client. Specifically, I'm now sending error, summary, autoSummary and inMemoryValue in addition to the existing properties being sent. This is cheap because these properties have to be calculated anyway to generate the display value of the variable, but they are now available for extensions to better analyze variables. For example, if the error field is not present, the extension might be able to provide cool features, and the current way to do that is to look for the `"<error: "` prefix, which is error-prone. This also incorporates a tiny feedback from https://github.com/llvm/llvm-project/pull/74865#issuecomment-1850695477
-
Dmitry Vasilyev authored
Added -p / --no-params flag to skip demangling function parameters similar to how it is supported by GNU c++filt tool. There are cases when users want to demangle a large number of symbols in bulk, for example, at startup, and do not care about function parameters and overloads at that time. Skipping the demangling of parameter types led to a measurable improvement in performance. Our users reported about 15% speed up with GNU c++filt and we expect similar results with llvm-cxxfilt with this patch.
-
Stefan Gränitz authored
Test failures were reported after https://github.com/llvm/llvm-project/pull/76244 landed. Let's revisit these tests now that we have native Mach-O debug support as well.
-
Wei Wang authored
Make the hoisted dbg.declare inherent the DILocation scope from the new storage. After hoisting, the dbg.declare is moved into the block that defines the new storage. This could create an inconsistency in the debug location scope hierarchy where the scope of hoisted dbg.declare (i.e. DILexicalBlock) is enclosed with the scope of the block (i.e. DISubprogram). This confuses LiveDebugValues pass to think that the hoisted dbg.declare is killed in that block and does not generate DBG_VALUE in other blocks. Debugger won't be able to track its value anymore. We do this for unoptimized binary only.
-
Craig Topper authored
If there's no shift being performed, the rounding mode doesn't matter. We could do the same for vssra and vssrl, but they are no-ops with a shift of 0 so would be better off being removed earlier.
-
Peter Klausler authored
When an input data-list has more items than can be read by a format from the input record (e.g., "(4I5)" reading "1 2"), don't return false from EditIntegerInput() just because nothing was read -- that will prevent later items from being set to zero, as they should be. Return true unless nothing was read and there is some kind of error pending. Fixes llvm-error-tests/Fortran/gfortran/regression/pr478478.f90.
-
Cyndy Ishida authored
-
Peter Klausler authored
The I/O runtime's API allows -1 to be passed for a unit number in a READ, WRITE, or PRINT statement, where it gets replaced by 5 or 6 as appropriate. This turns out to have been a bad idea, as it prevents the I/O runtime from detecting and reporting a program's invalid attempt to use -1 as an I/O unit number. So just pass 5 or 6 as appropriate.
-
Peter Klausler authored
The code to fold NEAREST would return a value that's too large when transitioning from a normal number to a subnormal. Fixes llvm-test-suite/Fortran/gfortran/regression/nearest_1.f90.
-
Han-Chung Wang authored
A tensor.pack op can be rewritten to a tensor.expand_shape op if the packing only happens on inner most dimension. This also formats the lit checks better.
-
Peter Klausler authored
Fortran 2023 subclause 13.7.2.3.8 discusses input rounding only in the context of decimal-to-binary conversion. There is no mention of rounding for hexadecimal floating-point input conversion. At least one Fortran compiler seems to have interpreted this silence as implying no rounding. (Note that this is not the same thing as rounding to zero (RZ), which would return +/-HUGE() for overflow.)
-
Oleg Shyshkov authored
-
Peter Klausler authored
Nearly every Fortran compiler supports the extension of NAMELIST input into a storage sequence identified by its initial scalar array element. For example, &GROUP A(1) = 1. 2. 3. / should be processed as if the input had been &GROUP A(1:) = 1. 2. 3. / Fixes llvm-test-suite/Fortran/gfortran/regression/namelist_24.f90.
-
SunilKuravinakop authored
This is a continuation of https://reviews.llvm.org/D123235 ([OpenMP] atomic compare fail : Parser & AST support). In this branch Support for codegen support for atomic compare fail is being added. --------- Co-authored-by: Sunil Kuravinakop
-
Peter Klausler authored
The prescanner allows multiple spaces within a compiler directive, but not between the directive's sentinel (e.g., !DIR$) and the directive's first token. Fixes https://github.com/llvm/llvm-project/issues/76537.
-
Peter Klausler authored
The compiler requires that a Cray pointee have a SEQUENCE type, but a recent bug report points out that a BIND(C) type should also be accepted. Fixes https://github.com/llvm/llvm-project/issues/76529.
-
Peter Klausler authored
When parsing a deeply-nested expression like A1(A2(A3(A4(A5(A6(...A99(i)...)))))) the parser can get into an exponential state due to the need to consider the possibility that each "An(...)" might be the beginning of a reference to a procedure component ("An(...)%PROC(...)") so that alternative has to be attempted first before proceeding to try parsing "An(...)" as a function reference or as an array element designator. The parser for a structure component, which is used by the procedure designator parser, was not protected with the usual failure memoization technique, leading to exponentially bad behavior parsing a deeply-nested expression. Fix by exploiting the instrumented() parser combinator so that failed structure component parsers aren't repeated. Fixes https://github.com/llvm/llvm-project/issues/76477. -
Peter Klausler authored
... when it is followed eventually by the '&' that begins the next NAMELIST input group. This is a gfortran extension.
-
Peter Klausler authored
Initializers in entity-decls don't need to have their expressions analyzed immediately in name resolution unless of course they are defining the values of named constants. By deferring the expression analysis, the compiler can better handle references to module and internal procedures that might appear in structure constructors; at present, these are typically rejected as being forward references (which they can be) to subprogram names that can't yet be checked for compatibility with the characteristics of the corresponding procedure component.
-
Alex Bradbury authored
Split out from #73789, so as to leave that PR just for flipping load clustering to on by default. Clusters if the operations are within a cache line of each other (as AMDGPU does in shouldScheduleLoadsNear). X86 does something similar, but does `((Offset2 - Offset1) / 8 > 64)`. I'm not sure if that's intentionally set to 512 bytes or if the division is in error. Adopts the suggestion from @wangpc-pp to query the cache line size and use it if available. We also cap the maximum cluster size to cap the potential register pressure impact (which may lead to additional spills).
-
Thorsten Schütt authored
A first small step at combining selects.
-
Jungwook Park authored
Enable bindings. --------- Co-authored-by:jungpark-mlir <jungwook@jungwook-22.04>
-
Joseph Huber authored
Summary: The `puts` function consists of an initial write and then another write to append the newline. When executing code in parallel, it is possible for these writes to becomes disjointed. This code adds an explicit lock call to ensure that the string is always appended by the newline as the users expects. Wasn't sure if this required a test as it would be difficult since reproducing it would be flaky.
-
- Jan 02, 2024
-
-
Nikita Popov authored
-
Simon Camphausen authored
-