- Jul 27, 2023
-
-
Piotr Zegar authored
Detects implicit conversions between pointers of different levels of indirection. Reviewed By: xgupta Differential Revision: https://reviews.llvm.org/D149084
-
Maksim Kita authored
Fold strcmp for short string literals with size 2. Depends D155742. Differential Revision: https://reviews.llvm.org/D155743
-
Maksim Kita authored
Precommit tests for D155743. Differential Revision: https://reviews.llvm.org/D155742
-
Timo Stripf authored
DeclPrinter::PrintConstructorInitializers did not consider curly constructor initializers. Any curly constructor initializers (e.g. `A() : Field{}`) was printed with round brackets (e.g. `A() : Field({})`). https://github.com/llvm/llvm-project/issues/64061 Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D156307 -
Cyndy Ishida authored
* Expand understood `FileType`s that InterfaceFile class can represent. * Add `hasTarget` function. * Cleanup symbol `<` comparator to account for SymbolSet operations.
-
Simon Pilgrim authored
Including test coverage for Issue #63980
-
Nikita Popov authored
This allows us to handle dead blocks with multiple incoming edges, where we can determine that all of those edges are dead (or cycles). This allows InstCombine to handle certain dead code patterns that can be produced by LoopVectorize in a single iteration. This is in preparation for D154579.
-
Jonas Hahnfeld authored
They only need to be tested once in execute.cpp and fail.cpp. Differential Revision: https://reviews.llvm.org/D156425
-
Nikita Popov authored
-
Martin Braenne authored
In the [value categories RFC](https://discourse.llvm.org/t/70086), I proposed that the end state of the migration should be that `getValue()` should only be legal to call on prvalues. As a stepping stone, to allow migrating off existing calls to `getValue()`, I proposed introducing `getValueStrict()`, which would already have the new semantics. However, I've now reconsidered this. Any expression, whether prvalue or glvalue, has a value, so really there isn't any reason to forbid calling `getValue()` on glvalues. I'm therefore removing the deprecation from `getValue()` and transitioning existing `getValueStrict()` calls back to `getValue()`. The other "strict" accessors are a different case. `setValueStrict()` should only be called on prvalues because glvalues need to have a storage location associated with them; it doesn't make sense to only set a value for them. And, of course, `getStorageLocationStrict()` and `setStorageLocationStrict()` should obviously only be called on glvalues because prvalues don't have storage locations. Reviewed By: ymandel, xazax.hun Differential Revision: https://reviews.llvm.org/D155921
-
Martin Braenne authored
There are no remaining uses of this class in the framework. This patch is part of the ongoing migration to strict handling of value categories (see https://discourse.llvm.org/t/70086 for details). Reviewed By: ymandel, xazax.hun, gribozavr2 Differential Revision: https://reviews.llvm.org/D155922
-
Martin Braenne authored
Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D156411
-
Matt Arsenault authored
The patterns were ripped out in a4a3ac10 so this always needs to be custom lowered. I absolutely hate how difficult it is to write tests for these, I have no doubt there are more of these hidden. Fixes #64142
-
Martin Braenne authored
When I wrote https://reviews.llvm.org/D155446, I assumed that a `CXXConstructExpr` would always have record type, but this isn't true: It can have array type when constructing an array of records. The code would crash in this situation because `createValue()` would return null. This patch includes a test that reproduces the crash without the other changes in the patch. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D156402
-
Alex Zinenko authored
LLVM has converged to using black for Python formatting. Remove the yapf configs MLIR used to rely on before that (the reformatting has already happened).
-
Ramkumar Ramachandra authored
The debug output of replaceDominatedUsesWith() prints incorrect information, and the user is left confused about what exactly was replaced. Fix this. Differential Revision: https://reviews.llvm.org/D156318
-
Vimal Patel authored
The existing logic was not sufficient for the case of loops with lower and upper bounds with different operand lists. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D155578
-
David Spickett authored
This also fails sometimes on x86: https://lab.llvm.org/buildbot/#/builders/58/builds/42534 Disable it completely peding investigation.
-
Alex Zinenko authored
TestDialect.cpp along with the ODS-generated files amounts to around 100k LoC and takes a significant amount of time to compile. Factor out the test ops related to testing the sytnax and assembly format, which are a relatively large and well delimited group, into a separate set of files. Also factor out dialect interfaces into a separate file. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D155947
-
Adam Paszke authored
The SCF bindings are already wired up in CMake, but are missing from the Bazel files. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D156316
-
Alex Zinenko authored
This makes naming consisnt with XBackwardDataFlowAnalysis. Reviewed By: Mogball, phisiart Differential Revision: https://reviews.llvm.org/D155930
-
Viktoriia Bakalova authored
[clangd] Revert the symbol collector behavior to old pre-include-cleaner-library behavior due to a regression. Differential Revision: https://reviews.llvm.org/D156403
-
Cullen Rhodes authored
-
Cullen Rhodes authored
-
Michael Halkenhaeuser authored
Update documentation on implementation status of OMPT. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D156336
-
Ivan Kosarev authored
Helps tracking changes in the tables on adding new register classes and updating BaseClassOrder values. Also eliminates tables translating base register class indexes into TargetRegisterClass pointers. Reviewed By: critson Differential Revision: https://reviews.llvm.org/D156097
-
David Spickett authored
This is flaky: https://lab.llvm.org/buildbot/#/builders/198/builds/4094 Sometimes failing with an assert. I've seen it do the same thing on Windows On Arm and Linux.
-
Rainer Orth authored
As detailed in Issue #64126, several asan tests `FAIL` due to a cycle in `AsanInitInternal`. This can by avoided by disabling lazy binding with `ld -z now`. Tested on `amd64-pc-solaris2.11` and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D156325
-
Jay Foad authored
Record the call frame size on entry to each basic block. This is usually zero except when a basic block has been split in the middle of a call sequence. This simplifies PEI::replaceFrameIndices which previously had to visit basic blocks in a specific order and had special handling for unreachable blocks. More importantly it paves the way for an equally simple implementation of a backwards version of replaceFrameIndices, which is required to fully convert PrologEpilogInserter to backwards register scavenging, which is preferred because it does not rely on accurate kill flags. Differential Revision: https://reviews.llvm.org/D156113
-
witstorm95 authored
information. Fixed https://github.com/llvm/llvm-project/issues/62348 Propagate cross suspend point information by visiting CFG. Just only go through two times at most, you can get all the cross suspend point information. Before the patch: ``` n: 20000 4.31user 0.11system 0:04.44elapsed 99%CPU (0avgtext+0avgdata 552352maxresident)k 0inputs+8848outputs (0major+126254minor)pagefaults 0swaps n: 40000 11.24user 0.40system 0:11.66elapsed 99%CPU (0avgtext+0avgdata 1788404maxresident)k 0inputs+17600outputs (0major+431105minor)pagefaults 0swaps n: 60000 21.65user 0.96system 0:22.62elapsed 99%CPU (0avgtext+0avgdata 3809836maxresident)k 0inputs+26352outputs (0major+934749minor)pagefaults 0swaps n: 80000 37.05user 1.53system 0:38.58elapsed 99%CPU (0avgtext+0avgdata 6602396maxresident)k 0inputs+35096outputs (0major+1622584minor)pagefaults 0swaps n: 100000 51.87user 2.67system 0:54.54elapsed 99%CPU (0avgtext+0avgdata 10210736maxresident)k 0inputs+43848outputs (0major+2518945minor)pagefaults 0swaps ``` After the patch: ``` n: 20000 3.17user 0.16system 0:03.33elapsed 100%CPU (0avgtext+0avgdata 551736maxresident)k 0inputs+8848outputs (0major+126192minor)pagefaults 0swaps n: 40000 6.10user 0.42system 0:06.54elapsed 99%CPU (0avgtext+0avgdata 1787848maxresident)k 0inputs+17600outputs (0major+432212minor)pagefaults 0swaps n: 60000 9.13user 0.89system 0:10.03elapsed 99%CPU (0avgtext+0avgdata 3809108maxresident)k 0inputs+26352outputs (0major+931280minor)pagefaults 0swaps n: 80000 12.44user 1.57system 0:14.02elapsed 99%CPU (0avgtext+0avgdata 6603432maxresident)k 0inputs+35096outputs (0major+1624635minor)pagefaults 0swaps n: 100000 16.29user 2.28system 0:18.59elapsed 99%CPU (0avgtext+0avgdata 10212808maxresident)k 0inputs+43848outputs (0major+2522200minor)pagefaults 0swaps ``` Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D154695
-
Chuanqi Xu authored
This reverts commit bb4121e6. Sorry for forgetting adding Differential Revision information. It may worth reverting this one and commit it again given this is a relative big patch.
-
witstorm95 authored
information. Fixed https://github.com/llvm/llvm-project/issues/62348 Propagate cross suspend point information by visiting CFG. Just only go through two times at most, you can get all the cross suspend point information. Before the patch: ``` n: 20000 4.31user 0.11system 0:04.44elapsed 99%CPU (0avgtext+0avgdata 552352maxresident)k 0inputs+8848outputs (0major+126254minor)pagefaults 0swaps n: 40000 11.24user 0.40system 0:11.66elapsed 99%CPU (0avgtext+0avgdata 1788404maxresident)k 0inputs+17600outputs (0major+431105minor)pagefaults 0swaps n: 60000 21.65user 0.96system 0:22.62elapsed 99%CPU (0avgtext+0avgdata 3809836maxresident)k 0inputs+26352outputs (0major+934749minor)pagefaults 0swaps n: 80000 37.05user 1.53system 0:38.58elapsed 99%CPU (0avgtext+0avgdata 6602396maxresident)k 0inputs+35096outputs (0major+1622584minor)pagefaults 0swaps n: 100000 51.87user 2.67system 0:54.54elapsed 99%CPU (0avgtext+0avgdata 10210736maxresident)k 0inputs+43848outputs (0major+2518945minor)pagefaults 0swaps ``` After the patch: ``` n: 20000 3.17user 0.16system 0:03.33elapsed 100%CPU (0avgtext+0avgdata 551736maxresident)k 0inputs+8848outputs (0major+126192minor)pagefaults 0swaps n: 40000 6.10user 0.42system 0:06.54elapsed 99%CPU (0avgtext+0avgdata 1787848maxresident)k 0inputs+17600outputs (0major+432212minor)pagefaults 0swaps n: 60000 9.13user 0.89system 0:10.03elapsed 99%CPU (0avgtext+0avgdata 3809108maxresident)k 0inputs+26352outputs (0major+931280minor)pagefaults 0swaps n: 80000 12.44user 1.57system 0:14.02elapsed 99%CPU (0avgtext+0avgdata 6603432maxresident)k 0inputs+35096outputs (0major+1624635minor)pagefaults 0swaps n: 100000 16.29user 2.28system 0:18.59elapsed 99%CPU (0avgtext+0avgdata 10212808maxresident)k 0inputs+43848outputs (0major+2522200minor)pagefaults 0swaps ```
-
Sameer Sahasrabuddhe authored
Some opcodes in generic MIR represent calls to intrinsics, where the intrinsic ID is the first non-def operand to the instruction. These are now represented as a subclass of GenericMachineInstr, and the method MachineInstr::getIntrinsicID() is now moved to this subclass GIntrinsic. Some target-defined instructions behave like GMIR intrinsics, and have an Intrinsic::ID operand. But they should not be recognized as generic intrinsics, and should not use GIntrinsic::getIntrinsicID(). Separated these out by introducing a new AMDGPU::getIntrinsicID(). Reviewed By: arsenm, Pierre-vh Differential Revision: https://reviews.llvm.org/D155556 This restores commit baa3386e. Originally reverted in d0f7850b.
-
Simon Pilgrim authored
-
David Green authored
Similar to other neon index instructions, it is beneficial to sink the splat to the instruction for fmlal in order for it to create the index.
-
Jianjian GUAN authored
This patch is similar to https://reviews.llvm.org/D153948, using helper function to get ISD and information. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D154411
-
Nikita Popov authored
-
Nikita Popov authored
This was reverted together with another commit due to a test conflict. Reapply without functional changes. ----- When commuting the operands, don't create a constant expression for undesirable binops. Only invoke the constant folding function in that case.
-
YAMAMOTO Takashi authored
Differential Revision: https://reviews.llvm.org/D155542
-
Alexandros Lamprineas authored
Those are added by the SCCP Solver before invoking the Specializer. They need to be removed otherwise the destructor of PredicateInfo complains. Differential Revision: https://reviews.llvm.org/D156365
-