- May 18, 2022
-
-
Juneyoung Lee authored
-
Ben Shi authored
Reviewed By: MaskRay differential Revision: https://reviews.llvm.org/D125544
-
Robert Suderman authored
Added handling rounding behavior in 32-bits for when possible. This avoids kernel compilation generating scalarized code on platforms where 64-bit vectors are not available. As the 48-bit lowering requires 64-bit anyway, we added a full 64-bit solution simplifying the old path. Reviewed By: dcaballe, mravishankar Differential Revision: https://reviews.llvm.org/D125583
-
Philip Reames authored
This reverts commit 79a66ec9. The stronger asserts served their purpose; I stumbled across another bug. Will reapply once this one is also fixed. The bug appears to be a variant of a previous one: * We mutate an instruction in one block. * That mutation changes the phase3 results of another block. This is very similiar to a previous issue, except cross block instead of within a single block.
-
Matthias Springer authored
Before this fix, the bufferization implementation made the incorrect assumption that the values yielded from the "before" region must match with the values yielded from the "after" region. Differential Revision: https://reviews.llvm.org/D125835
-
Sam McCall authored
-
Alexander Shaposhnikov authored
This diff adjusts binaryAnd to take advantage of the analysis based on KnownBits. Differential revision: https://reviews.llvm.org/D125603 Test plan: 1/ ninja check-llvm 2/ ninja check-llvm-unit
-
Amir Ayupov authored
Addresses the warnings emitted by Apple Clang 13.1.6 (Xcode 13.3.1). Tip @tschuett issue #55404. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D125733
-
Amir Ayupov authored
Split up the BinaryLoop header and move BinaryDominatorTree into its own header, preparing it for a standalone use. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D125664
-
Philip Reames authored
-
Nuno Lopes authored
-
Michael Jones authored
After adding sprintf, snprintf is simple. The functions are very similar. The tests only cover the behavior of the max length since the sprintf tests should cover the other behavior. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D125826
-
Eric Li authored
Sub-expressions that are logical operators are not spelled out separately in basic blocks, so we need to manually visit them when we encounter them. We do this in both the `TerminatorVisitor` (conditionally) and the `TransferVisitor` (unconditionally), which can cause cause an expression to be visited twice when the binary operators are nested 2+ times. This changes the visit in `TransferVisitor` to check if it has been evaluated before trying to visit the sub-expression. Differential Revision: https://reviews.llvm.org/D125821
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Walter Erquinigo authored
[trace][intelpt] Support system-wide tracing [6] - Break IntelPTCollector into smaller files and minor refactor IntelPTCollector is very big and has 3 classes in it. It's actually cleaner if each one has its own file. This also gives more visibility to the developer about the different kinds of "tracers" that we have. Besides that, I'm now restricting the creation of the BinaryData chunks to GetState() instead of having it in different places, which is not very clean, because the gdb-remote protocol should be as restricted as possible. Differential Revision: https://reviews.llvm.org/D125047
-
Walter Erquinigo authored
[trace][intelpt] Support system-wide tracing [5] - Disable/enable per-core tracing based on the process state When tracing on per-core mode, we are tracing all processes, which means that after hitting a breakpoint, our process will stop running (thus producing no more tracing data) but other processes will continue writing to our trace buffers. This causes a big data loss for our trace. As a way to remediate this, I'm adding some logic to pause and unpause tracing based on the target's state. The earlier we do it the better, however, I'm not adding the trigger at the earliest possible point for simplicity of this diff. Later we can improve that part. Differential Revision: https://reviews.llvm.org/D124962
-
Walter Erquinigo authored
This diffs implements per-core tracing on lldb-server. It also includes tests that ensure that tracing can be initiated from the client and that the jLLDBGetState ppacket returns the list of trace buffers per core. This doesn't include any decoder changes. Finally, this makes some little changes here and there improving the existing code. A specific piece of code that can't reliably be tested is when tracing per core fails due to permissions. In this case we add a troubleshooting message and this is the manual test: ``` /proc/sys/kernel/perf_event_paranoid set to 1 (lldb) process trace start --per-core-tracing error: perf event syscall failed: Permission denied You might need that /proc/sys/kernel/perf_event_paranoid has a value of 0 or -1. `` Differential Revision: https://reviews.llvm.org/D124858
-
LLVM GN Syncbot authored
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D125279
-
Sam McCall authored
This reverts commit ccdb56ac. Still seeing windows failures on GN bots: http://45.33.8.238/win/58316/step_9.txt Unfortunately I can't debug these at all - it's a bare unsymbolized stacktrace, and I can't reproduce the failure.
-
Stanislav Mekhanoshin authored
We always had global and scratch loads to LDS in the gfx9, but did not handle it. These were available via the 'lds' encoding bit. In gfx940 this bit was reused as 'svs' which resulted in new '_lds' opcodes effectively pushing this bit into the opcode, but functionally it is the same. These instructions are also available on gfx10. Differential Revision: https://reviews.llvm.org/D125126
-
LLVM GN Syncbot authored
-
Philip Reames authored
-
Sam McCall authored
This reverts commit 76ddbb1c.
-
Eric Li authored
Weaken the guard for whether a sub-expression has been evaluated to only check for the storage location, instead of checking for the value. It should be sufficient to check for the storage location, as we don't necessarily guarantee that a value will be set for the location (although this is currently true right now). Differential Revision: https://reviews.llvm.org/D125823
-
Philip Reames authored
This patch adds a transform to the local prepass in InsertVSETVLI which canonicalizes an AVL of a register from another vsetvli into immediate or VLMAX when VTYPE is the same. In this patch, I chose to be conservative and avoid arbitrary vreg forwarding due to profitability concerns about possibility overlapping live ranges. This has the effect of eliminating vsetvli instructions in loops which are walking either VLMAX or a constant number of lanes per iteration. Differential Revision: https://reviews.llvm.org/D125812
-
Michael Jones authored
This adds the sprintf entrypoint, as well as unit tests. Currently sprintf only supports %%, %s, and %c, but the other conversions are on the way. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D125573
-
Sanjay Patel authored
shuffle (cast X), (cast Y), Mask --> cast (shuffle X, Y, Mask) This extends the transform added with 0353c2c9. If the casts are to a larger element type, the transform reduces shuffle bit width, so that should be a win for most codegen (if not, it can be inverted).
-
Sam McCall authored
- add missing benchmark for lex/preprocess steps - name benchmarks after the function they're benchmarking, when appropriate - remove unergonomic "run" prefixes from benchmark names - give a useful error message if --grammar or --source are missing - Use realistic example of how to run, run all benchmarks by default. (for someone who doesn't know the commands, this is the most useful action) - Improve typos/wording in comment - clean up unused vars - avoid "parseable stream" name, which isn't a great name & not one I expected to escape from ClangPseudoMain Differential Revision: https://reviews.llvm.org/D125312
-
jfurtek authored
This diff updates the LLVMIR dialect Fastmath flags attribute to use recently added features of `BitEnum` attributes. Specifically, this diff uses the bit enum "group" case to represent the `fast` value as an alias for a combination of other values (`ninf`, `nnan`, ...), instead of using a separate integer value. (This is in line with LLVM's fastmath flags representation.) This diff also leverages the `printBitEnumPrimaryGroups` `tblgen` field for concise enum printing. The `BitEnum` features were developed for an upcoming diff that adds `fastmath` support to the arithmetic dialect. This diff simply applies some of the relevant new features to the LLVM dialect attribute. Reviewed By: ftynse, Mogball Differential Revision: https://reviews.llvm.org/D124720
-
Sam McCall authored
This is a followup to D124715, which changed the default, and it anticipates future patches raising the priority of Low (which is currently equal to Background on Windows & Linux). The main point is to allow users to restore the old behavior, which e.g. allows efficiency cores to remain idle. I did consider making this a config setting, this is a more complicated change: - needs to touch queue priorities as well as thread priorities - we don't know the priority until evaluating the config inside the task - users would want the ability to prioritize background indexing tasks relative to each other without necessarily affecting thread priority, so using one option for both may be confusing I don't really have a use case, so I prefer the simpler thing. Differential Revision: https://reviews.llvm.org/D125673
-
Philip Reames authored
These asserts are believed to hold after several recent miscompiles have been fixed. If you see an assertion failure on this change, please toggle the default back and make sure you file a bug with a reproducer. We may have as yet uncaught miscompiles lurking in this code. Differential Revision: https://reviews.llvm.org/D125271
-
Walter Erquinigo authored
llvm's json parser supports uint64_t, so let's better use it for the packets being sent between lldb and lldb-server instead of using int64_t as an intermediate type, which might be error-prone.
-
Joe Nash authored
MC layer support for SOP(scalar alu operations) including encoding support for s_delay_alu and s_sendmsg_rtn. Contributors: Jay Foad <jay.foad@amd.com> Patch 7/N for upstreaming of AMDGPU gfx11 architecture. Depends on D125319 Reviewed By: #amdgpu, arsenm Differential Revision: https://reviews.llvm.org/D125498
-
Stanislav Mekhanoshin authored
A wait is only needed after the DMA before LDS can be read.
-
Simon Pilgrim authored
Its a lot easier to quickly search for the combine when it actually contains the name of the opcode it combines.
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D124884
-
Min-Yih Hsu authored
Previously, GEPOp relies on `findKnownStructIndices` to check if a GEP index should be static. The truth is, `findKnownStructIndices` can only tell you a GEP index _might_ be indexing into a struct (which should use a static GEP index). But GEPOp::build and GEPOp::verify are falsely taking this information as a certain answer, which creates many false alarms like the one depicted in `test/Target/LLVMIR/Import/dynamic-gep-index.ll`. The solution presented here adopts a new verification scheme: When we're recursively checking the child element types of a struct type, instead of checking every child types, we only check the one dictated by the (static) GEP index value. We also combine "refinement" logics -- refine/promote struct index mlir::Value into constants -- into the very verification process since they have lots of logics in common. The resulting code is more concise and less brittle. We also hide GEPOp::findKnownStructIndices since most of the aforementioned logics are already encapsulated within GEPOp::build and GEPOp::verify, we found little reason for findKnownStructIndices (or the new findStructIndices) to be public. Differential Revision: https://reviews.llvm.org/D124935
-
Ruobing Han authored
Fix a typo error in the comment in DivergenceAnalysis.h Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D125808
-