- May 17, 2024
-
-
Christian Ulmann authored
-
Christian Ulmann authored
-
Christian Ulmann authored
-
Christian Ulmann authored
-
Christian Ulmann authored
This commit renames the name of the block sorting utility function to `getBlocksSortedByDominance`. A topological order is not defined on a general directed graph, so the previous name did not make sense.
-
Vlad Serebrennikov authored
-
Kelvin Li authored
-
Kazu Hirata authored
Both sides here are known to be of StringRef.
-
maxbartel authored
This adds support for `dense_resource` in arith to spirv. Note that this inlines the blob into the IR. Another possibility would be to add proper dense_resource support to spirv, but there is a lot of special handling going on to convert a `DenseElementsAttr` to the correct SPIRV type. Some of that even iterates over all the values in the Attribute. For proper support of a `DenseResourceElementsAttr` this probably needs a redesign. I would like to hear some opinions on that! The test is disabled on non little Endian machines. See https://github.com/llvm/llvm-project/issues/63469 for more information.
-
Vlad Serebrennikov authored
-
Chris B authored
This just adds some simple distribution settings and includes clangd in the build for distribution.
-
Joseph Huber authored
Summary: No other project has these in the CMake itself, and they're wildly inconsistent even within the project. These don't really add anything so I think they should be removed.
-
Simon Pilgrim authored
-
Momchil Velikov authored
[Recommit of e88ba6d9] According to the specification in https://github.com/ARM-software/acle/pull/309 this adds the intrinsics void_svadd_za16_vg1x2_f16(uint32_t slice, svfloat16x2_t zn) __arm_streaming __arm_inout("za"); void_svadd_za16_vg1x4_f16(uint32_t slice, svfloat16x4_t zn) __arm_streaming __arm_inout("za"); void_svsub_za16_vg1x2_f16(uint32_t slice, svfloat16x2_t zn) __arm_streaming __arm_inout("za"); void_svsub_za16_vg1x4_f16(uint32_t slice, svfloat16x4_t zn) __arm_streaming __arm_inout("za"); as well as the corresponding `bf16` variants.
-
Vlad Serebrennikov authored
[clang][NFC] Remove const-qualification from `FunctionTemplateSpecializationInfo::TemplateArguments` (#92500) This patch remove const-qualification from pointee type of `FunctionTemplateSpecializationInfo::TemplateArguments`, because it's (eventually) used to initialize `MultiLevelTemplateArgumentList`, which can actually mutate the arguments via https://github.com/llvm/llvm-project/blob/f42f57b52dd279e6ae19270d063aeb8d59e3f11c/clang/include/clang/Sema/Template.h#L197-L204 Mutation seems to be required to correctly handle packs: https://github.com/llvm/llvm-project/blob/9144553207052a868efc5a8ce61a0afbb0eaf236/clang/lib/Sema/SemaTemplateInstantiate.cpp#L1440-L1469
-
-
Vlad Serebrennikov authored
-
Sergio Afonso authored
The check removed by this patch in the OpenMP to LLVM IR translation pass already exists as part of the op verifier for `omp.loop_nest`.
-
Sergio Afonso authored
-
Sergio Afonso authored
Composite OpenMP constructs where DISTRIBUTE is the first leaf construct, as well as standalone DISTRIBUTE constructs, are allowed inside of TEAMS regions. Before this patch, nesting a DISTRIBUTE construct inside of a combined TARGET TEAMS construct was disallowed, which it shouldn't be. Now both TEAMS and TARGET TEAMS constructs can be immediate parents of DISTRIBUTE constructs.
-
Youngsuk Kim authored
Add warning under `-Wparentheses` for consistency with `gcc 14.1`. Closes #20456 --------- Co-authored-by:Aaron Ballman <aaron@aaronballman.com>
-
Sander de Smalen authored
Scalable types are only available when: * The function is compiled with +sve * The function is compiled with +sme and the function is executed in Streaming-SVE mode.
-
Romaric Jodin authored
Instead add a proper attribute in clang, and add convert it to function metadata to keep the information in the IR. The goal is to remove the dependency on __attribute__((assume)) that should have not be there in the first place. Ref https://github.com/llvm/llvm-project/pull/84934
-
Sander de Smalen authored
-
Matt Arsenault authored
-
Aaron Ballman authored
This functionality was added about three years ago, but has been in a significantly broken state since it was added. It has begun to cause a maintenance burden for work in Clang (largely due to the complexity of having two levels of code generation involved), and the original author is unable to help maintain it. Because it only worked under limited circumstances and because of the maintenance burden, it is being removed. If someone wishes to resurrect the functionality, they should hopefully be able to do so from this one commit. Fixes #82591
-
Vlad Serebrennikov authored
This patch allows attributes to be attached to C++20 concepts, implementing [CWG2428](https://cplusplus.github.io/CWG/issues/2428.html).
-
David Sherwood authored
For all of the following reductions: vector.reduce.or vector.reduce.and vector.reduce.xor vector.reduce.add vector.reduce.mul vector.reduce.umin vector.reduce.umax vector.reduce.smin vector.reduce.smax vector.reduce.fmin vector.reduce.fmax if the input operand is the result of a vector.reverse then we can perform a reduction on the vector.reverse input instead since the answer is the same. If the reassociation is permitted we can also do the same folds for these: vector.reduce.fadd vector.reduce.fmul
-
Shengchen Kan authored
This is to simplify code for #91747
-
Matthias Springer authored
This commit turns the 1:N dialect conversion pattern for function signatures into a pattern for `FunctionOpInterface`. This is similar to the interface-based pattern that is provided with the 1:1 dialect conversion (`populateFunctionOpInterfaceTypeConversionPattern`). No change in functionality apart from supporting all `FunctionOpInterface` ops and not just `func::FuncOp`.
-
Andi Drebes authored
The class `Lattice` should automatically delegate invocations of the meet operator to the meet operation of the associated lattice value class if that class provides a static function called `meet`. This process fails for two reasons: 1. `Lattice::has_meet` checks for a member function `meet` without arguments of the lattice value class, although it should check for a static member function. 2. The function template `Lattice::meet<VT>()` implementing the default meet operation directly in the lattice is always present and takes precedence over the delegating function template `Lattice::meet<VT, std::integral_constant<bool, true>>()`. This change fixes the automatic delegation of the meet operation of a lattice to the lattice value class in the presence of a static `meet` function by conditionally enabling either the delegating function template or the non-delegating function template and by changing `Lattice::has_meet` so that it checks for a static `meet` member function in the lattice value type. The test from `TestSparseBackwardDataFlowAnalysis.cpp` is changed, such that the `meet` function is not provided directly in the `WrittenTo` lattice, but by the `Lattice` base class in order to trigger delegation to a lattice value class.
-
Jay Foad authored
Instead of widening e.g. i8 cttz(x) to i16 cttz(x | 0x100), use the more optimizable form cttz_zero_undef(x | 0x100) since the widened operand is definitely not zero.
-
Florian Hahn authored
LoopInfo is updated during VPlan execution now, so it will also be updated correctly in the native path.
-
Matt Arsenault authored
PAIR128 should probably just be removed entirely Depends #90638
-
Donát Nagy authored
This commit deletes the "simple" constructor of `CallDescription` which did not require a `CallDescription::Mode` argument and always used the "wildcard" mode `CDM::Unspecified`. A few months ago, this vague matching mode was used by many checkers, which caused bugs like https://github.com/llvm/llvm-project/issues/81597 and https://github.com/llvm/llvm-project/issues/88181. Since then, my commits improved the available matching modes and ensured that all checkers explicitly specify the right matching mode. After those commits, the only remaining references to the "simple" constructor were some unit tests; this commit updates them to use an explicitly specified matching mode (often `CDM::SimpleFunc`). The mode `CDM::Unspecified` was not deleted in this commit because it's still a reasonable choice in `GenericTaintChecker` and a few unit tests.
-
Paul Walker authored
Also marks AliasSetTracker::size() as const.
-
David Green authored
-
Ivan Kosarev authored
MCObjectStreamer already accepts unknown types.
-
Benjamin Maxwell authored
It did not make sense that this said "all tile operations will go through memory". Only the operations where the warning is emitted will go through memory. The message has been updated to reflect that.
-
Johannes Reifferscheid authored
See the test file. At head, this crashes with ``` assertion failed at llvm/lib/Support/APInt.cpp:492 in uint64_t llvm::APInt::extractBitsAsZExtValue(unsigned int, unsigned int) const: bitPosition < BitWidth && (numBits + bitPosition) <= BitWidth && "Illegal bit extraction" ```
-