- Jan 19, 2024
-
-
Sander de Smalen authored
The new Clang attributes no longer support the combination of having a private-ZA function that preserves ZA. The use of __arm_preserves("za") means that ZA is shared and preserved. There wasn't that much benefit to the special handling of this, because in practice it only meant that we'd avoid restoring the lazy-save afterwards, but it still needed setting up a lazy-save (with the possibility of using a 0-sized buffer). Perhaps a new attribute will be added in the future to support this case, at which point we can revert back some of the changes removed in this patch. But for now removing this code simplifies things. -
Florian Hahn authored
Instead of using the debug location of the underlying instruction, use the debug location from the recipe. This removes an unneeded dependency of the underlying instruction.
-
Sirraide authored
This removes a default argument that is currently broken in C++23 mode due to `std::default_delete` now being `constexpr`. This is a known problem (see #74963, #59966, #69996, and a couple more), fixing which will probably take some time, so this at least makes it possible to compile `ASTUnit.h` in C++23 mode. Note that we can’t simply include the header that provides the definition of the class causing the problem either, as that would create a circular dependency.
-
Danila Malyutin authored
Reduce its size from 24 to 12 bytes. Improves memory consumption when dealing with statepoint-heavy code.
-
Sam McCall authored
Summary: The logic to strip positional args feels very fragile, but it's terribly useful when you want to use a tool on a file and have the exact argv. Today doesn't work with header-parsing actions because these are "precompile" rather than "compile", from tooling's perspective it's all the same. Reviewers: kadircet Subscribers:
-
Graham Hunter authored
-
Daniil Dudkin authored
[clang-apply-replacements] Deduplicate Implementation of `collectReplacementsFromDirectory` (NFC) (#78630) * Convert `collectReplacementsFromDirectory` into a function template. * Employ explicit specialization to maintain implementation in the source file. * Utilize the function template in the source file to eliminate code duplication. * Update the documentation for the function.
-
Matthias Springer authored
This commit simplifies a helper function in the ownership-based buffer deallocation pass. Fixes a potential double-free (depending on the scheduling of patterns).
-
Jay Foad authored
This is no longer needed now that we have implemented GFX12 encoding for all instructions.
-
David Spickett authored
This reverts commit 228aecbc. Failing expensive checks: https://lab.llvm.org/buildbot/#/builders/16/builds/59798
-
Jay Foad authored
Use OtherPredicates to avoid interfering with other uses of SubtargetPredicate for GFX12.
-
Florian Hahn authored
The test requires asserts, as it depends on the default value for -lto-discard-value-names at the moment.
-
Stefan Gränitz authored
Add methods `registerGOTEntry()` and `registerStubEntry()` in `Session::FileInfo` to factor out generic code from the individual object type implementations.
-
Benjamin Chetioui authored
-
David Spickett authored
Fixes #77915 Previously I based the operand copying on expandCALL_RVMARKER but did not understand it properly at the time. This lead to me dropping the arguments of the function being branched to. This fixes that by copying all operands from the BLR_BTI to the BL/BLR without skipping anything. I've updated the existing test by adding function arguments.
-
Han-Chung Wang authored
-
Mariusz Sikora authored
-
Sofía Rodríguez authored
Currently, ExtractAPI provides availability information for all platforms within a given domain. With this change, we narrow down the output to include availability details only for the specified target platform, so users can generate the symbol graph with only the availability information they need, omitting information of the other platforms. This change reverts the functionality introduced in [`57c9780d`](https://github.com/llvm/llvm-project/commit/57c9780). rdar://120419037
-
Kiran Chandramohan authored
This reverts commit c2b3f16f.
-
Mirko Brkušanin authored
-
Florian Hahn authored
This patch introduces a new common base class for recipes defining a single result VPValue. This has been discussed/mentioned at various previous reviews as potential follow-up and helps to replace various getVPSingleValue calls. PR: https://github.com/llvm/llvm-project/pull/77023
-
Leon Clark authored
Add custom lowering for ctlz.i8 to avoid multiple add/sub operations. --------- Co-authored-by:
Leon Clark <leoclark@amd.com> Co-authored-by:
Matt Arsenault <Matthew.Arsenault@amd.com>
-
Tobias Gysi authored
This revision updates the LLVM IR import to support unreachable basic blocks. An unreachable block may dominate itself and a value defined inside the block may thus be used before its definition. The import does not support such dependencies. We thus delete the unreachable basic blocks before the import. This is possible since MLIR does not have basic block labels that can be reached using an indirect call and unreachable blocks can indeed be deleted safely. Additionally, add a small poison constant import test.
-
Wang Pengcheng authored
`Fusion` is inherited from `SubtargetFeature` now. Each definition of `Fusion` will define a `SubtargetFeature` accordingly. Method `getMacroFusions` is added to `TargetSubtargetInfo`, which returns a list of `MacroFusionPredTy` that will be evaluated by MacroFusionMution. `getMacroFusions` will be auto-generated if the target has `Fusion` definitions.
-
Twice authored
[libc++] Implement LWG3940: std::expected<void, E>::value() also needs E to be copy constructible (#71819) This patch includes the fix for [LWG3940](https://cplusplus.github.io/LWG/issue3940) (`std::expected<void, E>::value()` also needs `E` to be copy constructible)
-
Aiden Grossman authored
This patch adds support for validation counters. Validation counters can be used to measure events that occur during snippet execution like cache misses to ensure that certain assumed invariants about the benchmark actually hold. Validation counters are setup within a perf event group, so are turned on and off at exactly the same time as the "group leader" counter that measures the desired value.
-
Hans Wennborg authored
The test fails on Darwin, see comment on the PR. > std:: usually is not a cause of the bug. > > We now display > ``` > SUMMARY: AddressSanitizer: allocation-size-too-big path/to/allocator_returns_null.cpp:92:7 in main > ``` > instead of > > ``` > SUMMARY: AddressSanitizer: allocation-size-too-big /usr/lib/../include/c++/13/bits/new_allocator.h:147:27 in std::__new_allocator<char>::allocate(unsigned long, void const*) > ``` > > `/include/c++/` matches both libc++ and libstdc++ include paths. This reverts commit ecd47811.
-
Kareem Ergawy authored
If `generateLLVMIR()` fails, we still continue using the module we failed to generate which causes a seg fault if LLVM code-gen failed for some reason or another. This commit fixes this issue. Re-applies PR #78269 and adds LLVM and MLIR dependencies that were missed in the PR. The missing libs were: `LLVMCore` & `MLIRIR`. This reverts commit 4fc75062.
-
Matthias Springer authored
Clean up code and remove dead code.
-
LLVM GN Syncbot authored
-
Timm Baeder authored
Add an `EvaluationResult` class. This contains the result either as a `Pointer` or as a `APValue`. This way, we can inspect the result of the evaluation and diagnose problems with it (e.g. uninitialized fields in global initializers or pointers pointing to things they shouldn't point to).
-
Guillaume Chatelet authored
-
Andrzej Warzyński authored
-
Fangrui Song authored
The test (from https://reviews.llvm.org/D7098) is about the interaction of VLA and alloca where the VLA causes alloca to have the same address. This is mostly about behavior checking and less about instrumentation correctness, so I think it is fair to disable it for a platform that does not work after StackSafetyAnalysis is enabled by default (#77210).
-
Guillaume Chatelet authored
Also turn a set of `get_biased_exponent() == 0` into `is_subnormal()` which is clearer.
-
Guillaume Chatelet authored
-
Timm Baeder authored
Allocate storage for them, initialize the first member with the given value and the second member to 0.
-
Guillaume Chatelet authored
GCC complains about "type qualifiers ignored on cast result type". Upon investigation the correct fix was to remove all `volatile` and use the `-frounding-math` option.
-
Kazu Hirata authored
-
Kazu Hirata authored
-