- Apr 26, 2024
-
-
Fangrui Song authored
Related to clean-up opportunities discussed at #90013. After these cleanups, the `RelaxAll` parameter from `createMCObjectStreamer` can be removed as well. As `createMCObjectStreamer` is a more user-facing API and used by two files in mlir/, we postpone the cleanup to the future.
-
Alexander Shaposhnikov authored
Use [[fallthrough]] directly (similarly to https://reviews.llvm.org/D131346). This recommits eb05a2e8.
-
Fabio D'Urso authored
By expressing the conditions covered by MAP_ALLOWNOMEM in a more direct way.
-
Zhaoshi Zheng authored
To correctly lower multi_reduction of 1-dim scalable vector, e.g., <[4]xf32>
-
Fangrui Song authored
Related to clean-up opportunities discussed at #90013.
-
Jeremy Kun authored
-
jofrn authored
Added GISelShouldIgnore property to class Pattern in TargetSelectionDAG.td; it's similar to FastISelShouldIgnore. This bit can be put on a record to avoid its pattern import within GlobalISelEmitter. This allows one to avoid the record's GISel .td implementation, .inc generation, and any skipped pattern warnings from -warn-on-skipped-patterns.
-
Florian Hahn authored
Extend LoopAccessAnalysis to support different strides and as a consequence non-constant distances between dependences using SCEV to reason about the direction of the dependence. In multiple places, logic to rule out dependences using the stride has been updated to only be used if StrideA == StrideB, i.e. there's a common stride. We now also may bail out at multiple places where we may have to set FoundNonConstantDistanceDependence. This is done when we need to bail out and the distance is not constant to preserve original behavior. Fixes https://github.com/llvm/llvm-project/issues/87336 PR: https://github.com/llvm/llvm-project/pull/88039
-
Chris B authored
The preprocessor define `__HLSL_ENABLE_16_BIT` should be set to 1 if native 16-bit types are enabled and not set if they are not. Previously we were setting the value to match the HLSL active language version, and we had no test coverage verifing the value was set and not set as expected. Fixes #89787
-
Andrzej Warzyński authored
Adds a test for `inferConvolutionDimsImpl` to exercise the logic for depthwise convs.
-
Fangrui Song authored
Remove unneeded LLVM_FALLTHROUGH added after https://reviews.llvm.org/D131346
-
Fangrui Song authored
-
Amir Ayupov authored
-
Brian Gesiak authored
Rename `OutgoingNotification` to `OutgoingMessage`, since the same callback function type will be used in a future commit to represent outgoing requests, in addition to outgoing notifications.
-
Brian Gesiak authored
Add a unit test exercising `lsp::MessageHanlder::outgoingNotification`. Split off from pull request #90076, as requested.
-
Alexander Shaposhnikov authored
This reverts commit eb05a2e8. (The comming broke Fortran runtime builders: https://lab.llvm.org/buildbot/#/builders/267/builds/1277)
-
Krystian Stasiowski authored
-
Kazu Hirata authored
These functions do not operate on PortableMemInfoBlock. This patch moves them outside the class.
-
Michael Maitland authored
-
Philip Reames authored
This is a change I really don't like posting, but I think we're out of other options. As can be seen in the test differences, we have cases where adding the freeze inhibits real optimizations. Given no other target handles the undef semantics correctly here, I think the practical answer is that we shouldn't either. Yuck. As examples, consider: * combineMulSpecial in X86. * performMulCombine in AArch64 The only other real option I see here is to move all of the strength reduction code out of ISEL. We could do this either via tablegen rules, or as an MI pass, but other than shifting the point where we ignore undef semantics, I don't this is meaningfully different. Note that the particular tests included here would be fixed if we added SHA/SHL to canCreateUndefOrPoison. However, a) that's already been tried twice and exposes its own set of regressions, and b) these are simply examples. You can create many alternate examples. -
Hugo Melder authored
Linked to https://github.com/gnustep/libobjc2/pull/289. More information can be found in issue: #88273. My solution involves creating a new message-send function for this calling convention when targeting MSVC. Additional information is available in the libobjc2 pull request. I am unsure whether we should check for a runtime version where objc_msgSend_stret2_np is guaranteed to be present or leave it as is, considering it remains a critical bug. What are your thoughts about this @davidchisnall?
-
Krystian Stasiowski authored
[Clang][Sema] Diagnose class member access expressions naming non-existent members of the current instantiation prior to instantiation in the absence of dependent base classes (#84050) Consider the following: ```cpp template<typename T> struct A { auto f() { return this->x; } }; ``` Although `A` has no dependent base classes and the lookup context for `x` is the current instantiation, we currently do not diagnose the absence of a member `x` until `A<T>::f` is instantiated. This patch moves the point of diagnosis for such expressions to occur at the point of definition (i.e. prior to instantiation). -
jeffreytan81 authored
This patch provides the initial implementation for the "Step Into Specific/Step In Targets" feature in VSCode DAP. The implementation disassembles all the call instructions in step range and try to resolve operand name (assuming one operand) using debug info. Later, the call target function name is chosen by end user and specified in the StepInto() API call. It is v1 because of using the existing step in target function name API. This implementation has several limitations: * Won't for indirect/virtual function call -- in most cases, our disassembler won't be able to solve the indirect call target address/name. * Won't work for target function without debug info -- if the target function has symbol but not debug info, the existing ThreadPlanStepInRange won't stop. * Relying on function names can be fragile -- if there is some middle glue/thunk code, our disassembler can only resolve the glue/thunk code's name not the real target function na...
-
Jake Egan authored
These tests pass on AIX.
-
Fangrui Song authored
llvm/cmake/modules/HandleLLVMOptions.cmake adds -Wextra. -Wcast-function-type-mismatch was recently added to -Wextra, leading to a warning for the `get_wrap_symbols` code (https://reviews.llvm.org/D44235). Suppress the diagnostic. Pull Request: https://github.com/llvm/llvm-project/pull/89994
-
Joshua Cranmer authored
This fixes https://github.com/llvm/llvm-project/issues/57589, and aligns Clang with the behavior of current versions of gcc. There is a new option, -mdaz-ftz, to control the linking of the file that sets FTZ/DAZ on startup, and this flag is on by default if -ffast-math is present and -shared isn't. This also partially reverts fa7cd549 in that it disables the attempt to set the IR denormal-fp-math attribute based on whether or not -ffast-math is applied as it is insufficiently reliable.
-
Alexander Shaposhnikov authored
Add fallthrough annotations to avoid warnings if -Wimplicit-fallthrough is enabled. Test plan: ninja check-all
-
LLVM GN Syncbot authored
-
Yingwei Zheng authored
[InstCombine] Canonicalize `gep T, (gep i8, base, C1), (Index + C2)` into `gep T, (gep i8, base, C1 + C2 * sizeof(T)), Index` (#76177) This patch tries to canonicalize `gep T, (gep i8, base, C1), (Index + C2)` into `gep T, (gep i8, base, C1 + C2 * sizeof(T)), Index`. Alive2: https://alive2.llvm.org/ce/z/dxShKF Fixes regressions found in https://github.com/llvm/llvm-project/pull/68882.
-
erichkeane authored
We changed the name of one of the types, which is consumed by LLDB. My patch local build + CI didn't catch it, but a build bot did! This commit fixes it by updating the name in LLDB.
-
Kazu Hirata authored
This patch removes getFullSchema in MemProfTest.cpp in favor of llvm::memprof::PortableMemInfoBlock::getFullSchema as they do exactly the same thing.
-
Erich Keane authored
OpenACC is going to need an array sections implementation that is a simpler version/more restrictive version of the OpenMP version. This patch moves `OMPArraySectionExpr` to `Expr.h` and renames it `ArraySectionExpr`, then adds an enum to choose between the two. This also fixes a couple of 'drive-by' issues that I discovered on the way, but leaves the OpenACC Sema parts reasonably unimplemented (no semantic analysis implementation), as that will be a followup patch.
-
Bhuminjay Soni authored
This commit closes #80850 where author suggests adding a readability check to detect missing parentheses around mathematical expressions when operators of different priorities are used. Signed-off-by:11happy <soni5happy@gmail.com>
-
Ryan Holt authored
This commit implements runtime verification for LinalgStructuredOps using the existing `RuntimeVerifiableOpInterface`. The verification checks that the runtime sizes of the operands match the runtime sizes inferred by composing the loop ranges with the op's indexing maps.
-
Amir Ayupov authored
-
Ayush Sahay authored
Currently, GDBRemoteCommunicationServerLLGS::Handle_qfThreadInfo asserts if the number of processes under debug isn’t 1 and the multiprocess feature isn’t supported. This is so that we don't string IDs of threads belonging to different processes together without including the IDs of the processes themselves in the response when there are multiple processes under debug. However, it’s conceivable that we have no process under debug and the multiprocess feature isn’t supported. So, have GDBRemoteCommunicationServerLLGS::Handle_qfThreadInfo assert if the number of processes under debug is greater than 1 and the multiprocess feature isn’t supported.
-
Fangrui Song authored
Some assembly mnemonics may assemble to instructions of different lengths. The longer form is to support instructions like a long branch. On X86, -mrelax-all enables `MCRelaxAll`, which expands instructions to the long form regardless of whether a short form suffices, while -mno-relax-all only expands instructions when needed. ``` // x86 example void foo(int a) { // -mno-relax-all or gas: short jump (2 bytes) // -mrelax-all: near jump (6 bytes) if (a) bar(); } ``` The -mrelax-all default for non-RISCV -O0 appears to only affect x86 and increases code size without any compile time difference for a stage-2 x86-64 build of lld. ``` -mrelax-all: file size: 60.9MiB VM size: 52.4MiB -mno-relax-all: file size: 58.2MiB VM size: 49.7MiB ``` There is no compile time difference (other than noise) GNU assembler doesn't expand instructions by default. Let's remove the -mrelax-all default. Pull Request: https://github.com/llvm/llvm-project/pull/90013 -
Miro Bucko authored
Summary: When the target inferior process that is being debugged exits in lldb command line, it emits following message: `Process 4049526 exited with status = -1 (0xffffffff) debugserver died with signal SIGTERM` lldb-dap on the other hand does not emit a similar message. This PR adds the same status message to lldb-dap. Test Plan: In VSCode debug any target and hit stop mode, kill lldb-server and observe an exit status message similar to the following: Process 2167677 exited with status = -1 (0xffffffff) debugserver died with signal SIGTERM Reviewers: @jeffreytan81,@clayborg,@kusmour, Subscribers: Tasks: lldb-dap Tags:
-
Philip Reames authored
This matches the style used in the Analysis version of this routine, and makes it less likely we'll miss a poison generating flag in future changes. Unlike IR, the check for poison generating flags doesn't need to switch over opcode since all nodes have the SDFlags storage.
-
- Apr 25, 2024
-
-
Valentin Clement (バレンタイン クレメン) authored
When creating temporaries for implicit transfer, the newly create hlfir.declare operation was missing some information like the shape and the verifier was throwing an error. Fix it by making sure we have an ExtendedValue when calling addSymbol to register the temp. ``` error: loc("cuda-data-transfer.cuf":67:22): 'hlfir.declare' op of array entity with a raw address base must have a shape operand that is a shape or shapeshift ``` Thanks @jeanPerier for the advice! FYI @ImanHosseini
-