- Jan 07, 2023
-
-
ziqingluo-90 authored
Re-land "[-Wunsafe-buffer-usage] Add a new `forEachDescendant` matcher that skips callable declarations" This reverts commit 22df4549. After a quick investigation, realizing that the Sanitizer test failures caused by this patch is not likely to block other contributors. I re-land this patch before taking a closer look at those tests so that it won't block the [-Wunsafe-buffer-usage] development.
-
Stephen Tozer authored
This patch fixes an error in commit e10e9363 in which the added documentation contained an incorrectly-styled underline for the title "Debug Instruction Reference Operands".
-
Stephen Tozer authored
This patch makes two notable changes to the MIR debug info representation, which result in different MIR output but identical final DWARF output (NFC w.r.t. the full compilation). The two changes are: * The introduction of a new MachineOperand type, MO_DbgInstrRef, which consists of two unsigned numbers that are used to index an instruction and an output operand within that instruction, having a meaning identical to first two operands of the current DBG_INSTR_REF instruction. This operand is only used in DBG_INSTR_REF (see below). * A change in syntax for the DBG_INSTR_REF instruction, shuffling the operands to make it resemble DBG_VALUE_LIST instead of DBG_VALUE, and replacing the first two operands with a single MO_DbgInstrRef-type operand. This patch is the first of a set that will allow DBG_INSTR_REF instructions to refer to multiple machine locations in the same manner as DBG_VALUE_LIST. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D129372 -
Casey Carter authored
* initializing `short`s with `short`s instead of `int`s to avoid narrowing warnings * Explicitly discard the result of `value` calls to avoid `[[nodiscard]]` warnings Drive-by: `testException` from `value` test is duplicated in `value_or` test; remove the duplicate. Differential Review: https://reviews.llvm.org/D141108
-
Kai Nacke authored
clang (like gcc) has the -mtune= command line option. This option adds the "tune-cpu" attribute to a function. The intended functionality is that the scheduling model of that cpu is used. E.g. -mtune=pwr9 -march=pwr8 generates only instructions supported on pwr8 but uses the scheduling model of pwr9 for it. This PR adds the infrastructure to support this in LLVM. clang support was added in https://reviews.llvm.org/D130526. Reviewed By: amyk, qiucf Differential Revision: https://reviews.llvm.org/D138317
-
LiDongjin authored
This includes a fix for the tramp3d failure from the llvm-testsuite that caused the last revert. Hopefully the others failures were the same issue. Original commit message: For RISC-V, load/store(exclude vector load/store) instructions only has a 12 bit immediate operand. If the offset is out-of-range, it must make use of a temp register to make up this offset. If between these offsets, they have a small(IsInt<12>) relative offset, LocalStackSlotAllocation pass can find a value as frame base register's value, and replace the origin offset with this register's value plus the relative offset. Co-authored-by:
luxufan <luxufan@iscas.ac.cn> Co-authored-by:
Craig Topper <craig.topper@sifive.com> Differential Revision: https://reviews.llvm.org/D98101
-
Alex Richardson authored
-
Alex Zinenko authored
In several cases, the splitting may be known to be a noop, i.e., produce no second part. Thread this information through the transform utilities to the transform dialect, and differentiate it from the error state. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D141138
-
Thomas Raoux authored
When converting to nvvm lowering gpu.printf to vprintf allows us to support printing when running on cuda. Differential Revision: https://reviews.llvm.org/D141049
-
Alexey Bataev authored
Need to include the cost of the initial insertelement to the cost of the broadcasts. Also, need to adjust the cost of the gather/buildvector if the element is inserted into poison/undef vector. Differential Revision: https://reviews.llvm.org/D140498
-
Craig Topper authored
Previously we emitted a 4x or 8x vzext followed by a vfcvt. We can instead use a 2x or 4x vzext followed by a vfwcvt.
-
Nikita Popov authored
This reverts commit 7f0de957. This is missing handling for !isReachableFromEntry() blocks, which may be relevant for some callers. Revert for now.
-
Craig Topper authored
Add patterns with seteq/setne conditions. We don't have instructions for seteq/setne except for comparing with zero and need to emit an ADDI or XOR before a seqz/snez to compare other values. The select ISD node takes a 0/1 value for the condition, but the VT_MASKC(N) instructions check all XLen bits for zero or non-zero. We can use this to avoid the seqz/snez in many cases. This is pretty ridiculous number of patterns. I wonder if we could use some ComplexPatterns to merge them, but I'd like to do that as a follow up and focus on correctness of the result in this patch. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D140421
-
Nikita Popov authored
-
Nikita Popov authored
-
Craig Topper authored
This is based on @frasercrmck's D107290. At least some of the clang portion of D107290 has already been committed. This uses vscale_range for min/max vector width unless the command line overrides are used. As a follow up, I plan to add a max or exact VLEN option to clang to control the vscale_range. This will eliminate many of the reasons for users to use the overrides through the -mllvm interface. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D139873
-
Thomas Raoux authored
Relax unnecessary restriction when distribution a vector.reduce op. All the float and integer types can be supported by user's lambda. Differential Revision: https://reviews.llvm.org/D141094
-
Sylvestre Ledru authored
Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D141132
-
Sylvestre Ledru authored
Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D141126
-
Nikita Popov authored
This is a recurring pattern: We want to find the nearest common dominator (instruction) for two instructions, but currently only provide an API for the nearest common dominator of two basic blocks. Add an overload that accepts and return instructions.
-
- Jan 06, 2023
-
-
LLVM GN Syncbot authored
-
Luke Lau authored
Now that D139525 fixes the Hexagon infinite loop, the stopgap can be removed to provide more information about known bits in SPLAT_VECTOR whose operands are smaller than the bit width (which is most of the time) Reviewed By: reames Differential Revision: https://reviews.llvm.org/D141075
-
Luke Lau authored
For D141079 Reviewed By: reames Differential Revision: https://reviews.llvm.org/D141120
-
Guillaume Chatelet authored
This broke some build bots : https://lab.llvm.org/buildbot/#/builders/16/builds/41419/steps/5/logs/stdio This reverts commit 4670d5ec.
-
David Green authored
Similar to D138404, we were not guarding against extra uses of the Mul. In most cases other checks would catch the issue due to unsupported instructions in the outer loop, but certain non-canonical loop forms could still get through. Fixes #59339 Differential Revision: https://reviews.llvm.org/D141114
-
David Green authored
-
Hassnaa Hamdi authored
By default expand all operations, then change to Custom/Legal if needed. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D141068
-
Guillaume Chatelet authored
The patch should be discussed further. This reverts commit dd56e1c9.
-
Guillaume Chatelet authored
Currently 'TypeSize' exposes two functions that serve the same purpose: - getFixedSize / getFixedValue - getKnownMinSize / getKnownMinValue source : https://github.com/llvm/llvm-project/blob/bf82070ea465969e9ae86a31dfcbf94c2a7b4c4c/llvm/include/llvm/Support/TypeSize.h#L337-L338 This patch offers to remove one of the two and stick to a single function in the code base. Differential Revision: https://reviews.llvm.org/D141134
-
Nikita Popov authored
-
Nikita Popov authored
-
Joseph Huber authored
Summary: Fixes other instances of the same problem in the previous patch.
-
Joseph Huber authored
Summary: These implicit conversions from move-only types to expected seem to only work with newer compilers. This should hopefully fix it.
-
Alex Zinenko authored
-
Backl1ght authored
fix https://github.com/llvm/llvm-project/issues/59785 Reviewed By: HazardyKnusperkeks, MyDeveloperDay, owenpan Differential Revision: https://reviews.llvm.org/D140843
-
Nikita Popov authored
-
Nikita Popov authored
When fetching allocation sizes, we almost always want to have the size in bytes, but we were only providing an InBits API. Also add the corresponding byte-based conjugate to save some *8 and /8 juggling everywhere.
-
Sanjay Patel authored
Forking this off from D140850 - https://alive2.llvm.org/ce/z/TgBeK_ https://alive2.llvm.org/ce/z/STVD7d We could almost justify doing this in IR, but consideration for "minsize" requires that we only try it in codegen -- the transform is not reversible. In all other cases, avoiding multiply should be a win because a mul is more expensive than simple/parallelizable compares. AArch even has a trick to keep instruction count even for some types. Differential Revision: https://reviews.llvm.org/D141086
-
Matt Arsenault authored
-
Matt Arsenault authored
-