summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [MTE] add stack frame history buffer (#86356)upstream/users/fmayer/spr/main.wip-mte-stack-recordFlorian Mayer11 days3-2/+134
| | | | | | | | this will allow us to find offending objects in a symbolization step, like we can do with hwasan. needs matching changes in AOSP: https://android-review.git.corp.google.com/q/topic:%22stackhistorybuffer%22
* [𝘀𝗽𝗿] changes introduced through rebaseCraig Topper2024-05-206557-129080/+251910
|\ | | | | | | | | | | Created using spr 1.3.4 [skip ci]
| * [RISCV] Remove unused function declaration. NFCCraig Topper2024-05-201-1/+0
| |
| * [flang][runtime] Added io-api-minimal.cpp to the offload build. (#92807)Slava Zakharin2024-05-201-0/+1
| |
| * [NFC][flang][runtime] Avoid recursion in EditCharacterOutput and ↵Slava Zakharin2024-05-201-2/+5
| | | | | | | | EditLogicalOutput. (#92806)
| * [libc] Fix constant address space on global clockJoseph Huber2024-05-202-3/+5
| | | | | | | | | | | | Summary: I did this wrong in the first version, because `extern "C"` doesn't imply it's extern when used directly.
| * SBDebugger: Add new APIs `AddDestroyCallback` and `RemoveDestroyCallback` ↵royitaqi2024-05-206-7/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (#89868) # Motivation Individual callers of `SBDebugger::SetDestroyCallback()` might think that they have registered their callback and expect it to be called when the debugger is destroyed. In reality, only the last caller survives, and all previous callers are forgotten, which might be a surprise to them. Worse, if this is called in a race condition, which callback survives is less predictable, which may case confusing behavior elsewhere. # This PR Allows multiple destroy callbacks to be registered and all called when the debugger is destroyed. **EDIT**: Adds two new APIs: `AddDestroyCallback()` and `ClearDestroyCallback()`. `SetDestroyCallback()` will first clear then add the given callback. Tests are added for the new APIs. ## Tests ``` bin/llvm-lit -sv ../external/llvm-project/lldb/test/API/python_api/debugger/TestDebuggerAPI.py ``` ## (out-dated, see comments below) Semantic change to `SetDestroyCallback()` ~~Currently, the method overwrites the old callback with the new one. With this PR, it will NOT overwrite. Instead, it will hold on to both. Both callbacks get called during destroy.~~ ~~**Risk**: Although the documentation of `SetDestroyCallback()` (see [C++](https://lldb.llvm.org/cpp_reference/classlldb_1_1SBDebugger.html#afa1649d9453a376b5c95888b5a0cb4ec) and [python](https://lldb.llvm.org/python_api/lldb.SBDebugger.html#lldb.SBDebugger.SetDestroyCallback)) doesn't really specify the behavior, there is a risk: if existing call sites rely on the "overwrite" behavior, they will be surprised because now the old callback will get called. But as the above said, the current behavior of "overwrite" itself might be unintended, so I don't anticipate users to rely on this behavior. In short, this risk might be less of a problem if we correct it sooner rather than later (which is what this PR is trying to do).~~ ## (out-dated, see comments below) Implementation ~~The implementation holds a `std::vector<std::pair<callback, baton>>`. When `SetDestroyCallback()` is called, callbacks and batons are appended to the `std::vector`. When destroy event happen, the `(callback, baton)` pairs are invoked FIFO. Finally, the `std::vector` is cleared.~~ # (out-dated, see comments below) Alternatives considered ~~Instead of changing `SetDestroyCallback()`, a new method `AddDestroyCallback()` can be added, which use the same `std::vector<std::pair<>>` implementation. Together with `ClearDestroyCallback()` (see below), they will replace and deprecate `SetDestroyCallback()`. Meanwhile, in order to be backward compatible, `SetDestroyCallback()` need to be updated to clear the `std::vector` and then add the new callback. Pros: The end state is semantically more correct. Cons: More steps to take; potentially maintaining an "incorrect" behavior (of "overwrite").~~ ~~A new method `ClearDestroyCallback()` can be added. Might be unnecessary at this point, because workflows which need to set then clear callbacks may exist but shouldn't be too common at least for now. Such method can be added later when needed.~~ ~~The `std::vector` may bring slight performance drawback if its implementation doesn't handle small size efficiently. However, even if that's the case, this path should be very cold (only used during init and destroy). Such performance drawback should be negligible.~~ ~~A different implementation was also considered. Instead of using `std::vector`, the current `m_destroy_callback` field can be kept unchanged. When `SetDestroyCallback()` is called, a lambda function can be stored into `m_destroy_callback`. This lambda function will first call the old callback, then the new one. This way, `std::vector` is avoided. However, this implementation is more complex, thus less readable, with not much perf to gain.~~ --------- Co-authored-by: Roy Shi <royshi@meta.com>
| * Add new Python API `SBCommandInterpreter::GetTranscript()` (#90703)royitaqi2024-05-208-8/+270
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Motivation Currently, the user can already get the "transcript" (for "what is the transcript", see `CommandInterpreter::SaveTranscript`). However, the only way to obtain the transcript data as a user is to first destroy the debugger, then read the save directory. Note that destroy-callbacks cannot be used, because 1\ transcript data is private to the command interpreter (see `CommandInterpreter.h`), and 2\ the writing of the transcript is *after* the invocation of destory-callbacks (see `Debugger::Destroy`). So basically, there is no way to obtain the transcript: * during the lifetime of a debugger (including the destroy-callbacks, which often performs logging tasks, where the transcript can be useful) * without relying on external storage In theory, there are other ways for user to obtain transcript data during a debugger's life cycle: * Use Python API and intercept commands and results. * Use CLI and record console input/output. However, such ways rely on the client's setup and are not supported natively by LLDB. # Proposal Add a new Python API `SBCommandInterpreter::GetTranscript()`. Goals: * It can be called at any time during the debugger's life cycle, including in destroy-callbacks. * It returns data in-memory. Structured data: * To make data processing easier, the return type is `SBStructuredData`. See comments in code for how the data is organized. * In the future, `SaveTranscript` can be updated to write different formats using such data (e.g. JSON). This is probably accompanied by a new setting (e.g. `interpreter.save-session-format`). # Alternatives The return type can also be `std::vector<std::pair<std::string, SBCommandReturnObject>>`. This will make implementation easier, without having to translate it to `SBStructuredData`. On the other hand, `SBStructuredData` can convert to JSON easily, so it's more convenient for user to process. # Privacy Both user commands and output/error in the transcript can contain privacy data. However, as mentioned, the transcript is already available to the user. The addition of the new API doesn't increase the level of risk. In fact, it _lowers_ the risk of privacy data being leaked later on, by avoiding writing such data to external storage. Once the user (or their code) gets the transcript, it will be their responsibility to make sure that any required privacy policies are guaranteed. # Tests ``` bin/llvm-lit -sv ../external/llvm-project/lldb/test/API/python_api/interpreter/TestCommandInterpreterAPI.py ``` ``` bin/llvm-lit -sv ../external/llvm-project/lldb/test/API/commands/session/save/TestSessionSave.py ``` --------- Co-authored-by: Roy Shi <royshi@meta.com> Co-authored-by: Med Ismail Bennani <ismail@bennani.ma>
| * [LegalizeTypes] Use SelectionDAG::SplitVector to simplify some code. NFC ↵Craig Topper2024-05-201-15/+2
| | | | | | | | (#92816)
| * [SelectionDAG] Add getVPZeroExtendInReg. NFC (#92792)Craig Topper2024-05-203-8/+27
| | | | | | Use it for 2 places in LegalizeIntegerTypes that created a VP_AND.
| * [MLIR][Linalg] Add more specialize patterns (#91153)Javed Absar2024-05-206-0/+307
| | | | | | | | | | Currently only linalg.copy is recognized when trying to specialize linalg.generics back to named op. This diff enables recognition of more generic to named op e.g. linalg.fill, elemwise unary/binary.
| * [MCA] use std::function instead of function_ref when storing (#91039)Aiden Grossman2024-05-202-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch changes uses of llvm::function_ref for std::function when storing the callback inside of a class. The LLVM Programmer's manual mentions that llvm::function_ref is not safe to store as it contains pointers to external memory that are not guaranteed to exist in the future when it is stored. This causes issues when setting callbacks inside of a class that manages MCA state. Passing a lambda directly to the set callback functions will end up causing UB/segfaults when the lambda is called as some external memory is now invalid. This is easy to work around (create a separate std::function, pass that into the function setting the callback), but isn't ideal.
| * [libc][errno] remove mips+sparc specific errnos (#92798)Nick Desaulniers (paternity leave)2024-05-206-72/+0
| | | | | | | | | | | | | | | | These are untested and unsupported platforms. The pattern used makes sense for platform specific error numbers, but these are platforms we do not support. Excise this code. Link: #91150
| * [libc][setjmp] disable -ftrivial-auto-var-init=pattern for now (#92796)Nick Desaulniers (paternity leave)2024-05-201-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This would consistently fail for me locally, to the point where I could not run ninja libc-unit-tests without ninja libc_setjmp_unittests failing. Turns out that since I enabled -ftrivial-auto-var-init=pattern in commit 1d5c16d ("[libc] default enable -ftrivial-auto-var-init=pattern (#78776)") this has been a problem. Our x86_64 setjmp definition disabled -Wuninitialized, so we wound up clobbering these registers and instead backing up 0xAAAAAAAAAAAAAAAA rather than the actual register value. The implemenation should be rewritten entirely. I've proposed three different ways to do so (linked below). Until we decide which way to go, at least disable this hardening feature for this function for now so that the unit tests go back to green. Link: #87837 Link: #88054 Link: #88157 Fixes: #91164
| * [OpenCL] Fix an infinite loop in builidng AddrSpaceQualType (#92612)Changpeng Fang2024-05-203-14/+45
| | | | | | | | | | | | | | | | | | | | In building AddrSpaceQualType (https://github.com/llvm/llvm-project/pull/90048), there is a bug in removeAddrSpaceQualType() for arrays. Arrays are weird because qualifiers on the element type also count as qualifiers on the type, so getSingleStepDesugaredType() can't remove the sugar on arrays. This results in an infinite loop in removeAddrSpaceQualType. To fix the issue, we use ASTContext::getUnqualifiedArrayType instead, which strips the qualifier off the element type, then reconstruct the array type.
| * [mlir][tensor] Implement folding logic for size 0 tensor and memref ops (#90814)Spenser Bauman2024-05-204-1/+46
| | | | | | | | | | | | | | | | | | | | | | Implement folding and rewrite logic to eliminate no-op tensor and memref operations. This handles two specific cases: 1. tensor.insert_slice operations where the size of the inserted slice is known to be 0. 2. memref.copy operations where either the source or target memrefs are known to be emtpy. Co-authored-by: Spenser Bauman <sabauma@fastmail>
| * [libcxx] Add cast to avoid pointer casting warning on Windows (#92738)Martin Storsjö2024-05-201-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids the following build time warning, when building with the latest nightly Clang: warning: cast from 'FARPROC' (aka 'int (*)() __attribute__((stdcall))') to 'GetSystemTimeAsFileTimePtr' (aka 'void (*)(_FILETIME *) __attribute__((stdcall))') converts to incompatible function type [-Wcast-function-type-mismatch] This warning seems to have appeared since Clang commit 999d4f840777bf8de26d45947192aa0728edc0fb, which restructured. The GetProcAddress function returns a `FARPROC` type, which is `int (WINAPI *)()`. Directly casting this to another function pointer type triggers this warning, but casting to a `void*` inbetween avoids this issue. (On Unix-like platforms, dlsym returns a `void*`, which doesn't exhibit this casting problem.)
| * [ValueTracking] Recognize `X op (X != 0)` as non-zeroNoah Goldstein2024-05-202-35/+36
| | | | | | | | | | | | | | | | | | | | | | The ops supported are: `add`, `sub`, `xor`, `or`, `umax`, `uadd.sat` Proofs: https://alive2.llvm.org/ce/z/8ZMSRg The `add` case actually comes up in SPECInt, the rest are here mostly for completeness. Closes #88579
| * [ValueTracking] Add tests for `isKnowNonZero` of `X op (X != 0)`; NFCNoah Goldstein2024-05-201-0/+211
| |
| * AMDGPU: Don't fold rootn(x, 1) to input for strictfp functions (#92595)Matt Arsenault2024-05-202-5/+12
| | | | | | | | | | We need to insert a constrained canonicalize. Depends #92594
| * [mlir][polynomial] split polynomial types tablegen (#92805)Jeremy Kun2024-05-202-17/+34
| | | | | | | | | | | | Similar to https://github.com/llvm/llvm-project/pull/92613, but for types. Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
| * [LangRef] Try to formalize the definition of "odr" in LLVM IR. (#92619)Eli Friedman2024-05-201-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | The current definition is a bit fuzzy... replace it with something that's somewhat rigorous. For functions, the definition is pretty narrow; as a consequence of language-level non-determinism, it's impossible to tell whether two functions are equivalent, so just embrace the non-determinism. For constants, we're pretty strict; otherwise you end up concluding constants can actually change value, which is bad for alias analysis. I think C++ standard don't allow any non-deterministic operations in constants, so we should be okay there? Poison is per-byte to allow some ambiguity in the way padding is defined.
| * [MLIR][Vector] Implement transferXXPermutationLowering as ↵Hugo Trachino2024-05-203-25/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MaskableOpRewritePattern (#91987) * Implements `TransferWritePermutationLowering`, `TransferReadPermutationLowering` and `TransferWriteNonPermutationLowering` as a MaskableOpRewritePattern. Allowing to exit gracefully when such use of a xferOp is inside a `vector::MaskOp` * Updates MaskableOpRewritePattern to handle MemRefs and buffer semantics providing empty `Value()` as a return value for `matchAndRewriteMaskableOp` now represents successful rewriting without value to replace the original op. Split of https://github.com/llvm/llvm-project/pull/90835
| * [AMDGPU] Fix error in #88512. (#92770)Leon Clark2024-05-203-37/+57
| | | | | | | | | | | | | | | | Fixes error in GlobalISel CTLZ lowering caused by [#88512](https://github.com/llvm/llvm-project/pull/88512). --------- Co-authored-by: Leon Clark <leoclark@amd.com>
| * CodeGen: Fix libcall names for exp10 on the various darwins (#92520)Matt Arsenault2024-05-205-2/+155
| | | | | | | | | | | | | | It's really great that we have the same information duplicated in TargetLibraryInfo and RuntimeLibcalls which both assume everything by default. Should fix issue reported after #92287
| * [HLSL][CMake] Cache files don't have generator vars (#92793)Chris B2024-05-201-1/+1
| | | | | | | | | | Doh! CMake cache scripts don't have generator variables set yet, so the script can't depend on the generator variables. Instead I've added a variable that a user can specify to enable the distribution settings.
| * [Clang][Sema] Do not add implicit 'const' when matching constexpr function ↵Krystian Stasiowski2024-05-204-8/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | template explicit specializations after C++14 (#92449) Clang incorrectly accepts the following when using C++14 or later: ``` struct A { template<typename T> void f() const; template<> constexpr void f<int>(); }; ``` Non-static member functions declared `constexpr` are only implicitly `const` in C++11. This patch makes clang reject the explicit specialization of `f` in language modes after C++11.
| * [Flang][OpenMP] Disable all OpenMP semantics tests on Windows (#92739)Kiran Chandramohan2024-05-20220-47/+437
| | | | | | | | Removes two XFAILed tests, the other tests are marked UNSUPPORTED only on windows.
| * [Clang][Sema] Diagnose current instantiation used as an incomplete base ↵Krystian Stasiowski2024-05-2011-179/+256
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | class (#92597) Consider the following: ``` template<typename T> struct A { struct B : A { }; }; ``` According to [class.derived.general] p2: > [...] A _class-or-decltype_ shall denote a (possibly cv-qualified) class type that is not an incompletely defined class; any cv-qualifiers are ignored. [...] Although GCC and EDG rejects this, Clang accepts it. This is incorrect, as `A` is incomplete within its own definition (outside of a complete-class context). This patch correctly diagnoses instances where the current instantiation is used as a base class before it is complete. Conversely, Clang erroneously rejects the following: ``` template<typename T> struct A { struct B; struct C : B { }; struct B : C { }; // error: circular inheritance between 'C' and 'A::B' }; ``` Though it may seem like no valid specialization of this template can be instantiated, an explicit specialization of either member classes for an implicit instantiated specialization of `A` would permit the definition of the other member class to be instantiated, e.g.: ``` template<> struct A<int>::B { }; A<int>::C c; // ok ``` So this patch also does away with this error. This means that circular inheritance is diagnosed during instantiation of the definition as a consequence of requiring the base class type to be complete (matching the behavior of GCC and EDG).
| * [LAA] Move logic to compute start and end of a pointer to helper (NFC).Florian Hahn2024-05-201-6/+16
| | | | | | | | | | This allows use at other places, in particular an updated version of https://github.com/llvm/llvm-project/pull/92307.
| * [MC] Disable MCAssembler based constant folding for DwarfDebugFangrui Song2024-05-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to the poor performance of MCAssembler based constant folding (see `bool MCExpr::evaluateAsAbsolute(int64_t &Res, const MCAssembler *Asm) const` and `AttemptToFoldSymbolOffsetDifference`), commit 9500a5d02e23f9b43294e5f662ac099f8989c0e4 (#91082) caused -O0 -g compile time regression. 9500a5d02e23f9b43294e5f662ac099f8989c0e4 special cased .eh_frame FDE emitting. This patch adds a special case to .debug_* emitting as well to mitigate the rest regression. The MCAssembler based constant folding strategy should be improved to remove the two special cases.
| * Fix test for non-Itanium ABIs.Aaron Ballman2024-05-201-2/+2
| | | | | | | | | | This amends 702a2b627ff4b2a5d330a7bd0d3f7cadaff0b4ed to hopefully get the test passing for Windows again.
| * [AMDGPU] Refactor int_amdgcn_mov_dpp8 patterns. NFC. (#92764)Jay Foad2024-05-201-33/+7
| | | | | | | | I still don't see why we need to select to different Real instructions on different targets, but at least this is less verbose.
| * [BPF] report `Invalid usage of the XADD return value"` elegantly (#92742)Yingchi Long2024-05-212-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously `report_fatal_error` is used for reporting something goes wrong in the backend, but this is confusing because `report_fatal_error` basically means there are something unexpected & crashed in the backend. So, turn this "crash" into an elegant error reporting. After this patch, clang can diagnose it: bpf-crash.c:4:30: error: Invalid usage of the XADD return value 4 | u32 next_event_id() { return __sync_fetch_and_add(&GLOBAL_EVENT_ID, 1); } | ^ 1 error generated.
| * [Clang][Sema] Don't build CXXDependentScopeMemberExprs for potentially ↵Krystian Stasiowski2024-05-2011-145/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implicit class member access expressions (#92318) According to [expr.prim.id.general] p2: > If an _id-expression_ `E` denotes a non-static non-type member of some class `C` at a point where the current class is `X` and > - `E` is potentially evaluated or `C` is `X` or a base class of `X`, and > - `E` is not the _id-expression_ of a class member access expression, and > - if `E` is a _qualified-id_, `E` is not the un-parenthesized operand of the unary `&` operator, > > the _id-expression_ is transformed into a class member access expression using `(*this)` as the object expression. Consider the following: ``` struct A { void f0(); template<typename T> void f1(); }; template<typename T> struct B : T { auto g0() -> decltype(T::f0()); // ok auto g1() -> decltype(T::template f1<int>()); // error: call to non-static member function without an object argument }; template struct B<A>; ``` Clang incorrectly rejects the call to `f1` in the _trailing-return-type_ of `g1`. Furthermore, the following snippet results in a crash during codegen: ``` struct A { void f(); }; template<typename T> struct B : T { template<typename U> static void g(); template<> void g<int>() { return T::f(); // crash here } }; template struct B<A>; ``` This happens because we unconditionally build a `CXXDependentScopeMemberExpr` (with an implicit object expression) for `T::f` when parsing the template definition, even though we don't know whether `g` is an implicit object member function yet. This patch fixes these issues by instead building `DependentScopeDeclRefExpr`s for such expressions, and only transforming them into implicit class member access expressions during instantiation. Since we implemented the MS "unqualified lookup into dependent bases" extension by building an implicit class member access (and relying on the first component name of the _nested-name-specifier_ to be looked up in the context of the object expression during instantiation), we instead pre-append a fake _nested-name-specifier_ that refers to the injected-class-name of the enclosing class. This patch also refactors `Sema::BuildQualifiedDeclarationNameExpr` and `Sema::BuildQualifiedTemplateIdExpr`, streamlining their implementation and removing any redundant checks.
| * [gn build] Port 4f5bc4bb55a8LLVM GN Syncbot2024-05-201-1/+1
| |
| * [mlir] Remove redundant include in Passes.h header (NFC)Mehdi Amini2024-05-201-4/+0
| |
| * [VectorCombine] Some more tests for different cmp's and fp consts. NFCDavid Green2024-05-201-0/+83
| |
| * [clang][CodeGen] Remove unused LValue::getAddress CGF arg. (#92465)Ahmed Bougacha2024-05-2023-328/+302
| | | | | | | | | | This is in effect a revert of f139ae3d93797, as we have since gained a more sophisticated way of doing extra IRGen with the addition of RawAddress in #86923.
| * [mlir] [openmp] fix bazel build (#92790)Jeremy Kun2024-05-201-0/+4
| | | | | | Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
| * [SPIR-V] Ensure that internal intrinsic functions "ptrcast" for PHI's ↵Vyacheslav Levytskyy2024-05-202-4/+107
| | | | | | | | | | | | | | | | operand are inserted at the correct positions (#92536) The goal of the PR is to ensure that newly inserted `ptrcast` internal intrinsic functions are inserted at the correct positions, and don't break rules of instruction domination and PHI nodes grouping at top of basic block.
| * [SPIR-V] reqd_work_group_size and work_group_size_hint metadata are ↵Vyacheslav Levytskyy2024-05-203-6/+83
| | | | | | | | | | | | | | | | | | | | | | correctly converted to the LocalSize and LocalSizeHint execution mode (#92552) The goal of this PR is to ensure that reqd_work_group_size and work_group_size_hint metadata are correctly converted to the LocalSize and LocalSizeHint execution mode. reqd_work_group_size and work_group_size_hint require 3 operands (see https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Execution_Mode), if metadata contains less operands, just add a default value (1).
| * [clang][NFC] Update the list of Core issuesVlad Serebrennikov2024-05-201-16/+22
| |
| * [clang][NFC] Rename `SemaRISCVVectorLookup.cpp` into `SemaRISCV.cpp`Vlad Serebrennikov2024-05-202-1/+1
| | | | | | | | In preparation for #92682.
| * [MILR][NVVM] Fix missing semicolon in nvvm.barrier.arrive Op (#92769)Pradeep Kumar2024-05-202-2/+2
| | | | | | | | | | | | | | This commit fixes the missing semicolon in the PTX codegen path where barrier id is provided for the NVVM BarrierArriveOp. Also, updated nvvm-to-llvm.mlir lit test to reflect the same Co-authored-by: pradeepku <pradeepku@nvidia.com>
| * [LegalizeTypes] Use VP_AND for zext_inreg in PromoteIntRes_VPFunnelShift.Craig Topper2024-05-202-8/+6
| | | | | | | | | | I may eventually add getVPZeroExtendInReg to SelectionDAG if there are other cases, but for now just hardcode it.
| * [NFC][amdgpuarch] Correct file names in file header comments (#92294)Jacob Lambert2024-05-202-2/+2
| |
| * AMDGPU: Relax vector restriction for rootn libcall folds (#92594)Matt Arsenault2024-05-202-67/+54
| | | | | | | | We could try harder for nonsplat vectors but probably not worth the effort.
| * [revert_checker] replace Phabricator URIs with GitHub URIs (#92102)inglorion2024-05-201-10/+5
| | | | | | | | | | LLVM is now using GitHub. This change makes revert_checker.py -u generate commit links that go to GitHub, instead of the old Phabricator URIs.
| * [flang] Fix CMake dependency in CUF/Attributes (#92751)David Truby2024-05-201-0/+1
| | | | | | | | | | | | | | flang/lib/Optimizer/Dialect/CUF/Attributes/CUFAttr.cpp includes CUFDialect.h.inc, but the target generating that isn't currently depended on in CUF/Attributes. This patch adds that missing dependency. Fixes #92635