aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-05-17[Offload][NFC] Remove 'libomptarget' message helpers (#92581)Joseph Huber11-46/+27
Summary: This isn't `libomptarget` anymore, and these messages were always unnecessary because no other project uses these prefixed messages. The effect of this is that no longer will the logs have `LIBOMPTARGET --` in front of everything. We have a message stating when we start building the offload project so it'll still be trivial to find.
2024-05-17[Offload][NFC] Remove all trailing whitespace from offload/ (#92578)Joseph Huber51-263/+268
Summary: This patch cleans up the training whitespace in a bunch of tests and CMake files. Most just in preparation for other cleanups.
2024-05-17[ctx_profile] Integration test (#92456)Mircea Trofin3-0/+116
Compile with clang a program that's instrumented for contextual profiling and verify a profile can be collected.
2024-05-17[CodeGen] Support arrays with initializers of 64-bit sizeFangrui Song3-9/+19
Based on @OfekShochat's https://reviews.llvm.org/D133648 init.c is the primary test for array initialization, but it uses a 32-bit triple, which would lead to an "array is too large" error. Add the new test to array-init.c instead. Fix #57353 Pull Request: https://github.com/llvm/llvm-project/pull/92473
2024-05-17[mlir] add arith dialect dep to fix buildbot failure (#92585)Jeremy Kun1-0/+1
https://lab.llvm.org/buildbot/#/builders/268/builds/14288 ```undefined reference to `mlir::detail::TypeIDResolver<mlir::arith::ConstantOp, void>::id'```
2024-05-17Poly canonicalization (#91410)Jeremy Kun6-0/+138
Adds simple canonicalization rules to the polynomial dialect. Mainly to get the boilerplate incorporated before more substantial canonicalization patterns are added. --------- Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
2024-05-17[lldb-dap] Replace `assertEquals` with `assertEqual` (NFC)Jonas Devlieghere2-49/+57
Fixes new test that were added or modified after #82073. Also fixes a formatting issue.
2024-05-18[reland][flang] Add ETIME runtime and lowering intrinsics implementation ↵jiajie zhang13-5/+384
(#92571) This is same as https://github.com/llvm/llvm-project/pull/90578 with an added fix. This PR updated tests of etime intrinsic due to Lowering changes for assigning dummy_scope to hlfir.declare. Referring to https://github.com/llvm/llvm-project/pull/92472 and https://github.com/llvm/llvm-project/pull/90989
2024-05-17[lldb] Include SBLanguages in the SWIG bindings (#92470)Jonas Devlieghere5-0/+6
2024-05-17[clang] Introduce `SemaCodeCompletion` (#92311)Vlad Serebrennikov17-1022/+1203
This patch continues previous efforts to split `Sema` up, this time covering code completion. Context can be found in #84184. Dropping `Code` prefix from function names in `SemaCodeCompletion` would make sense, but I think this PR has enough changes already. As usual, formatting changes are done as a separate commit. Hopefully this helps with the review.
2024-05-17[mlir][polynomial] implement add for polynomial data structure (#92169)Jeremy Kun4-18/+118
A change extracted from https://github.com/llvm/llvm-project/pull/91655, where I'm still trying to get the attributes working for elementwise constant folding of polynomial ops. This piece is self-contained. - use CRTP for base classes - Add unit test --------- Co-authored-by: Jeremy Kun <j2kun@users.noreply.github.com>
2024-05-17[flang][cuda] Move CUDA Fortran operations to a CUF dialect (#92317)Valentin Clement (バレンタイン クレメン)56-817/+1184
The number of operations dedicated to CUF grew and where all still in FIR. In order to have a better organization, the CUF operations, attributes and code is moved into their specific dialect and files. CUF dialect is tightly coupled with HLFIR/FIR and their types. The CUF attributes are bundled into their own library since some HLFIR/FIR operations depend on them and the CUF dialect depends on the FIR types. Without having the attributes into a separate library there would be a dependency cycle.
2024-05-17[LSP] Use std::string for storing the Reply method (#92464)Walter Erquinigo1-1/+1
This was using a StringRef, which is very unsafe because the method name might just get disposed due to the async nature of the response. This was causing weird characters being printed in the output logs.
2024-05-17[lldb] Fixed the test TestGdbRemoteAttachWait running on a remote target ↵Dmitry Vasilyev1-1/+4
(#92413) Install `_exe_to_attach` to a remote target if necessary.
2024-05-17[mlir][vector] Fix scalability issues in drop innermost unit dims transfer ↵Benjamin Maxwell2-4/+65
patterns (#92402) Previously, these rewrites would drop scalable dimensions and treated `[1]` (scalable one dim) as a unit dimension. This patch propagates scalable dimensions and ensures `[1]` is not treated as a unit dimension.
2024-05-17[clang][NFC] Remove an unnecessary `const_cast`Vlad Serebrennikov1-1/+1
2024-05-17[Clang][Sema] Fix last argument not being used when comparing function ↵Mital Ashok3-2/+66
template specializations when one has an explicit object argument (#92263) Fixes #92188
2024-05-17[MLIR][ArmSME] Fix for block sorting refactorChristian Ulmann1-1/+1
This commit fixes a breakage introduced by changing the name of the block sorting function. Related PR: https://github.com/llvm/llvm-project/pull/92558
2024-05-17[MLIR][Transforms] Correct block sorting utils name (NFC) (#92558)Christian Ulmann6-34/+33
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.
2024-05-17[clang][NFC] Remove `const_cast` from `Preprocessor::addModuleMacro()`Vlad Serebrennikov3-5/+5
2024-05-17[flang] Allow flexible producer name in #di_compile_unit (NFC) (#92462)Kelvin Li2-4/+4
2024-05-17[Support] Drop nop conversions of StringRef to StringRef (NFC)Kazu Hirata1-1/+1
Both sides here are known to be of StringRef.
2024-05-17[mlir][spirv] Add support for dense_resource in arith to spirv (#91318)maxbartel3-5/+97
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.
2024-05-17[clang][NFC] Improve const-correctness in `ParseLexedMethodDeclaration`Vlad Serebrennikov1-2/+2
2024-05-17[HLSL][CMake] Add clangd and distribution settings (#92011)Chris B1-1/+7
This just adds some simple distribution settings and includes clangd in the build for distribution.
2024-05-17[Offload][NFC] Remove header license in CMake files (#92544)Joseph Huber12-141/+3
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.
2024-05-17[X86] vector-bitreverse.ll - add AVX512BW+AVX512VL test coverageSimon Pilgrim1-0/+1
2024-05-17[AArch64] Add intrinsics for multi-vector to ZA array vector accumulators ↵Momchil Velikov6-9/+389
(#91606) [Recommit of e88ba6d975d887ca001cae30bfa0c53d91165148] 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.
2024-05-17[clang][NFC] Remove const-qualification from ↵Vlad Serebrennikov5-27/+23
`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
2024-05-17[git] Add hashes to requirements.txt for extra security (#92305)Tom Stellard9-25/+301
https://pip.pypa.io/en/stable/topics/secure-installs/
2024-05-17[clang][NFC] Remove `const_cast` from `ParseClassSpecifier`Vlad Serebrennikov6-42/+45
2024-05-17[MLIR][OpenMP] NFC: Remove redundant check (#91594)Sergio Afonso1-4/+0
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`.
2024-05-17[Flang][OpenMP] NFC: Fix typo in include guard (#91593)Sergio Afonso1-3/+3
2024-05-17[Flang][OpenMP] Fix semantics check for nested DISTRIBUTE (#91592)Sergio Afonso2-1/+9
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.
2024-05-17[clang][Sema] Warn consecutive builtin comparisons in an expression (#92200)Youngsuk Kim9-8/+31
Add warning under `-Wparentheses` for consistency with `gcc 14.1`. Closes #20456 --------- Co-authored-by: Aaron Ballman <aaron@aaronballman.com>
2024-05-17[Clang][AArch64] Require SVE or SSVE for scalable types. (#91356)Sander de Smalen19-125/+216
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.
2024-05-17libclc: remove __attribute__((assume)) for clspv targets (#92126)Romaric Jodin7-2/+38
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
2024-05-17[AArch64] Avoid using NEON FCVTXN in Streaming-SVE mode. (#91981)Sander de Smalen2-24/+39
2024-05-17SimplifyLibCalls: Prefer to emit intrinsic in pow(2, x) -> ldexp(1, x) (#92363)Matt Arsenault4-11/+511
2024-05-17[clang-query] Remove support for srcloc output (#92442)Aaron Ballman25-3213/+22
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
2024-05-17[clang] Implement CWG2428 "Deprecating a concept" (#92295)Vlad Serebrennikov10-10/+95
This patch allows attributes to be attached to C++20 concepts, implementing [CWG2428](https://cplusplus.github.io/CWG/issues/2428.html).
2024-05-17[InstCombine] Fold vector.reduce.op(vector.reverse(X)) -> ↵David Sherwood3-20/+308
vector.reduce.op(X) (#91743) 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
2024-05-17[X86][CodeGen] Use switch-case for transform in ↵Shengchen Kan1-107/+120
X86DAGToDAGISel::PostprocessISelDAG, NFCI This is to simplify code for #91747
2024-05-17[mlir][Transforms] Make 1:N function conversion pattern interface-based (#92395)Matthias Springer3-45/+75
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`.
2024-05-17[MLIR][analysis] Lattice: Fix automatic delegation of meet to lattice value ↵Andi Drebes2-21/+47
classes (#82620) 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.
2024-05-17[SelectionDAG] Widen cttz to cttz_zero_undef (#92514)Jay Foad5-36/+24
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.
2024-05-17[VPlan] Mark LoopInfo preserved in native-path as well (NFC).Florian Hahn2-4/+4
LoopInfo is updated during VPlan execution now, so it will also be updated correctly in the native path.
2024-05-17SystemZ: Use REG_SEQUENCE for PAIR128 (#90640)Matt Arsenault2-21/+13
PAIR128 should probably just be removed entirely Depends #90638
2024-05-17[analyzer][NFC] Require explicit matching mode for CallDescriptions (#92454)Donát Nagy8-56/+51
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.
2024-05-17[NFC][LLVM] Mainly whitespace changes.Paul Walker4-2/+4
Also marks AliasSetTracker::size() as const.