- May 18, 2024
-
-
Dan Liew authored
0ec3b972 changed the `counted_by` attribute to be `LateAttrParseExperimentalExt`. This means the attribute is no longer supported by `#pragma clang attribute`. However, the `pragma-attribute-supported-attributes-list.test` wasn't updated to account for that. rdar://125400257
-
Nathan Sidwell authored
`isUnsupportedBranch` is not a very informative name, and doesn't match its corresponding `reverseBranchCondition`, as I noted in PR #92018. Here's a renaming to a more mnemonic name.
-
Fangrui Song authored
Regression test for 1e5f29af Reduced from Linux kernel arch/x86/crypto/sha1_avx2_x86_64_asm.S
-
Dan Liew authored
Previously the attribute was only allowed on flexible array members. This patch patch changes this to also allow the attribute on pointer fields in structs and also allows late parsing of the attribute in some contexts. For example this previously wasn't allowed: ``` struct BufferTypeDeclAttributePosition { size_t count; char* buffer __counted_by(count); // Now allowed } ``` Note the attribute is prevented on pointee types where the size isn't known at compile time. In particular pointee types that are: * Incomplete (e.g. `void`) and sizeless types * Function types (e.g. the pointee of a function pointer) * Struct types with a flexible array member This patch also introduces late parsing of the attribute when used in the declaration attribute position. For example ``` struct BufferTypeDeclAttributePosition { char* buffer __counted_by(count); // Now allowed size_t count; } ``` is now allowed but **only** when passing `-fexperimental-late-parse-attributes`. The motivation for using late parsing here is to avoid breaking the data layout of structs in existing code that want to use the `counted_by` attribute. This patch is the first use of `LateAttrParseExperimentalExt` in `Attr.td` that was introduced in a previous patch. Note by allowing the attribute on struct member pointers this now allows the possiblity of writing the attribute in the type attribute position. For example: ``` struct BufferTypeAttributePosition { size_t count; char *__counted_by(count) buffer; // Now allowed } ``` However, the attribute in this position is still currently parsed immediately rather than late parsed. So this will not parse currently: ``` struct BufferTypeAttributePosition { char *__counted_by(count) buffer; // Fails to parse size_t count; } ``` The intention is to lift this restriction in future patches. It has not been done in this patch to keep this size of this commit small. There are also several other follow up changes that will need to be addressed in future patches: * Make late parsing working with anonymous structs (see `on_pointer_anon_buf` in `attr-counted-by-late-parsed-struct-ptrs.c`). * Allow `counted_by` on more subjects (e.g. parameters, returns types) when `-fbounds-safety` is enabled. * Make use of the attribute on pointer types in code gen (e.g. for `_builtin_dynamic_object_size` and UBSan's array-bounds checks). This work is heavily based on a patch originally written by Yeoul Na. rdar://125400257 Co-authored-by:Dan Liew <dan@su-root.co.uk>
-
Fangrui Song authored
This reverts commit c6e787f7. parseEOL() would remove \n # after .endr, not recognizing the line marker. ``` // reduced from Linux kernel arch/x86/crypto/sha1_avx2_x86_64_asm.S .rept 1 nop .endr # 512 "a.s" ```
-
Matt Arsenault authored
-
Joseph Huber authored
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.
-
Joseph Huber authored
Summary: This patch cleans up the training whitespace in a bunch of tests and CMake files. Most just in preparation for other cleanups.
-
Mircea Trofin authored
Compile with clang a program that's instrumented for contextual profiling and verify a profile can be collected.
-
Fangrui Song authored
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
-
Jeremy Kun authored
https://lab.llvm.org/buildbot/#/builders/268/builds/14288 ```undefined reference to `mlir::detail::TypeIDResolver<mlir::arith::ConstantOp, void>::id'```
-
Jeremy Kun authored
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>
-
Jonas Devlieghere authored
Fixes new test that were added or modified after #82073. Also fixes a formatting issue.
-
jiajie zhang authored
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
-
Jonas Devlieghere authored
-
Vlad Serebrennikov authored
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.
-
Jeremy Kun authored
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>
-
Valentin Clement (バレンタイン クレメン) authored
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.
-
Walter Erquinigo authored
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.
-
Dmitry Vasilyev authored
Install `_exe_to_attach` to a remote target if necessary.
-
Benjamin Maxwell authored
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.
-
Vlad Serebrennikov authored
-
Mital Ashok authored
[Clang][Sema] Fix last argument not being used when comparing function template specializations when one has an explicit object argument (#92263) Fixes #92188
-
- May 17, 2024
-
-
Christian Ulmann authored
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
-
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.
-