- May 23, 2024
-
-
shaw young authored
Remove calls to std::unordered_map::at, std::map::at, and std::vector::at.
-
Amir Ayupov authored
Unbreak shared build after https://github.com/llvm/llvm-project/pull/91683
-
Adam Siemieniuk authored
Extends `tensor.empty` folding patterns with pack and unpack consumers to fold away the operations when their source is empty.
-
- May 22, 2024
-
-
Joseph Huber authored
Summary: CUDA does its versioning by putting a redirection in the header so the API functions remain the same while the symbol changes. These weren't being used for some functions that required it in the dynamic cuda version. These functions have newer verisons that should be used. These are fairly old as far as I'm aware so we should be able to sweep backward compatibility under the rug.
-
Sirraide authored
This is a followup to #81014 and #84582: Before this patch, Clang would accept `__attribute__((assume))` and `[[clang::assume]]` as nonstandard spellings for the `[[omp::assume]]` attribute; this resulted in a potentially very confusing name clash with C++23’s `[[assume]]` attribute (and GCC’s `assume` attribute with the same semantics). This pr replaces every usage of `__attribute__((assume))` with `[[omp::assume]]` and makes `__attribute__((assume))` and `[[clang::assume]]` alternative spellings for C++23’s `[[assume]]`; this shouldn’t cause any problems due to differences in appertainment and because almost no-one was using this variant spelling to begin with (a use in libclc has already been changed to use a different attribute).
-
Timm Bäder authored
-
Adrian Prantl authored
This change is a general improvement of the internal API. My motivation is to use this in the Swift typesystem plugin.
-
Krzysztof Parzyszek authored
`SelectCaseOp::getCompareOperands` may return an empty range for the "default" case. Do not dereference the range until it is expected to be non-empty. This was detected by address-sanitizer.
-
Tom Eccles authored
This pass is module-level and then runs on all operations implementing the ordered assignment interface. It should not matter which top-level operation the assignment is inside of. This commit removes some unnecessary boilerplate that we can generate automatically with tablegen.
-
Balazs Benics authored
Fixes #71161 [D64087](https://reviews.llvm.org/D64087 ) updated some locations of the instantiated method but forgot `DNLoc`. `FunctionDecl::getNameInfo()` constructs a `DeclarationNameInfo` using `Decl::Loc` as the beginning of the declaration name, and `FunctionDecl::DNLoc` to compute the end of the declaration name. The former was updated, but the latter was not, so `DeclarationName::getSourceRange()` would return a range where the end of the declaration name could come before its beginning. Patch by Alejandro Alvarez Ayllon Co-authored-by: steakhal CPP-5166 Co-authored-by:
Alejandro Alvarez Ayllon <alejandro.alvarez@sonarsource.com>
-
Yingwei Zheng authored
This patch widens the illegal shamt type `i48` -> `i64` to fix legalization failure: https://godbolt.org/z/4zMTnoW7h
-
Yingwei Zheng authored
Fixes an error that llc fails to legalize `G_CONSTANT_FOLD_BARRIER` with i16/i128: https://godbolt.org/z/f9n6xM3sv
-
Timm Bäder authored
-
Han-Kuan Chen authored
-
Thomas Symalla authored
There's currently no way to control whether a null terminator should be appended to the string created in `CreateGlobalString` / `CreateGlobalStringPtr`, since the methods don't expose an additional argument. This change adds an additional argument to the methods that has the same default value, `true`, as in `ConstantDataArray::getString`, and passes it down to this internal method.
-
Matheus Izvekov authored
This is an enabler for https://github.com/llvm/llvm-project/pull/92855 This allows an NTTP default argument to be set as an arbitrary TemplateArgument, not just an expression. This allows template parameter packs to have default arguments in the AST, even though the language proper doesn't support the syntax for it. This allows NTTP default arguments to be other kinds of arguments, like packs, integral constants, and such.
-
Alexey Bataev authored
Need to check if the loads node is masked gather. Only vectorized loads can be converted to strided.
-
Jay Foad authored
-
Mikhail Goncharov authored
-
Matt Arsenault authored
I noticed this was possibly buggy with implicit operands with the same dest register, and should maybe be using addRegisterDead. However, this is never called in a situation where the operand wasn't already marked dead. This is eliminateDeadDef, implying the def was already known to be dead. Add an assert to detect inconsistencies in dead flags. This was apparently added in 9a16d655.
-
Mikhail Goncharov authored
-
Emma Pilkington authored
This was breaking the CFG connection between uses of virtual registers after the trap and their definitions before it. Fixes SWDEV-460384. Fixes a bug in #85854.
-
YunQiang Su authored
The option pairs include: -mfpxx -mips1 -msoft-float -mmsa -mmsa -mabi=32 with 32bit pre-R2 CPUs -mfpxx -mmsa -mfp32 -mmsa
-
Mikhail Goncharov authored
to avoid circular dependency introduced in a9b67490
-
Yingwei Zheng authored
If the RHS is a constant with X trailing zeros, then the X MSBs of the LHS are not demanded. Alive2: https://alive2.llvm.org/ce/z/F5CyJW Fixes https://github.com/llvm/llvm-project/issues/56645.
-
Ye Luo authored
Since #87009, libomptarget directly links all the plugins statically. All the dependencies of plugins got exposed to libomptarget. The CUDA plugin depends on libcuda and the amdgpu plugin depends on libhsa if not forced using dlopen. On a cluster with different compute node architectures, libomptarget can be built and run on different nodes. In the build stage, if cmake founds libcuda and `LIBOMPTARGET_FORCE_DLOPEN_LIBCUDA=OFF`, libomptarget links libcuda.so directly and the result libomptarget may not run a node without a NVIDIA driver for example a CPU or AMD GPU only machine with a complaint that libcuda.so not found. The solution is setting `LIBOMPTARGET_FORCE_DLOPEN_LIBCUDA` and `LIBOMPTARGET_FORCE_DLOPEN_LIBHSA` `ON`. Preferably this should be default to maximize the usability of libomptarget. If cmake detects NVIDIA or AMD software on an OS imaging building node, the resulted libomptarget may not be able to function on the user side due to the requirement the existence of vendor runtime libraries.
-
Alexey Karyakin authored
Report an error if a required value for a command line argument is missing.
-
Corentin Ferry authored
This commit adds conversion to EmitC for arith dialect casts between integer types (trunc, extsi, extui), excluding indexes for now.
-
Rin Dobrescu authored
This patch overrides the clearsSuperRegisters method defined in MCInstrAnalysis to identify register writes that clear the upper portion of all super-registers on AArch64 architecture. On AArch64, a write to a general-purpose register of 32-bit data size is defined to use the lower 32-bits of the register and zero extend the upper 32-bits. Similarly, SIMD and FP instructions operating on scalar data only access the lower bits of the SIMD&FP register. The unused upper bits are cleared to zero on a write. This also applies to SIMD vector registers when the element size in bits multiplied by the number of lanes is lower than 128. The upper 64 bits of the vector register are cleared to zero on a write.
-
Timm Bäder authored
This resolves an older FIXME comment.
-
Timm Bäder authored
-
Simon Pilgrim authored
Pulled from #92096
-
Tom Eccles authored
I believe these were forgotten when copying the clang in #86816. This was flagged because the CHECK lines for CHECK-LD-ANY* had no associated RUN line. See https://github.com/llvm/llvm-project/pull/92387#issuecomment-2119170354
-
Donát Nagy authored
This commit eliminates a redundant matcher subexpression from the implementation of the "sizeof-pointer-to-aggregate" part of the clang-tidy check `bugprone-sizeof-expression`. I'm fairly certain that anything that was previously matched by the deleted matcher `StructAddrOfExpr` is also covered by the more general `PointerToStructExpr` (which remains in the same `anyOf`). This commit is made to "prepare the ground" for a followup change that would merge the functionality of the Clang Static Analyzer checker `alpha.core.SizeofPtr` into this clang-tidy check.
-
Janek van Oirschot authored
Redefines the amd_kernel_code_t struct with MCExprs for members that would be derived from SIProgramInfo MCExpr members.
-
Simon Pilgrim authored
-
Nikita Popov authored
This function will return nullptr instead of returning a constant expression now, so be sure to handle that. Fixes https://github.com/llvm/llvm-project/issues/93017.
-
Michael Kruse authored
OpenMP loop transformation did not work on a for-loop using an iterator or range-based for-loops. The first reason is that it combined the iterator's type for generated loops with the type of `NumIterations` as generated for any `OMPLoopBasedDirective` which is an integer. Fixed by basing all generated loop variables on `NumIterations`. Second, C++11 range-based for-loops include syntactic sugar that needs to be executed before the loop. This additional code is now added to the construct's Pre-Init lists. Third, C++20 added an initializer statement to range-based for-loops which is also added to the pre-init statement. PreInits used to be a `DeclStmt` which made it difficult to add arbitrary statements from `CXXRangeForStmt`'s syntactic sugar, especially the for-loops init statement which does not need to be a declaration. Change it to be a general `Stmt` that can be a `CompoundStmt` to hold arbitrary Stmts, inclu...
-
Michael Maitland authored
I had some trouble understanding why `removeReady` removed nodes from the Pending queue, since my intuition told me that the Pending queue did not represent a node that was ready. I took a deeper look and found that pickOnlyNode and pickNodeFromQueue only picked nodes from the Available queue too. I found that need to nodes from the Available and Pending queues that correspond to the opposite direction that we ended up choosing from (IsTopNode vs !IsTopNode). It took me a little longer than I would have liked to understand this fact, so I figured that I would add a comment in the code that makes it clear for future readers.
-
Krzysztof Parzyszek authored
Emit diagnostic messages for invalid modifiers in "reduction" clause. Fixes https://github.com/llvm/llvm-project/issues/92397
-