- Mar 23, 2022
-
-
Jacques Pienaar authored
Add method to tag classes/defs as deprecated. Previously deprecations were only verbally communicated and folks didn't have an active warning while building about impending removal. Add mechanism to tag defs as deprecated to allow warning users. This doesn't change any policy, it just moves deprecation warnings from comments to something more user visible. Differential Revision: https://reviews.llvm.org/D122164
-
Jonas Devlieghere authored
Avoid "TERM environment variable not set" by either propagating the TERM environment variable or defaulting to vt100. All of our CI is already doing this explicitly through the --env dotest arg, but it's easy to forget when setting up a new job. I don't see any downside in making it the default.
-
Cynthia Shen authored
Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D122197
-
Marcus Johnson authored
This is anticipated to be used in new format specifier checking code.
-
Simon Pilgrim authored
We were still checking test results with the CHECK prefix but they had bit-rotted since whenever it'd been removed from the --check-prefixes list
-
Craig Topper authored
On RV32, we need to type legalize i64 scalar arguments to intrinsics. We usually do this by splatting the value into a vector separately. If the scalar happens to be sign extended, we can continue using a .vx intrinsic. We already special cased sign extended constants, this extends it to any sign extended value. I've only added tests for one case of vadd. Most intrinsics go through the same check. Reviewed By: khchen Differential Revision: https://reviews.llvm.org/D122186
-
Aaron Ballman authored
These diagnostics were added to a diagnostic group, but that diagnostic group was not under -Wgnu. I've now split them into their own diagnostic group that is added both to the original group (so user's currently opting in or out of these should not see a change) and under the -Wgnu group so that -Wno-gnu can be used to disable all GNU extension diagnostics. This fixes Issue 54444.
-
Craig Topper authored
The mask being NoRegister prevented the existing aliases from matching since NoRegister isn't in the VMV0 register class. To workaround this I've added new aliases that look for zero_reg. I had to motify tablegen to generate matching code for zero_reg. And as a consequence, I had to change the EmitPriority for an ARM alias that used zero_reg that started printing. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D121496
-
Zakk Chen authored
1. Rename nomask as unmasked to keep with the terminology in the spec. 2. Merge UnMaskpolicy and Maskedpolicy arguments into one in RVVBuiltin class. 3. Rename HasAutoDef as HasBuiltinAlias. 4. Move header definition code into one class. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120870
-
Craig Topper authored
This adds LLVMAnyPointerToElt to use instead of LLVMPointerToElt. This allows us to preserve the address space as part of the type overload for the intrinsic, but still require the vector element type to match the pointer type. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D122042
-
Nathan Sidwell authored
Add support for module name demangling. We have two new demangler nodes -- ModuleName and ModuleEntity. The former represents a module name in a hierarchical fashion. The latter is the combination of a (name) node and a module name. Because module names and entity identities use the same substitution encoding, we have to adjust the flow of how substitutions are handled, and examine the substituted node to know how to deal with it. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D119933
-
Louis Dionne authored
Flip the logic around: always default to libc++ except on older platforms, instead of defaulting to libstdc++ except on newer platforms. Since roughly all supported platforms use libc++ now, it makes more sense to make that the default, and allows the removal of some downstream diff. Differential Revision: https://reviews.llvm.org/D122232
-
Hendrik Greving authored
Allows for skipping the pointer to vector type if opaque pointers are enabled and the matching pointer is a vector pointer when matching an intrinsic signature in the verifier. No test added since lacking a target using intrinsic with pointer to vector arguments. Differential Revision: https://reviews.llvm.org/D122203
-
Alex Bradbury authored
D114979 changed the textual formal of ref.null - dropping ref.null in favour of ref.null_extern and ref.null_func. Therefore, the type checker no longer needs logic to handle "ref.null". Differential Revision: https://reviews.llvm.org/D122123
-
Alex Bradbury authored
While looking at bugs like PR54022, I noted that there is no real test coverage for the asm type checker. This patch starts to address that, adding a series of tests for the errors messages produced, as well as some FIXMEs as an XFAIL test for some current issues. It's not intended to be an exhaustive test, but does have test cases for each of the instructions that the type checker has specific handling for. Differential Revision: https://reviews.llvm.org/D122020
-
Walter Erquinigo authored
Some links were not rendered correctly in the intel pt documentation and some spacing was fixed in some command objects.
-
- Mar 22, 2022
-
-
Nikita Popov authored
-
Valentin Clement authored
Fix for buildbot failure shown after fe252f8e
-
Kiran Chandramohan authored
The intrinsic computes the square root for real and complex numbers. By default they are lowered to runtime calls to libpgmath. With the llvm option, it can be lowered to llvm intrinsics (not all types .eg. complex are supported for llvm lowering). This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: schweitz Differential Revision: https://reviews.llvm.org/D122018 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com>
-
Zakk Chen authored
intrinsics. Those operations are updated under a tail agnostic policy, but they could have mask agnostic or undisturbed. Reviewed By: rogfer01 Differential Revision: https://reviews.llvm.org/D120228
-
Sanjay Patel authored
There's a potential miscompile or missed optimization with propagating 'nsw' in the transform proposed in D122013, so we need at least one more test for coverage.
-
Valentin Clement authored
In FIR, we want to wrap function pointers in a special box known as a boxproc value. Fortran has a limited form of dynamic scoping [https://tinyurl.com/2p8v2hw7] between "host procedures" and "internal procedures". There are a number of implementations possible. Boxproc typed values abstract away the implementation details of when a function pointer can be passed directly (as a raw address) and when a function pointer has to account for the presence of a dynamic scope. When lowering Fortran syntax to FIR, all function pointers are emboxed as boxproc values. When creating LLVM IR, we must strip away the abstraction and produce low-level LLVM "assembly" code. This patch implements that transformation as converting the boxproc values to either raw function pointers or executable trampolines on the stack as needed. The trampoline then captures the dynamic scope context within an executable thunk that can be passed instead of the function's raw address. Some extra handling is required for Fortran functions that return a character value to deal with LEN values here. Some of the code in Bridge.cpp and ConvertExpr.cpp and be re-arranged to faciliate the upstreaming effort. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier, PeteSteinfeld Differential Revision: https://reviews.llvm.org/D122223 Co-authored-by:
mleair <leairmark@gmail.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com>
-
chenglin.bi authored
Baseline tests for D122013 (issue #54132).
-
Nikita Popov authored
-
Krasimir Georgiev authored
Follow-up from https://github.com/llvm/llvm-project/commit/36d13d3f8adb3d1a6bae71370afa23d11a94dc78; https://reviews.llvm.org/D121451. Restore the old behavior in situations where we use # as comments and long strings of #'s for comment sections. Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D122230
-
Florian Hahn authored
createInductionResumeValues only uses its loop argument only to get the pre-header, but the pre-header is already known (we created/cached it earlier). Remove the unneeded loop argument.
-
Pavel Labath authored
By default these timeouts are extremely small (0.1s). This means that 100ms after sending an EOF, pexpect will start sending the process increasingly aggressive signals, but the small timeouts mean that (on a loaded machine) the kernel may not have enough time to process the signal even if the overall effect of the signal is to kill the application. It turns out we were already relying on this signals (instead of regular EOF quits) in our tests. In my experiments it was sufficient to block SIGINT and SIGHUP to cause some test to become flaky. This was most likely the reason of a couple of flakes on the lldb-x86_64-debian bot, and is probably the reason why the pexpect tests are flaky on several other (e.g. asan) bots. This patch increses the timeout to 6 seconds (60-fold increase), which is hopefully sufficient to avoid flakes even in the most extreme situations.
-
Kiran Chandramohan authored
The intrinsic computes the exponent, log real and complex numbers and log10 for real numbers. By default they are lowered to runtime calls to libpgmath. kind=10 and 16 are not supported. With the llvm option, it can be lowered to llvm intrinsics (not all types .eg. complex are supported for llvm lowering). This is part of the upstreaming effort from the fir-dev branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D122132 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
William S Moses <gh@wsmoses.com>
-
Nikita Popov authored
Worth noting that the code marked with FIXME is dead and would produce invalid IR if hit. Someone familiar with this code should probably look into that.
-
Aaron Ballman authored
@mgehre-amd pointed out the following post-commit review feedback on the changes in 8cba7217: As an example, the paper says 3wb /* Yields an _BitInt(3); two value bits, one sign bit */. So I would expect that 0xFwb gives _BitInt(5); four value bits, one sign bit, but with this implementation I get _BitInt(2). This is because ResultVal as 4 bits, and getMinSignedBits() inteprets it as negative and thus says that 1 bit is enough to represent -1. This corrects the behavior for calculating the bit-width and adds some test coverage.
-
Joseph Huber authored
This patch adds a configuration option to simply use the default pass pipeline in favor of the LTO-specific one. We observed some severe performance penalties when uding device-side LTO for OpenMP offloading applications caused by the LTO-pass pipeline. This is primarily because OpenMP uses an LLVM bitcode library to implement a GPU runtime library. In a standard compilation we link this bitcode library into each source file and optimize it with the default pipeline. When performing LTO we link it late with all the files, but the bitcode library never has the regular optimization pipeline applied to it so we miss a few optimizations just using the LTO pipeline to optimize it. I'm not committed to this solution, but it's the easiest method to solve this performance regression when using LTO without changing the optimizatin pipeline for other users. Reviewed By: tianshilei1992 Differential Revision: https://reviews.llvm.org/D122133
-
Arjun P authored
Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D122149
-
Arjun P authored
[MLIR][Presburger] MultiAffineFunction::removeIdRange: fix bug where kind wasn't passed on to IntegerPolyhedron::removeIdRange Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D122158
-
Arjun P authored
Previously, an UndoLogEntry was added by addRow but not by addZeroRow. So calling directly into addZeroRow, as LexSimplex::addCut does, was not an undoable operation. In the current usage of addCut this could never lead to an incorrect result, and addZeroRow is protected, so it is not currently possible to add a regression test for this. This bug needs to be fixed for the symbolic integer lexmin algorithm. Reviewed By: Groverkss Differential Revision: https://reviews.llvm.org/D122162
-
Sanjay Patel authored
When shifting by a byte-multiple: bswap (shl X, C) --> lshr (bswap X), C bswap (lshr X, C) --> shl (bswap X), C This is an IR implementation of a transform suggested in D120648. The "swaps cancel" test models the motivating optimization from that proposal. Alive2 checks (as noted in the other review, we could use knownbits to handle shift-by-variable-amount, but that can be an enhancement patch): https://alive2.llvm.org/ce/z/pXUaRf https://alive2.llvm.org/ce/z/ZnaMLf Differential Revision: https://reviews.llvm.org/D122010
-
Djordje Todorovic authored
Before this patch the DebugifyLevel option was used for the synthetic mode, so after this, it will be used in the original mode as well. Differential Revision: https://reviews.llvm.org/D115623
-
Nikita Popov authored
Rather than iterating over users and comparing operands, iterate over uses and check operand number. Otherwise, we'll end up promoting a store twice if it has two equal operands. This can only happen with opaque pointers, as otherwise both operands differ by a level of indirection, so a bitcast would have to be involved. Fixes https://github.com/llvm/llvm-project/issues/54495.
-
Igor Kudrin authored
NVPTX does not support generating binary files, which is required for these tests. The majority of tests in 'DebugInfo/Generic' also require emitting object files, so they all are disabled for NVPTX. Differential Revision: https://reviews.llvm.org/D121996
-
Igor Kudrin authored
If 'config.target_triple' is empty, there is no sense to define the 'object-emission' tag. Differential Revision: https://reviews.llvm.org/D121994
-
Igor Kudrin authored
For '-filetype=null', 'NVPTXTargetStreamer' is not created, so the return value of 'OutStreamer->getTargetStreamer()' should be checked before calling the methods. Differential Revision: https://reviews.llvm.org/D122001
-