- Sep 24, 2021
-
-
Dmitry Vyukov authored
The stress test does various assorted things (memory accesses, function calls, atomic operations, thread creation/join, intercepted libc calls) in multiple threads just to stress various parts of the runtime. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110416
-
Hans Wennborg authored
It caused compiler crashes, see comment on the code review for repro. > This is basically D108837 but for jump threading. Free instructions > should be ignored for the threading decision. JumpThreading already > skips some free instructions (like pointer bitcasts), but does not > skip various free intrinsics -- in fact, it currently gives them a > fairly large cost of 2. > > Differential Revision: https://reviews.llvm.org/D110290 This reverts commit 1e3c6fc7.
-
Dmitry Vyukov authored
Add a test for __tsan_flush_memory() and for background flushing of the runtime memory. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D110409
-
Nico Weber authored
This reverts commit 5ce89279. Makes clang crash, see comments on https://reviews.llvm.org/D109844
-
Frederic Cambus authored
In build_symbolizer.sh we can safely remove the -eu argument from the shebang (which is an unportable construct), as the scripts sets **-e** and **-u** already. Differential Revision: https://reviews.llvm.org/D110039
-
Cullen Rhodes authored
Identified in D109359. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D109598
-
Michał Górny authored
Refactor Socket::DecodeHostAndPort() to use LLVM API over redundant LLDB API. In particular, this means llvm::Regex, llvm::Error return type and llvm::to_integer(). While at it, change the port type from int32_t to uint16_t. The method never returns any value outside this range, and using the correct type allows us to rely on getAsInteger()'s implicit overflow check. Differential Revision: https://reviews.llvm.org/D110391
-
David Sherwood authored
There are several places in the code that are currently broken where we assume an Instruction is always a member of a BasicBlock that lives in a Function. This is a problem specifically when attempting to get the vscale_range attribute. This patch adds checks that an Instruction's parent also has a parent! I've added a test for a function-less @llvm.vscale intrinsic call here: unittests/Analysis/ValueTrackingTest.cpp
-
Valentin Clement authored
Add support to create unique name for namelist group and be able to deconstruct them. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D110331 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
Michał Górny authored
This reverts commit a6daf992. It causes buildbot regressions, I'll investigate.
-
Michał Górny authored
Refactor Socket::DecodeHostAndPort() to use LLVM API over redundant LLDB API. In particular, this means llvm::Regex, llvm::Error return type and llvm::to_integer(). While at it, change the port type from int32_t to uint16_t. The method never returns any value outside this range, and using the correct type allows us to rely on getAsInteger()'s implicit overflow check. Differential Revision: https://reviews.llvm.org/D110391
-
Jay Foad authored
In repairIntervalsInRange, if the new instructions refer to subregs but the old instructions did not, make sure any existing live interval for the superreg is updated to have subranges. Also skip repairing any range that we have recalculated from scratch, partly for efficiency but also to avoids some cases that repairOldRegInRange can't handle. The existing test/CodeGen/AMDGPU/twoaddr-regsequence.mir provides some test coverage for this change: when TwoAddressInstructionPass converts REG_SEQUENCE into subreg copies, the live intervals will now get subranges and MachineVerifier will verify that the subranges are correct. Unfortunately MachineVerifier does not complain if the subranges are not present, so the test also passed before this patch. This patch also fixes ~800 of the ~1500 failures in the whole CodeGen lit test suite when -early-live-intervals is forced on. Differential Revision: https://reviews.llvm.org/D110328
-
Jay Foad authored
The fix applied in D23303 "LiveIntervalAnalysis: fix a crash in repairOldRegInRange" was over-zealous. It would bail out when the end of the range to be repaired was in the middle of the first segment of the live range of Reg, which was always the case when the range contained a single def of Reg. This patch fixes it as suggested by Matthias Braun in post-commit review on the original patch, and tests it by adding -early-live-intervals to a selection of existing lit tests that now pass. (Note that D23303 was originally applied to fix a crash in SILoadStoreOptimizer, but that is now moot since D23814 updated SILoadStoreOptimizer to run before scheduling so it no longer has to update live intervals.) Differential Revision: https://reviews.llvm.org/D110238 Unrevert with some changes to the tests: - Add -verify-machineinstrs to check for remaining problems in live interval support in TwoAddressInstructionPass. - Drop test/CodeGen/AMDGPU/extract-load-i1.ll since it suffers from some of those remaining problems.
-
Joachim Meyer authored
They create a new vector with the list, so they can be const. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D110394
-
Arjun P authored
Add support for intersecting, subtracting, complementing and checking equality of sets having divisions. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D110138
-
Alex Zinenko authored
This canonicalization pattern complements the tensor.cast(pad_tensor) one in propagating constant type information when possible. It contributes to the feasibility of pad hoisting. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D110343
-
Congzhe Cao authored
When moving an entire basic block BB before InsertPoint, currently we check for all instructions whether the operands dominates InsertPoint, however, this can be improved such that even an operand does not dominate InsertPoint, as long as it appears as a previous instruction in the same BB, it is safe to move. Reviewed By: Whitney Differential Revision: https://reviews.llvm.org/D110378
-
Stephen Tozer authored
Fixes issue found on greendragon buildbot, in which an incorrectly indented statement following an if block led to entire frames being dropped instead of simply filtering unneeded watches. This reverts commit 1f44fa3a.
-
Denys Petrov authored
[analyzer] Retrieve a value from list initialization of constant array declaration in a global scope. Summary: Fix the point that we didn't take into account array's dimension. Retrieve a value of global constant array by iterating through its initializer list. Differential Revision: https://reviews.llvm.org/D104285 Fixes: https://bugs.llvm.org/show_bug.cgi?id=50604
-
David Spickett authored
This reverts commit 0c2a4548. This was my mistake. When gdb can find its data directory it'll import it automatically. If it can't (like when you're using a version from a build folder) you need to give it the data directory path. We're safe to assume gdb is installed for testing purposes so it'll import it for us.
-
Hsiangkai Wang authored
Add the tail policy argument to Clang builtins. There are two policies for tail elements. Tail agnostic means users do not care about the values in the tail elements and tail undisturbed means the values in the tail elements need to be kept after the operation. In order to let users control the tail policy, we add an additional argument at the end of the argument list. For unmasked operations, we have no maskedoff and the tail policy is always tail agnostic. If users want to keep tail elements under unmasked operations, they could use all one mask in the masked operations to do it. So, we only add the additional argument for masked operations for most cases. There are exceptions listed below. In this patch, we do not handle the following cases to reduce the complexity of the patch. There could be two separate patches for them. Use dest argument to control tail policy vmerge.vvm/vmerge.vxm/vmerge.vim (add _t builtins with additional dest...
-
Hsiangkai Wang authored
Add the tail policy argument to LLVM IR intrinsics. There are two policies for tail elements. Tail agnostic means users do not care about the values in the tail elements and tail undisturbed means the values in the tail elements need to be kept after the operation. In order to let users control the tail policy, we add an additional argument at the end of the argument list. For unmasked operations, we have no maskedoff and the tail policy is always tail agnostic. If users want to keep tail elements under unmasked operations, they could use all one mask in the masked operations to do it. So, we only add the additional argument for masked operations for most cases. There are exceptions listed below. In this patch, we do not handle the following cases to reduce the complexity of the patch. There could be two separate patches for them. * Use dest argument to control tail policy vmerge.vvm/vmerge.vxm/vmerge.vim (add _t builtins with additional dest argument) vfmerge.vfm (add _t builtins with additional dest argument) vmv.v.v (add _t builtins with additional dest argument) vmv.v.x (add _t builtins with additional dest argument) vmv.v.i (add _t builtins with additional dest argument) vfmv.v.f (add _t builtins with additional dest argument) vadc.vvm/vadc.vxm/vadc.vim (add _t builtins with additional dest argument) vsbc.vvm/vsbc.vxm (add _t builtins with additional dest argument) * Always has tail argument for masked/unmasked intrinsics Vector Single-Width Integer Multiply-Add Instructions (add _t and _mt builtins) Vector Widening Integer Multiply-Add Instructions (add _t and _mt builtins) Vector Single-Width Floating-Point Fused Multiply-Add Instructions (add _t and _mt builtins) Vector Widening Floating-Point Fused Multiply-Add Instructions (add _t and _mt builtins) Vector Reduction Operations (add _t and _mt builtins) Vector Slideup Instructions (add _t and _mt builtins) Vector Slidedown Instructions (add _t and _mt builtins) Discussion: https://github.com/riscv/rvv-intrinsic-doc/pull/101 Differential Revision: https://reviews.llvm.org/D105092
-
Simon Pilgrim authored
Testing on a SLM box suggests these can run on either port, but the throughput is 4cy on either (inc MMX versions). Confirmed with Intel AoM / Agner / InstLatX64.
-
Simon Pilgrim authored
Record is a SmallVector<uint64_t, 1024> - we really need to avoid passing this by value. Avoid unnecessary big copies, reported by coverity.
-
David Spickett authored
Earlier versions of GDB do not do this automatically. (from my checks 8.3 does not and 9.2 does)
-
David Sherwood authored
There are several places in the code that are currently broken as they assume an Instruction always has a parent Function when attempting to get the vscale_range attribute. This patch adds checks that an Instruction has a parent. I've added a test for a parentless @llvm.vscale intrinsic call here: unittests/Analysis/ValueTrackingTest.cpp Differential Revision: https://reviews.llvm.org/D110158
-
gbreynoo authored
This change is to keep the help text and command guide of objcopy in tandem. - In the help output the options --rename-section and --set-section-flags were missing the flag exclude, which is found in the command guide. - In the command guide the alias -G for --keep-global-symbol was missing, which is found in the help output. Differential Revision: https://reviews.llvm.org/D110340 -
Dmitri Gribenko authored
-
David Spickett authored
I found this after upgrading from Ubuntu bionic (gdb 8.1.1) to Focal (gdb 9.2). (where this test fails, but that's for a different patch) 9.2 allows you to set breakpoint commands from Python, which was added in 8.3. (bintutils a913fffbdee21fdd50e8de0596358be425775678 "Allow breakpoint commands to be set from Python") The reason this test never failed before was because it did so silently. "source <python file>" doesn't fail even if that script raises an Exception. To fix this extend the gdb lit feature to check that: * gdb exists * has Python support * allows you to set breakpoint commands Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D110334
-
Jonas Paulsson authored
The type legalizer has by default no method of doing this bitcast other than storing and reloading the value from stack. This patch implements a custom lowering of this operation using extractions of subregs (z13 and earlier using FP128 register pairs), or of vector elements (with 'vector enhancements 1' using VR128 FP registers). Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D110346
-
David Green authored
Instead of relying on many volatile loads/stores in a single function, rewrite the test to use separate functions as any other test would.
-
Matthias Springer authored
* Do not discard static result type information that cannot be inferred from lower/upper padding. * Add optional argument to `PadTensorOp::inferResultType` for specifying known result dimensions. Differential Revision: https://reviews.llvm.org/D110380
-
Petr Hosek authored
When statically linking C++ standard library, we shouldn't add -Bdynamic after including the library on the link line because that might override user settings like -static and -static-pie. Rather, we should surround the library with --push-state/--pop-state to make sure that -Bstatic only applies to C++ standard library and nothing else. This has been supported since GNU ld 2.25 (2014) so backwards compatibility should no longer be a concern. Differential Revision: https://reviews.llvm.org/D110128
-
Amara Emerson authored
Odd switch case types cause a crash in the conversion to MVT. Instead use a pointer sized scalar type which is what SDAG does in these cases.
-
Ludovic Jozeau authored
Fix little inconsistency and use `std::string` (which is used everywhere else) instead of `string` Reviewed By: MyDeveloperDay, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D108765
-
mydeveloperday authored
[clang-format] ensure clang-format command-line argument sets up the default left/right qualifier ordering When specifying the alignment direction on the command line ensure we set up the default ordering. Fix spelling mistakes in the command-line argument Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D110359
-
Pavel Labath authored
We need a different flag combination to produce .debug_frame.
-
mydeveloperday authored
-
Amara Emerson authored
It was assuming that GPR extends could only have destination sizes of 32 or 64 bits, but for AArch64 we allow < 32 bits even without matching size physregs.
-
Lang Hames authored
This is an ORC-runtime counterpart to LLVM commit ef391df2, and the motivation is the same: to move to a shorter name to improve the ergonomics of this type before it's more widely adopted.
-