- Mar 27, 2024
-
-
Paul Kirth authored
Created using spr 1.3.4
-
Florian Mayer authored
This is so we can use a different slot for stack MTE.
-
Florian Mayer authored
-
Craig Topper authored
[RISCV] Check that the stack adjust immediate for cm.push/pop* has the correct sign and is divisible by 16. (#85295) To do this I've added a new AsmOperand for cm.push to expect a negative value. We also use that to customize the print function so that we don't need to detect cm.push opcode to add the negative sign. I've renamed some places that used Spimm to be StackAdj since that's what is being parsed. I'm still not about where we should use Spimm or StackAdj. I've removed the printSpimm helper function which in one usage printed the sp[5:4]<<4 value and the other usage printed the full stack adjustment. There wasn't anything interesting about how it was printed it just passed the value to the raw_stream. If there was something special needed, it's unclear whether it would be the same for the two different usages so I inlined it. One open question is whether we need to support stack adjustments expressed as an expression rather than a literal integer.
-
OverMighty authored
Fixes #86549.
-
Vinayak Dev authored
Resolves #86547 Replace occurrences of the macro `LIBC_HAS_ATTRIBUTE` with `__has_attribute`.
-
Vinayak Dev authored
Removes unused header includes from `strfrom*()` implementation files.
-
Björn Pettersson authored
When folding (ashr (shl, x, c1), c2) we need to treat c1 and c2 as unsigned to find out if the combined shift should be a left or right shift. Also do an early out during pre-legalization in case c1 and c2 has differet types, as that otherwise complicated the comparison of c1 and c2 a bit.
-
Razvan Lupusoru authored
PR#80319 added support to record combined construct semantics via an attribute. Add lowering support for this.
-
Michael Jones authored
The canonicalize test added in #85940 defined the LIBC_NAMESPACE macro. this macro is intended to be set only by the build system and never in the code.
-
Bjorn Pettersson authored
It has been noticed that combineShiftRightArithmetic isn't dealing properly with large shift amounts, as demonstrated by the test case added in this commit. I think the problem partly is related to X86 using i8 as shift amount type during ISel. So shift amount larger then 127 may be treated as negative shift amounts if not being careful.
-
Peter Klausler authored
Rearrange some new code a little bit to avoid a bogus error message coming out from GCC 13.2.0 about an uninitialized data member in a parser.
-
Félix-Antoine Constantin authored
The check needs a parent decl to match but if the typedef is in a function, the parent is a declStmt which is not a decl by itself. Improved the matcher to match on either a decl or a declstmt and extract the decl from the stmt in the latter case. Fixes #72179
-
Jonas Devlieghere authored
This implements coalescing of progress events using a timeout, as discussed in the RFC on Discourse [1]. This PR consists of two commits which, depending on the feedback, I may split up into two PRs. For now, I think it's easier to review this as a whole. 1. The first commit introduces a new generic `Alarm` class. The class lets you to schedule a function (callback) to be executed after a given timeout expires. You can cancel and reset a callback before its corresponding timeout expires. It achieves this with the help of a worker thread that sleeps until the next timeout expires. The only guarantee it provides is that your function is called no sooner than the requested timeout. Because the callback is called directly from the worker thread, a long running callback could potentially block the worker thread. I intentionally kept the implementation as simple as possible while addressing the needs for the `ProgressManager` use case. If we want to rely on this somewhere else, we can reassess whether we need to address those limitations. 2. The second commit uses the Alarm class to coalesce progress events. To recap the Discourse discussion, when multiple progress events with the same title execute in close succession, they get broadcast as one to `eBroadcastBitProgressCategory`. The `ProgressManager` keeps track of the in-flight progress events and when the refcount hits zero, the Alarm class is used to schedule broadcasting the event. If a new progress event comes in before the alarm fires, the alarm is reset (and the process repeats when the new progress event ends). If no new event comes in before the timeout expires, the progress event is broadcast. [1] https://discourse.llvm.org/t/rfc-improve-lldb-progress-reporting/75717/
-
Piotr Zegar authored
Main problem with performance of this check is caused by hasAncestor matcher, and to be more precise by an llvm::DenseSet and std::deque in matchesAnyAncestorOf. To reduce impact of this matcher, multiple conditions that were checked in check method were copied into AST matcher that is now checked before hasAncestor. Using custom getCheckTraversalKind to exclude template instances that shouldn't be checked anyway is an additional improvement, but gain from that one is low. Tested on ffl_tests.cc, visible reduction from ~442 seconds to ~15 seconds (~96% reduction). Closes #86553
-
Chris B authored
In PR #79382, I need to add a new type that derives from ConstantArrayType. This means that ConstantArrayType can no longer use `llvm::TrailingObjects` to store the trailing optional Expr*. This change refactors ConstantArrayType to store a 60-bit integer and 4-bits for the integer size in bytes. This replaces the APInt field previously in the type but preserves enough information to recreate it where needed. To reduce the number of places where the APInt is re-constructed I've also added some helper methods to the ConstantArrayType to allow some common use cases that operate on either the stored small integer or the APInt as appropriate. Resolves #85124.
-
Emil Pedersen authored
Before this fix, a duplicate llvm.dbg.value intrinsic referring to an argument, after an alloca, would be generated with `$noreg`, losing debug information. Instead, we silently drop the second debug info, so it doesn't break the first one. rdar://125375717
-
Karthika Devi C authored
This flag enable the user to print debug Info from all the passes and helpers inside polly at once. This will help a novice user as well to work in polly without explicitly having to know which parts of polly has actually kicked in and pass them via -debug-only.
-
Krzysztof Parzyszek authored
The clause templates defined in ClauseT.h were originally based on flang's parse tree nodes. Since those representations are going to be reused for clang (together with the clause splitting code), it makes sense to separate them from flang, and instead have them based on the actual OpenMP spec (v5.2). The member names in the templates follow the naming presented in the spec, and the representation (e.g. members) is derived from the clause definitions as described in the spec. Since the representations of some clauses has changed (while preserving the information), the current code using the clauses (especially the code converting parser::OmpClause to omp::Clause) needs to be adjusted. This patch does not make any functional changes.
-
Craig Topper authored
We're not allowed to call getELEN when the vector extension is not enabled. If we're looking at a vector type, isTypeLegal would only return true if the vector extensions are enabled. So early out for non-vector types before we call isTypeLegal and getELEN.
-
Alex Zinenko authored
-
Noah Goldstein authored
Just a missing matcher that came up in #73362 Closes #86632
-
Simon Pilgrim authored
-
Alexey Bataev authored
accepting it. If the minbitwidth is deduced from the demanded elements, need to check the final bitwidthfor trunc/ext instruction, bot blindly accepting the used one.
-
Alexey Bataev authored
minbitwidth analysis.
-
Ella Ma authored
When developing on a headless device through SSH, we do not have a browser or even an X environment. Hence, it would be more convenient if the rewriter could stop before attempting to open the generated HTML file. Then, it can be opened remotely through an HTML server. This patch adds a new option `--dump-html-only` to make the rewriter stop before opening the generated HTML in a browser. The new option is marked in conflict with the existing `--dump-dot-only` option to prevent unexpected behaviors.
-
Jason Molenda authored
In commit 2f63718f Author: Jason Molenda <jmolenda@apple.com> Date: Tue Mar 26 09:07:15 2024 -0700 [lldb] Don't clear a Module's UnwindTable when adding a SymbolFile (#86603) I changed lldb to not clear a Module's UnwindTable when we add a SymbolFile to a binary, because the added benefit is marginal, and handling this reconstruction correctly is difficult. This test was written to explicitly create a test without unwind info in the binary, then add a symbol file with the unwind info, and check that it is present. I've intentionally broken this, so I'm removing the test.
-
Thorsten Schütt authored
MachineInstr learned the new flags.
-
Kazu Hirata authored
mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp:995:11: error: unused variable 'converter' [-Werror,-Wunused-variable]
-
Craig Topper authored
It is identical to PALUVINoVm so we can use that instead.
-
Kazu Hirata authored
This patch fixes: mlir/lib/Conversion/TosaToTensor/TosaToTensor.cpp:76:46: error: 'multiplies' may not intend to support class template argument deduction [-Werror,-Wctad-maybe-unsupported]
-
Alexey Bataev authored
minbitwidth analysis. Need to drop nuw/nsw flags, if the alternate node is resized after the minbitwidth analysis, to avoid producing poison values in corner cases.
-
Piotr Zegar authored
Because check emitted multiple warnings for every template instance fix-it couldn't be applied due to overlaps. Using TK_IgnoreUnlessSpelledInSource and restricting check to C++ only.
-
Peter Klausler authored
An apparent attempt to override a type-bound procedure is not allowed to be interpreted as on override when the procedure is PRIVATE and the override attempt appears in another module. However, if the TBP that would have been overridden is a DEFERRED procedure in an abstract base type, the override must take place. PRIVATE DEFERRED procedures must therefore have all of their overrides appear in the same module as the abstract base type.
-
Ivan Butygin authored
Most of arith/math ops support fastmath attribute, use it instead of global flag.
-
smanna12 authored
Reported by Static Analyzer Tool: In clang::dataflow::Environment::initialize(): Using the auto keyword without an & causes the copy of an object of type LambdaCapture
-
Jonas Hahnfeld authored
Since the restructuring in commit fa3d789d, the option DISABLE_LLVM_LINK_LLVM_DYLIB is counter-productive and leads to CommandLine Error: Option 'debug-counter' registered more than once!
-
Peter Klausler authored
A function uses "if constexpr" to consider all possible types in a variant, but looks as if it can fall out without returning an expression. Add a final "else" with a crash to make things more clear and to protect against unlikely future extensions of the type. Fixes https://github.com/llvm/llvm-project/issues/86391.
-
Andrzej Warzyński authored
This patch refactors the `linearize.mlir` test - currently it contains some duplication and can be tricky to follow. Summary of changes: * reduce duplication by introducing a shared check prefix (`ALL`) and by introducing `-check-prefixes`, * make sure that every "check" line is directly above the corresponding line of input MLIR, * group check lines corresponding to a particular prefix together (so that it's easier to see the expected output for a particular prefix), * remove `CHECK` from prefix names (with multiple prefixes that's just noise that can be avoided) and use a bit more descriptive prefixes instead (`CHECK0` -> `BW-0`, where `BW` stands for bitwidth), * unify indentation, * `nonvec_result` -> `test_tensor_no_linearize` (for consistency with `test_index_no_linearize`). NOTE: This change only updates the format of the "CHECK" lines and doesn't affect what's being tested. This change is intended as preparation for adding support for scalable vectors to `LinearizeConstant` and `LinearizeVectorizable` - i.e. patterns that `linearlize.mlir` is meant to test. -
Craig Topper authored
-