- Jul 07, 2023
-
-
Yusra Syeda authored
-
- Jul 06, 2023
-
-
Jeremy Furtek authored
This diff adds support for TF32 as a Builtin floating point type. This supplements the recent addition of the TF32 semantic to the LLVM APFloat class by extending usage to MLIR. https://reviews.llvm.org/D151923 More information on the TF32 type can be found here: https://blogs.nvidia.com/blog/2020/05/14/tensorfloat-32-precision-format/ Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D153705
-
Alex Langford authored
This accomplishes a few minor things: - Removed unnecessary uses of `this->` - Removed an unnecessary std::string allocation. - Removed some nesting to improve readability using early returns where it makes sense. - Replaced `strtoul` with `llvm::to_integer` which avoids another std::string allocation. - Removed braces from single statement conditions, removed else-after-returns. Differential Revision: https://reviews.llvm.org/D154534
-
Alex Langford authored
Summary: No need to create a ConstString, `GetName` already returns a StringRef. Reviewers: JDevlieghere, mib, jasonmolenda Subscribers: Differential Revision: https://reviews.llvm.org/D154386
-
zhijian authored
Summary: Adding a new option -traceback-table to print out the traceback info of xcoff ojbect file. Reviewers: James Henderson, Fangrui Song, Stephen Peckham, Xing Xue Differential Revision: https://reviews.llvm.org/D89049
-
Joseph Huber authored
The next-gen plugins didn't correctly configure tests and were never actually being run. Since deleting the old plugin we stopped getting `libomptarget` tests. This patch fixes the issue and allows the targets to be built Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D154619
-
Doru Bercea authored
Review: https://reviews.llvm.org/D153883
-
Craig Topper authored
This is the way most targets do it for a simple mapping. We can't do this for all builtins due to type overloading of the IR intrinsics. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D154567
-
Nikita Popov authored
This is required to bring CaptureTracking in line with the new semantics from D154051, as gep inbounds p, 0 is now always non-poison. There are many ways in which the inbounds special case could be preserved: If the index is known non-zero, or there is an inbounds chain down to an identified object, etc. However, I have opted to drop the special case entirely, as it appears to be low value: In cases where we can determine such things (e.g. the affected test cases) we would end up removing the compare via isGEPKnownNonNull() logic anyway. Differential Revision: https://reviews.llvm.org/D154054
-
David Spickett authored
Previously we added both `-GR-` and `-fno-rtti` if RTTI was disabled. When building with clang 16.x, that caused this error in part of the build: ``` clang-16: error: argument unused during compilation: '-G R-' [-Werror,-Wunused-command-line-argument] ``` I think the strange message is because clang is seeing `R-` as the argument to `-G`, which is a valid clang option. `-GR-` is an alternate syntax for the `/GR-` option for MSVC (the dash means disable RTTI): https://learn.microsoft.com/en-us/cpp/build/reference/gr-enable-run-time-type-information?view=msvc-170 This error is sort of fixed by cd18efb6 but not intentionally. Also, we'd have to wait for 17.x to benefit from that. The proper fix here is to only add `-GR-` if we are building with MSVC or the MSVC-like clang-cl, and add `-fno-rtti` if not. Reviewed By: #libc, simon_tatham, michaelplatings, ldionne Differential Revision: https://reviews.llvm.org/D154582
-
Leandro Lupori authored
This ensures that the __Fortran_builtins module is always used as an intrinsic module by __Fortran_type_info, which avoids issues when, for instance, the intrinsic modules dir is present in the include paths. Fixes https://github.com/llvm/llvm-project/issues/63592 Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D154452
-
Simon Pilgrim authored
Fixes #63700
-
Craig Topper authored
This matches the data type of the intrinsics. This case be seen from the removal of sext and trunc instructions from the IR. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D154577
-
songruiwang authored
We should look through implicit casts before determining the type of the arguments, and only allow explicit cast to _Nonnull to suppress warning ``` void foo(NSString *_Nonnull); foo((NSString * _Nonnull)nil); // no-warning id obj = nil; foo(obj); // should warning here (implicit cast id to NSString *_Nonnull) ``` Reviewed By: xazax.hun, steakhal Differential Revision: https://reviews.llvm.org/D154221
-
Sergei Barannikov authored
ParseStatus is slightly more convenient to use due to implicit conversion from bool, which allows to do something like: ``` return Error(L, "msg"); ``` when with MatchOperandResultTy it had to be: ``` Error(L, "msg"); return MatchOperand_ParseFail; ``` It also has more appropriate name since parse* methods are not only for parsing operands. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D154319
-
David Tenty authored
The itanium ABI for certain platforms requires a minimum alignments for member function pointers to reserve certain bits for distinguishing virtual and non-virtual functions. Our implementation of this however depends on the alignment of the function involved, which may however not reflect the true alignment of function pointers on certain targets for which the alignment is independent of the function (e.g. AIX). Worse, the 2-byte alignment we use may be less than the ABI minimum for the target, and in the case we are using explicit sections will result in invalid codegen. This patch attempts to correct this situation by considering the target alignment of function pointers as part of making the decision about whether we need to adjust the function alignment to conform to the ABI. Targets which do not provide the function ptr alignment information will return a value of 1 when queried and will conservatively retain the old alignment. Differential Revision: https://reviews.llvm.org/D147184
-
Konrad Kleine authored
Consider a setup without a system-wide installation of lit. Instead you pass the path to lit like this: ``` cmake ... -DLLVM_EXTERNAL_LIT=<PATH_TO_LIT_BINARY> ... ``` Then you will run into this error: ``` ninja: error: unknown target 'check-lld' ``` I have a buildbot builder that fails with this message. Here's the passage that triggers this error: https://github.com/llvm/llvm-zorg/blob/d3bfd5ccbceb542098c350e4d071ceceac6854cb/zorg/buildbot/builders/annotated/standalone-build.sh#L194-L239 By using `LLVM_EXTERNAL_LIT` instead of `LLVM_LIT` we fix this problem. See [here](https://llvm.org/docs/GettingStarted.html#stand-alone-builds) for a description: > Both the LLVM_ROOT and LLVM_EXTERNAL_LIT options are required to do stand-alone builds for all sub-projects. Additional required options for each sub-project can be found in the table below. Differential Revision: https://reviews.llvm.org/D154599
-
Jens Massberg authored
Differential Revision: https://reviews.llvm.org/D154580
-
Matt Arsenault authored
All this does is add uses of reserved registers, which aren't tracked by anything. Saves a loop info computation.
-
Matt Arsenault authored
The sign bit has no impact on the exponent, so strip these away. Saves on the source modifier encoding cost. I left the GlobalISel handling until there's a resolution to issue #62628. We should do this in instcombine too, but legalization should be introducing more frexps than it currently is where this would occur.
-
Paul Walker authored
Patterns already exist for 64-bit that I've simply copied and converted to include the necessary truncation. Differential Revision: https://reviews.llvm.org/D154350
-
Matthias Springer authored
Verify that the correct number of `scalable_sizes` was provided. Differential Revision: https://reviews.llvm.org/D154600
-
Florian Hahn authored
Test for https://github.com/llvm/llvm-project/issues/47927
-
Matthias Springer authored
The replacement op insertion point was off by one. Differential Revision: https://reviews.llvm.org/D154608
-
Haohai Wen authored
D154070 has added /dwodir to lld/COFF to tells LTO backend to create dwo directory and files. This patch makes clang to emit /dwodir to lld when user specify -gsplit-dwarf with LTO. This behavior is simiar to DWARF fission with LTO for ELF. A simple use case: $clang-cl -c -flto -gdwarf main.c -o main.o $clang-cl -c -flto -gdwarf a.c -o a.o $clang-cl -flto -fuse-ld=lld -gdwarf -gsplit-dwarf main.o a.o This'll generate a dwo file: main.exe_dwo/0.dwo Reviewed By: mstorsjo, MaskRay, hans Differential Revision: https://reviews.llvm.org/D154295
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Markus Böck authored
The original plan was to turn this into its own pattern, but one of the difficulties was deeming when splitting the vector is required. `SplitIntegerStores` essentially already did that by checking for field overlap. Therefore, it was renamed to `SplitStores` and extended to splitting stores with values of vector and integer type. The vector splitting is done in a simple manner by simply using `extractelement` to get each vector element. Subsequent pattern applications are responsible for further cleaning up the output and making it type-consistent. Worst case, if the code cannot be transformed into a type-consistent form (due to e.g. the code explicitly doing partial writes to elements or similar), we might needlessly do a vector split. Differential Revision: https://reviews.llvm.org/D154583
-
Markus Böck authored
Jeremy Morse noted in D154451 that LLVM doesn't drop a `dbg.value` when its value is being removed, but rather sets the operand to `undef`. This preserves the debug info and gives allows the debugger to instead inform the user that the variable has been optimized out, rather than not displaying the variable at all. This patch fixes that mistake done in the previous revision by mirroring that behaviour in MLIR as well. Differential Revision: https://reviews.llvm.org/D154476
-
Florian Hahn authored
Add test coverage for demanded bit analysis of shl.
-
Aleksandr Popov authored
Added tests on range checks with non-strick predicate: * N - IV > limit * IV - N < limit * IV + N < limit Also added tests with known to be non-negative N Differential Revision: https://reviews.llvm.org/D154593 -
Eduard Zingerman authored
Extended BPFCheckAndAdjustIR pass with sinkMinMax() transformation that undoes LICM hoistMinMax pass. The undo transformation converts the following patterns: x < min(a, b) -> x < a && x < b x > min(a, b) -> x > a || x > b x < max(a, b) -> x < a || x < b x > max(a, b) -> x > a && x > b Where 'a' or 'b' is a constant. Also supports `sext min(...) ...` and `zext min(...) ...`. Differential Revision: https://reviews.llvm.org/D147990 -
Florian Hahn authored
Include the function name + analysis when printing the analysis for testing.
-
Hans Wennborg authored
-
Simon Pilgrim authored
-
Nikita Popov authored
With the semantics change from D154051, it is no longer valid to fold gep inbounds undef to poison (unless we know the index is non-zero). Fold it to undef instead. Differential Revision: https://reviews.llvm.org/D154215
-
Renato Golin authored
Re-apply eda47fdd after implementing __truediv__ for TensorUse. [MLIR][Linalg] Add more arith named ops to linalg Following up the 'add' named op, here are the remaining basic arithmetic and maths, including a 'div_unsigned' for integer unsigned values. In the same pattern as 'matmul_unsigned', the simply named 'div' assumes signed values and the '_unsigned' variation handles the unsigned values. It's a bit odd, but there doesn't seem to be a easy way to restrict to specific types to make 'div_unsigned' only work with integers in the structured ops framework. Same as 'add', these have strict semantics regarding casts. Unary math ops will need some massaging, so I split these ones for now as I continue working on them. Differential Revision: https://reviews.llvm.org/D154524
-