- Apr 23, 2024
-
-
Nikolas Klauser authored
Currently `__is_trivially_equality_comparable` is documented to return true if comparing the value representation is equivalent to calling the comparison operator, which is not quite what the trait actually checks. The traits actually checks that comparing the object representation is equivalent, which means that there cannot be padding bytes in the type.
-
zibi2 authored
This PR fixes the build errors for one of the `clangd` unit tests bucket similar to the following: ``` .../clang-tools-extra/clangd/unittests/FindTargetTests.cpp:430:29: error: passing no argument for the '...' parameter of a variadic macro is a C++20 extension [-Werror,-Wc++20-extensions] 430 | EXPECT_DECLS("AutoTypeLoc"); | ^ .../clang-tools-extra/clangd/unittests/FindTargetTests.cpp:98:9: note: macro 'EXPECT_DECLS' defined here 98 | #define EXPECT_DECLS(NodeType, ...) \ | ^ ``` This happens when using a build compiler with #84520. The fix is to include commas to compensate for empty vararg macro arguments in a few instances. -
Kai Nacke authored
Use the new getPointerSize() function throughout the frame lowering class.
-
ZijunZhaoCCK authored
Make it part of -Wformat-pedantic. Fixes #81647
-
Iman Hosseini authored
Fix parsing of cuda_kernel: it missed a mlir::succeeded check and it was not setting up the `types` and causing mismatch between values and types of the grid/block (CUFKernelValues). @clementval --------- Co-authored-by:
Iman Hosseini <imanh@nvidia.com> Co-authored-by:
Valentin Clement (バレンタイン クレメン) <clementval@gmail.com>
-
Stephen Tozer authored
As the goal of LLVM reduce is to simplify the input file, it should not modify the debug info format - doing so by default would make it impossible to reduce an error that only occurs in the old format, for example (as briefly discussed at https://github.com/llvm/llvm-project/pull/86275). This patch uses the new "preserve debug info format" flag in llvm-reduce to prevent the input from being subtly transformed by llvm-reduce itself; this has no effect on any tools used for the interestingness check (i.e. if `opt` is invoked, it will still convert the reduced input to the new format by default), but simply ensures that the reduced file is strictly reduced rather than modified.
-
Johannes Doerfert authored
In a nutshell, this moves our libomptarget code to populate the offload subproject. With this commit, users need to enable the new LLVM/Offload subproject as a runtime in their cmake configuration. No further changes are expected for downstream code. Tests and other components still depend on OpenMP and have also not been renamed. The results below are for a build in which OpenMP and Offload are enabled runtimes. In addition to the pure `git mv`, we needed to adjust some CMake files. Nothing is intended to change semantics. ``` ninja check-offload ``` Works with the X86 and AMDGPU offload tests ``` ninja check-openmp ``` Still works but doesn't build offload tests anymore. ``` ls install/lib ``` Shows all expected libraries, incl. - `libomptarget.devicertl.a` - `libomptarget-nvptx-sm_90.bc` - `libomptarget.rtl.amdgpu.so` -> `libomptarget.rtl.amdgpu.so.18git` - `libomptarget.so` -> `libomptarget.so.18git` Fixe...
-
Sirraide authored
This addresses two problems observed in #89407 wrt user-defined `static_assert` messages: 1. In `Expr::EvaluateCharRangeAsString`, we were calling `getExtValue()` instead of `getZExtValue()`, which would assert if a negative or very large number was returned from `size()`. 2. If the value could not be converted to `std::size_t`, attempting to diagnose that would crash because `ext_cce_narrowing` was missing two `%select` cases. This fixes #89407.
-
Farzon Lotfi authored
- `clang/lib/CodeGen/CGBuiltin.cpp` - switch to using `getLerpIntrinsic()` to abstract backend intrinsic - `clang/lib/CodeGen/CGHLSLRuntime.h` - add `getLerpIntrinsic()` - `llvm/include/llvm/IR/IntrinsicsSPIRV.td` - add SPIRV intrinsic for lerp - `llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp` - add mapping of HLSL's lerp to GLSL's Fmix. resolves #88940
-
Mircea Trofin authored
Reverts llvm/llvm-project#89304 Some build bot failures - will fix and reland. Example: https://lab.llvm.org/buildbot/#/builders/165/builds/52789
-
Simon Pilgrim authored
Once #89115 has landed, we can handle per-element rotates as well using (V)GF2P8MULB
-
Alexey Bataev authored
Introduced transformNodes() function to perform transformation of the nodes (cost-based, instruction count based, etc.). Implemented transformation of consecutive loads + reverse order to strided loads with stride -1, if profitable. Reviewers: RKSimon, preames, topperc Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/88530
-
Mircea Trofin authored
Add the component structure for contextual instrumented PGO and the bump allocator + test. (Tracking Issue: #89287, RFC referenced there)
-
Krystian Stasiowski authored
Removes an unused static function `IsOverloaded` from `SemaOverload.cpp` that is unused after #88731.
-
Paul Kirth authored
Upcoming patches will add TP relative stack checks for Android, and Linux currently uses the default GOT based stack protector.
-
Alex MacLean authored
Use the datalayout directly to determine the correct `cvta` instruction for converting shared/local/const pointers. This is cleaner as it eliminates the need to keep a redundant copy of this info in the TM and makes clear which address spaces short pointers are applicable for.
-
- Apr 22, 2024
-
-
Aaron Ballman authored
Bit-fields of bit-precise integer type do not promote to int, but instead promote to the type of the field. Fixes #87641
-
Erich Keane authored
num_gangs takes an 'int-expr-list', for 'parallel', and an 'int-expr' for 'kernels'. This patch changes the parsing to always parse it as an 'int-expr-list', then correct the expression count during Sema. It also implements the rest of the semantic analysis changes for this clause.
-
Krystian Stasiowski authored
Reapply "[Clang][Sema] Fix crash when 'this' is used in a dependent class scope function template specialization that instantiates to a static member function (#87541, #88311)" (#88731) Reapplies #87541 and #88311 (again) addressing the bug which caused expressions naming overload sets to be incorrectly rebuilt, as well as the bug which caused base class members to always be treated as overload sets. The primary change since #88311 is `UnresolvedLookupExpr::Create` is called directly in `BuildPossibleImplicitMemberExpr` with `KnownDependent` as `true` (which causes the expression type to be set to `ASTContext::DependentTy`). This ensures that any further semantic analysis involving the type of the potentially implicit class member access expression is deferred until instantiation.
-
Alexey Bataev authored
Need to relax assertion and check ReuseShuffleIndices is not empty, if the root phi node has reorder indices.
-
Alexey Bataev authored
The compiler should not take into account the type of the cmp instruction, otherwise it may treat the size incorrectly and it may lead to incorrect codegen.
-
Alexey Bataev authored
-
Kai Nacke authored
The implementation follows the ELF implementation.
-
Simon Pilgrim authored
[VectorCombine] foldShuffleOfShuffles - fold "shuffle (shuffle x, undef), (shuffle y, undef)" -> "shuffle x, y" (#88743) Another step towards cleaning up shuffles that have been split, often across bitcasts between SSE intrinsic. Strip shuffles entirely if we fold to an identity shuffle.
-
Florian Hahn authored
Extra tests with strides with different signs for https://github.com/llvm/llvm-project/pull/88039.
-
Haojian Wu authored
The argument types are not modeled as children of TypeTraitExpr, therefore they are not dumped with the default implementation. Dumping them is really useful for ad-hoc debugging, context #89358
-
Zequan Wu authored
This removes `m_forward_decl_die_to_compiler_type` which is a map from `const DWARFDebugInfoEntry *` to `lldb::opaque_compiler_type_t`. This map is currently used in `DWARFASTParserClang::ParseEnum` and `DWARFASTParserClang::ParseStructureLikeDIE` to avoid creating duplicate CompilerType for the specific DIE. But before entering these two functions in `DWARFASTParserClang::ParseTypeFromDWARF`, we already checked with `SymbolFileDWARF::GetDIEToType()` if we have a Type created from this DIE to avoid trying to parse the same DIE twice. So, this map is unnecessary and not useful.
-
Krystian Stasiowski authored
#84050 resolves class member access expressions naming members of the current instantiation prior to instantiation. In testing, it has revealed a mem-initializer in the move constructor of `invocable_with_telemetry` that uses an unparenthesized comma expression to initialize a non-static data member of pointer type. This patch fixes it.
-
Nico Weber authored
-
Alexey Bataev authored
Need to check all possible entries, before trying looking for the minbitwidth in the user node. Otherwise we may incorrectly get signedness info.
-
Timm Bäder authored
-
Timm Bäder authored
The assertion doesn't work if there are multiple declarations for a variable involved.
-
Timm Bäder authored
Move the iterator declarations into the if statements and return std::nullopt explicitly.
-
Alex Zinenko authored
Some docs were emitted into the wrong location (Polynomial/ instead of Dialect/). Furthermore, `-gen-dialect-docs` subsumes `-gen-attr/typedef-docs` so the latter are not required. Add a top-level entry that includes both other files in a proper order.
-
Leandro Lupori authored
COMMON block names must be declared in the same scoping unit in which the OpenMP directive or clause appears, but OpenMP constructs must not be considered as scoping units. Instead, consider only program units and block constructs as such.
-
Florian Hahn authored
As suggested in https://github.com/llvm/llvm-project/pull/88039, add extra documentation for reasoning in isDependent. PR: https://github.com/llvm/llvm-project/pull/89381
-
Shilei Tian authored
-
David Green authored
-
Phoebe Wang authored
Failed on main trunk: https://godbolt.org/z/edWMz8chE
-
Steven Varoumas authored
This transformation, inspired by what is done in hoist_redundant_transfers, hoists pairs of extract/broadcast operations out of scf.for loops. It changes a loop of the form: ``` %res = scf.for _ = _ to _ step _ iter_args(%iarg = %v) -> (t1) { %e = vector.extract %iarg : t1 to t2 %u = "some_use"(%e) : (t2) -> t2 %b = vector.broadcast %u : t2 to t1 scf.yield %b : t1 } ``` into the following: ``` %e = vector.extract %v: t1 to t2 %res' = scf.for _ = _ to _ step _ iter_args(%iarg = %e) -> (t2) { %u' = "some_use"(%iarg) : (t2) -> t2 scf.yield %u' : t2 } %res = vector.broadcast %res' : t2 to t1 ```
-