- May 04, 2024
-
-
Florian Mayer authored
-
Johannes Doerfert authored
-
Craig Topper authored
Another similar problem was added to the ticket after the first fix.
-
Vitaly Buka authored
Co-authored-by:Heejin Ahn <aheejin@gmail.com>
-
Teresa Johnson authored
While we don't currently rewrite the hints on manually hot/cold hinted allocations, enable optionally matching profiles onto those allocations as a first step to being able to do this. By explicitly checking whether the library function is in the list of operator new also fixes one limitation of the prior call to isNewLikeFn. Some operator new calls (those that specify nothrow) are considered Malloc-like because they may return null. We want to be able to match and rewrite these. Therefore the new test uses a nothrow variant to test the fix for this as well.
-
Benoit Jacob authored
This is a new take on #89111. Now that #90040 is merged, this has become trivial to implement. The added test shows the kind of benefit that we get from this: now dim-of-expand-shape naturally folds without us needing to implement an ad-hoc folding rewrite.
-
Heejin Ahn authored
I'm not entirely sure what the criteria for 'bleeding-edge' used to be, but at this point it seems to be the set of all added features in LLVM. This adds remaining features to bleeding-edge config.
-
Krystian Stasiowski authored
This fixes a bug in #90152 where `operator=` was never looked up in the current instantiation, resulting in `<` never being interpreted as the start of a template argument list. Since function templates are not copy/move assignment operators, the fix is accomplished by allowing lookup in the current instantiation for `operator=` when looking up a template name.
-
Alexey Bataev authored
Need to do extra analysis of the scalar elements of the tree entry to be shuffled instead of the vectorized value to correctly deduce signedness info.
-
Reid Kleckner authored
This reverts commit 0558c7e0 to match the revert of 2d4acb08 in 327bfc97
-
Reid Kleckner authored
Pass in CallLoweringInfo (CLI) instead of passing in the various fields directly. Also pass in CCState (CCInfo), which is computed in both the caller and the callee for a minor efficiency saving. There may also be a small correctness improvement for sibcalls with vectorcall, which has an odd way of recomputing argument locations. This is a step towards improving the handling of musttail on armv7, which we have numerous issues filed about in our tracker. I took inspiration for this from the RISCV tail call eligibility check, which uses a similar prototype.
-
Alexey Bataev authored
-
Reid Kleckner authored
This behavior is true for all attributes, but this behavior can be surprising for attributes which have function-wide effects, such as `optnone` and `target`. Most other function attributes affect the prototype or semantics, but do not affect code generation in the function body. I believe it is worth calling this out in the documentation of these function-wide attributes. There may be more, these were the two that came to mind.
-
jeffreytan81 authored
While adding a UI feature in VSCode to toggle hex/dec in variables view window. I noticed that it does not work after second toggle. Then I noticed that there is a bug that we only explicitly set hex format not reset back to default during further toggle. The new test demonstrates the bug. This PR resets the format back to default if not using hex. One complexity is that, we explicitly set registers value format to AddressInfo, which shouldn't be overridden by default or hex settings. --------- Co-authored-by:jeffreytan81 <jeffreytan@fb.com>
-
Jorge Gorbe Moya authored
Revert "[BasicBlockUtils] Remove redundant llvm.dbg instructions after blocks to reduce compile time (#89069)" This reverts commit 2e3e0868. It caused quadratic slowdown at compilation time in some cases. See the comments in the original PR: https://github.com/llvm/llvm-project/pull/89069
-
Matt Arsenault authored
Baseline tests for new expansion. I think we can do better and avoid the classes.
-
whisperity authored
-
Jonas Devlieghere authored
Reverts llvm/llvm-project#90921
-
Noah Goldstein authored
There is no real motivation for this change other than to highlight a case where the new `Checked` matcher API can handle non-splat-vecs without increasing code complexity. Closes #85676
-
Noah Goldstein authored
-
Noah Goldstein authored
The new API is: `m_CheckedInt(Lambda)`/`m_CheckedFp(Lambda)` - Matches non-undef constants s.t `Lambda(ele)` is true for all elements. `m_CheckedIntAllowUndef(Lambda)`/`m_CheckedFpAllowUndef(Lambda)` - Matches constants/undef s.t `Lambda(ele)` is true for all elements. The goal with these is to be able to replace the common usage of: ``` match(X, m_APInt(C)) && CustomCheck(C) ``` with ``` match(X, m_CheckedInt(C, CustomChecks); ``` The rationale if we often ignore non-splat vectors because there are no good APIs to handle them with and its not worth increasing code complexity for such cases. The hope is the API creates a common method handling scalars/splat-vecs/non-splat-vecs to essentially make this a non-issue. -
Noah Goldstein authored
To avoid losing information, we can propagate some access attribute from the to-be-inlined callee to its callsites. We can propagate argument memory access attributes to callsite parameters if they are from the same underlying object. Closes #89024
-
Noah Goldstein authored
-
Joseph Huber authored
Summary: Previous patches added support for the LLVM rounding intrinsic functions. This patch allows them to me emitted using the clang builtins when targeting AMDGPU.
-
Anthony Ha authored
# Overview In my previous PR: https://github.com/llvm/llvm-project/pull/88812, @JDevlieghere suggested to match return types of the various calculate md5 functions. This PR achieves that by changing the various calculate md5 functions to return `llvm::ErrorOr<llvm::MD5::MD5Result>`. The suggestion was to go for `std::optional<>` but I opted for `llvm::ErrorOr<>` because local calculate md5 was already possibly returning `ErrorOr`. To make sure I didn't break the md5 calculation functionality, I ran some tests for the gdb remote client, and things seem to work. # Testing 1. Remote file doesn't exist  1. Remote file differs  1. Remote file matches  ## Test gaps Unfortunately, I had to modify `lldb/source/Plugins/Platform/MacOSX/PlatformDarwinDevice.cpp` and I can't test the changes there. Hopefully, the existing test suite / code review from whomever is reading this will catch any issues. Co-authored-by:
Anthony Ha <antha@microsoft.com>
-
Valentin Clement (バレンタイン クレメン) authored
Adding a verifier to check the associated cuda attribute.
-
David Green authored
This patch adds a basic version of a combine that attempts to remove shuffles that when combined simplify away to an identity shuffle. For example: %ab = shufflevector <8 x half> %a, <8 x half> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0> %at = shufflevector <8 x half> %a, <8 x half> poison, <4 x i32> <i32 7, i32 6, i32 5, i32 4> %abt = fneg <4 x half> %at %abb = fneg <4 x half> %ab %r = shufflevector <4 x half> %abt, <4 x half> %abb, <8 x i32> <i32 7, i32 6, i32 5, i32 4, i32 3, i32 2, i32 1, i32 0> By looking through the shuffles and fneg, it can be simplified to: %r = fneg <8 x half> %a The code tracks each lane starting from the original shuffle, keeping a track of a vector of {src, idx}. As we propagate up through the instructions we will either look through intermediate instructions (binops and unops) or see a collections of lanes that all have the same src and incrementing idx (an identity). We can also see a single value with identical lanes, which we can treat like a splat. Only the basic version is added here, handling identities, splats, binops and unops. In follow-up patches other instructions can be added such as constants, intrinsics, cmp/sel and zext/sext/trunc. -
annamthomas authored
When analyzing pass debug output it is helpful to have the function name along with the loop name.
-
Jonas Devlieghere authored
Add a T-style log handler that multiplexes messages to two log handlers. The goal is to use this in combination with the SystemLogHandler to log messages both to the user requested file as well as the system log. The latter is part of a sysdiagnose on Darwin which is commonly attached to bug reports.
-
Alex Langford authored
The high level goal is to have 1 way of converting a DW_TAG value into a human-readable string. There are 3 ways this change accomplishes that: 1.) Changing DW_TAG_value_to_name to not create custom error strings. The way it was doing this is error-prone: Specifically, it was using a function-local static char buffer and handing out a pointer to it. Initialization of this is thread-safe, but mutating it is definitely not. Multiple threads that want to call this function could step on each others toes. The implementation in this patch sidesteps the issue by just returning a StringRef with no mention of the tag value in it. 2.) Changing all uses of DW_TAG_value_to_name to log the value of the tag since the function doesn't create a string with the value in it anymore. 3.) Removing `DWARFBaseDIE::GetTagAsCString()`. Callers should call DW_TAG_value_to_name on the tag directly.
-
Florian Hahn authored
Add anew test showing how a loop gets vectorized incorrectly with a invariant store reduction where the same location is also read, when vectorizing with runtime checks.
-
Abhinav Garg authored
This PR will fix the si-mode-register pass which is inserting an extra setreg instruction in case of constrained FP operations. This pass will be ignored for strictfp functions.
-
Aart Bik authored
Make sure consumer-producer fusion happens (to avoid the temporary dense tensor) and constant folding occurs in the generated code.
-
Fangrui Song authored
-
Fangrui Song authored
Skip files with intentional CRLF line endings.
-
Matt Arsenault authored
Addresses comment from #88587
-
Fangrui Song authored
Skip *.bat, *.natvis, utils/lit/tests/Inputs/shtest-shell/diff-in.dos
-
Fangrui Song authored
Skip *.pdb, *.rc, *crlf*, and FileCheck/dos-style-eol.txt
-
Fangrui Song authored
-