- Apr 23, 2024
-
-
Mogball authored
This PR massively reorganizes the Test dialect's source files. It moves manually-written op hooks into `TestOpDefs.cpp`, moves format custom directive parsers and printers into `TestFormatUtils`, adds missing comment blocks, and moves around where generated source files are included for types, attributes, enums, etc. into their own source file. This will hopefully help navigate the test dialect source code, but also speeds up compile time of the test dialect by putting generated source files into separate compilation units. This also sets up the test dialect to shard its op definitions, done in the next PR. stack-info: PR: https://github.com/llvm/llvm-project/pull/89424, branch: users/mogball/pr_2
-
Mogball authored
Adds an option to `mlir-tblgen -gen-op-defs` `op-shard-count=N` that divides the op class definitions and op list into N segments, e.g. ``` // mlir-tblgen -gen-op-defs -op-shard-count=2 void FooDialect::initialize() { addOperations< >(); addOperations< >(); } ``` When split across multiple source files, this can help significantly improve dialect compile time for dialects with a large opset. stack-info: PR: https://github.com/llvm/llvm-project/pull/89423, branch: users/mogball/pr_1 -
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 ``` -
Oleksandr "Alex" Zinenko authored
-
Louis Dionne authored
The modulemap file is not generated anymore, so it's just part of our list of includes and gets installed like every other header. We don't need a special step to install it anymore. This was overlooked when I removed the generation of the modulemap file.
-
Louis Dionne authored
We can instead generate it on-the-fly when we install the headers. This reduces the amount of boilerplate we have to re-generate whenever we add, remove or relocate header files. Fixes #88529
-
Jay Foad authored
-
Timm Bäder authored
-
Timm Bäder authored
-
Stephen Tozer authored
Verify-uselistorder wants to take some input IR and verify that the uselist order is stable after roundtripping to bitcode and assembly. This is disrupted if the file is converted between the new and old debug info formats after parsing - while there's no functional difference, the change to the in-memory representation of the IR modifies the uselist. This patch changes verify-uselistorder to not convert input files between debug info formats by default, preventing changes from being made to the file being checked. In addition, this patch makes it so that when we _do_ print IR in the new debug info format to bitcode or assembly, we delete any lingering debug intrinsic declarations, ensuring that we don't write uselist entries for them.
-
aniplcc authored
Closes #89192.
-
Ellis Hoag authored
The original comments mention `addPreLinkLTODefaultPipeline`, but I could not find any functions with this name, even in https://reviews.llvm.org/D33540 (8b3be4e5) where this comment was added. I assume they meant to refer to `buildThinLTOPreLinkDefaultPipeline` and `buildLTOPreLinkDefaultPipeline` and so this patch uses them.
-
Matt Arsenault authored
This had some repeated and overlapping conditions, which made it more difficult to handle the new metadata scheme. Reflow the function to handle the easy LDS cases first. For the flat/global cases, write in a positive-enabled style where everything unhandled hits a default cmpxchg. Depends #89468
-
Jay Foad authored
When exhaustive unary/binary tests fail, print the name of the function being tested as well as the values of the inputs and outputs. Example of a simulated failure in testing "udiv exact": unittests/Support/KnownBitsTest.cpp:99: Failure Value of: checkResult(Name, Exact, Computed, {Known1, Known2}, CheckOptimality) Actual: false (udiv exact: Inputs = ???1, ????, Computed = ???1, Exact = 0???) Expected: true
-