- Apr 26, 2024
-
-
Tom Stellard authored
Completely refactor the cache file to simplify it and remove unnecessary variables. The main functional change here is that the non-PGO builds now use two stages, so `ninja -C build stage2-package` can be used with both PGO and non-PGO builds.
-
Fred Grim authored
@jimingham I am wondering if you are ok removing this test? It caused failures in some of the build bots because the user time was less than a microsecond. Alternatively we can increase the number of loops or maybe I need some other approach? I had commented it out just to not impact others
-
Mircea Trofin authored
Add the callsite intrinsic. Structurally, it is very similar to the counter intrinsics, hence the inheritance relationship. We can probably rename `InstrProfCntrInstBase` to `InstrProfIndexedBase` later - because the "counting" aspect is really left to derived types of `InstrProfCntrInstBase`, and it only concerns itself with the index aspect (which is what we care about for `callsite`, too) (Tracking Issue: #89287, RFC referenced there)
-
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 name. It can be fragile to depend compiler/linker emits the same names for both. * Does not support step into raw address call sites -- it is a valid scenario that in Visual Studio debugger, user can explicitly choose a raw address to step into which land in the function without debug info/symbol, then choose UI to load the debug info on-demand for that module/frame to continue exploring. A more reliable design could be extending the ThreadPlanStepInRange to support step in based on call-site instruction offset/PC which I will propose in next iteration. --------- Co-authored-by:jeffreytan81 <jeffreytan@fb.com>
-
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
-