- Mar 05, 2024
-
-
Balazs Benics authored
In PR #83677 I was surprised to see that outdated checker callback signatures are a problem. It turns out, we need the `registerChecker...` function to invoke the `Mgr.registerChecker<>()` which would instantiate the `_register` calls, that would take the address of the defined checker callbacks. Consequently, if the expected signatures mismatch, it won't compile from now on, so we have static guarantee that this issue never pops up again. Given we need the `register` call, at this point we could just hook this checker into the `debug` package and make it never registered. It shouldn't hurt anyone :)
-
Krystian Stasiowski authored
[Clang][Sema] Fix crash when using name of UnresolvedUsingValueDecl with template arguments (#83842) The following snippet causes a crash: ``` template<typename T> struct A : T { using T::f; void f(); void g() { f<int>(); // crash here } }; ``` This happens because we cast the result of `getAsTemplateNameDecl` as a `TemplateDecl` in `Sema::ClassifyName`, which we cannot do for an `UnresolvedUsingValueDecl`. This patch fixes the crash by considering a name to be that of a template if _any_ function declaration is found per [temp.names] p3.3. -
Jay Foad authored
Define BUF Real instructions with this general pattern for all architectures (not just GFX11): multiclass Something_Real_gfx11<...> { defvar ps = !cast<Pseudo>(NAME); def _gfx11 : ...; } This allows removing a huge amount of repetition in the definitions of individual Real instructions, where they would have to !cast their own name to a Pseudo and pass that in as a class argument. -
Nikita Popov authored
When inlining across functions with different target features, we perform roughly two checks: 1. The caller features must be a superset of the callee features. 2. Calls in the callee cannot use types where the target features would change the call ABI (e.g. by changing whether something is passed in a zmm or two ymm registers). The latter check is very crude right now. The latter check currently also catches inline asm "calls". I believe that inline asm should be excluded from this check, as it is independent from the usual call ABI, and instead governed by the inline asm constraint string. Fixes https://github.com/llvm/llvm-project/issues/67054.
-
Yingwei Zheng authored
This patch adds support for canonicalization of icmp with a scalable splat. Some optimizations assume that `icmp pred X, APInt C` is in canonical form. Fixes https://github.com/llvm/llvm-project/issues/83931.
-
Yeting Kuo authored
Previously SelectionDAGBuilder used ABI alignment for compressstore/expandload. This patch allows SelectionDAGBuilder to use parameter alignment like vp intrinsics. This does not follow the original code to default use vector type alignment, since it is possible implemented to unaligned vector alignment.
-
Atousa Duprat authored
Add functionality to APInt::toString() that allows it to insert separators between groups of digits, using the C++ literal separator ' between groups. Fixes issue #58228 Reviewers: @AaronBallman, @cjdb, @tbaederr
-
Paul Walker authored
This allows the removal of FFR related psuedo nodes that only existed to work round machine verifier failures.
-
Joseph Huber authored
Summary: The other test locations only give these messages when we are in verbose logging mode. The average user does not care about which tests are not being built, and most platforms will have missing tests.
-
Jay Foad authored
The Base_ prefix seems redundant on a class that is only used for GFX11.
-
Jay Foad authored
This class only existed to set the dlc bit for GFX11 atomics. It is simpler to set dlc for all loads/stores/atomics in the base class.
-
Wang Pengcheng authored
We should generate the `MCInstPredicate` twice, one with `FirstMI` and another with `SecondMI`.
-
SahilPatidar authored
[InstCombine] Fix Failure to convert vector fp comparisons that can be represented as integers #82241 (#83274) Resolve #82241 --------- Co-authored-by:SahilPatidar <patidarsahil@2001gmail.com>
-
Benjamin Kramer authored
According to the PTX ISA this doesn't exist (and ptxas rejects it) See https://github.com/pytorch/pytorch/issues/118589
-
martinboehme authored
I was wondering about this when I recently used `Regex`, and I thought it would be nice to have a test documenting this behavior.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
AtariDreams authored
As of now, we only check if a class directly inherits from NSObject to determine if said class has fixed offsets and can therefore "opt-out" from the non-fragile ABI for ivars. However, if an NSObject subclass has fixed offsets, then so must the subclasses of that subclass, so this allows us to optimize instances of subclasses of subclasses that inherit from NSObject and so on. To determine this, we need to find that the compiler can see the implementation of each intermediate class, as that means it is statically linked. Fixes: #81369
-
Jay Foad authored
This allows removing a couple of MTBUF helper (multi)classes.
-
Luke Lau authored
An EXTRACT_VECTOR_ELT can extend the element to the width of its result type, leaving the high bits undefined. Previously if we attempted to query the bytes in these high bits we would recurse and hit an assertion. This fixes it by bailing if the index is outside of the vector element size. I think the assertion Index < ByteWidth may still be incorrect, since ByteWidth is calculated from Op.getValueSizeInBits(). I believe this should be Op.getScalarValueSizeInBits() whenever VectorIndex is set since we're querying the element now, not the vector. But I couldn't think of a test case to trigger it. It can be addressed in a follow-up patch. Fixes #83920
-
Kiran Chandramohan authored
As a temporary solution, lower workshare to the single directive
-
Adrian Kuegel authored
-
Graham Hunter authored
Post-commit fixup patch for a request on https://github.com/llvm/llvm-project/pull/81135
-
Adrian Kuegel authored
move constructors should be marked noexcept
-
Jay Foad authored
Since svn r133708 visitPHINode no longer has to check basic block argument types. Better 13 years late than never!
-
Balazs Benics authored
Remove the unused method `CoreEngine::ExecuteWorkListWithInitialState`.
-
Yeting Kuo authored
Align attribute has already been used for masked.compress/expandload in commit #83519, #83763 and #83516.
-
Amirreza Ashouri authored
IMHO it would be productive to make a similar change for `typeid`, in `ParseCXXTypeid`, in order to improve Clang's error message for https://godbolt.org/z/oKKWxeYra But that might be better done by adding a new DeclaratorContext specifically for TypeidArg, instead of pretending that the argument to `typeid` is a template argument, because I don't know what else that change might affect. Fixes #77585
-
cor3ntin authored
Due to improper use of RecursiveASTVisitor. Fixes #80630
-
Nikita Popov authored
This contains two updates: * Generalize the "no loads stores of aggregates" to "no values of aggregate type" in general, and be clearer about the exceptions where it is okay to use them. * Mention that you should not load/store non-byte-size types.
-
Shourya Goel authored
Fixes: https://github.com/llvm/llvm-project/issues/64803 Removed unsupported branch command and changed Regex to accept /cherry-pick: command.
-
jeanPerier authored
Passing `TYPE(*)`actual to `TYPE(*)` dummy was left TODO. Implement it. The difference with other actual arguments is that `TYPE(*)` are not represented as Fortran::evaluate::Expr<T>, so inquiries on evaluate::Expr<T> must be updated to use evaluate::ActualArgument or also handle semantics::Symbol case (except in portion of the code where `TYPE(*)` is impossible, where asserts are added).
-
jeanPerier authored
Allocatable components of structure constructors were not deallocated. Deallocate them without calling final subroutines. This was already properly done for array constructors.
-
jeanPerier authored
Reverts llvm/llvm-project#83535 Bug fixed by https://github.com/llvm/llvm-project/pull/83768
-
Daniil Kovalev authored
Reland #82595 with fixes of build failures related to colored output. See https://lab.llvm.org/buildbot/#/builders/139/builds/60549 Use `%ProtectFileCheckOutput` to avoid colored output. Original commit message below. In `Pattern::parseVariable`, for global variables (those starting with '$') and for pseudo variables (those starting with '@') the first character is consumed before actual variable name parsing. If the name is empty, it leads to out-of-bound access to the corresponding `StringRef`. This patch adds an if statement against the case described.
-
MalaySanghiIntel authored
These are relatively larger structures and we don't update them so ref should be fine
-
Jinyang He authored
For a label difference like `.uleb128 A-B`, MC generates a pair of R_LARCH_{ADD,SUB}_ULEB128 if A-B cannot be folded as a constant. GNU assembler generates a pair of relocations in more cases (when A or B is in a code section with linker relaxation). It is similar to RISCV. R_LARCH_{ADD,SUB}_ULEB128 relocations are created by Clang and GCC in `.gcc_except_table` and other debug sections with linker relaxation enabled. On LoongArch, first read the buf and count the available space. Then add or sub the value. Finally truncate the expected value and fill it into the available space. -
Congcong Cai authored
#66771 introduce `llvm::post_order(&r.front())` which is equal to `r.front().getSuccessor(...)`. It will visit the succ block of current block. But actually here need to visit all block of region in reverse order. Fixes: #77420.
-
Mehdi Amini authored
-
Mehdi Amini authored
-