- Feb 03, 2023
-
-
Max Kazantsev authored
-
Jonas Hahnfeld authored
According to the IR verifier, "Declaration[s] may not be in a Comdat!" This is a re-commit of 76b3f0b4 with updates to the test: * Force emission of the extra-module, to trigger the bug after D138264, by providing a second symbol @g, and making the comdat nodeduplicate. (Technically only one is needed, but two should be safer.) * Name the comdat $f to avoid failure on Windows: LLVM ERROR: Associative COMDAT symbol 'c' does not exist. Differential Revision: https://reviews.llvm.org/D142443
-
Alexey Lapshin authored
This patch fixes #60307 issue. The 8bb4451a introduces the possibility to unite overlapped or adjacent address ranges to keep address ranges in an unambiguous state. The AddressRangesMap is used to normalize address ranges. The AddressRangesMap keeps address ranges and the value of the relocated address. For intersected range, it creates a united range that keeps the last inserted mapping value. The same for adjusted ranges. While it is OK to use the last inserted mapping value for intersected ranges (as there is no way how to resolve ambiguity) It is not OK to use the last inserted value for adjacent address ranges. Currently, two following address ranges are united into a single one: {0,24,17e685c} {24,d8,55afe20} -> {0,d8,55afe20} To avoid the problem, the AddressRangesMap should not unite adjacent address ranges with different relocated addresses. Instead, it should leave adjacent address ranges as separate ranges. So, the rang...
-
Anton Sidorenko authored
Originally the test has a bug: in the input YAML `.symtab.dyn` section has a type repeated twice with different values (SHT_SYMTAB and SHT_NOBITS). YAML parser took SHT_NOBITS as a type of the section, so the test wasn't checking the desired case. This patch changes the test to verify that a section with SHT_SYMTAB type and SHF_ALLOC flag is not removed when --strip-all-gnu flag present. Differential Revision: https://reviews.llvm.org/D143086
-
Max Kazantsev authored
-
Max Kazantsev authored
This test is equivalent to another one, where we can infer a reasonable iteration count. The only difference is that umin and zext here are swapped, and rewriter fails here.
-
David Sherwood authored
Adds intrinsics for the following SME2 instructions: * sdot (multi-indexed, 2 and 4 vectors, 32-bit and 64-bit ZA) * udot (multi-indexed, 2 and 4 vectors, 32-bit and 64-bit ZA) * usdot (multi-indexed, 2 and 4 vectors) * sudot (multi-indexed, 2 and 4 vectors) * fdot (multi-indexed, 2 and 4 vectors) * bfdot (multi-indexed, 2 and 4 vectors) NOTE: These intrinsics are still in development and are subject to future changes. Differential Revision: https://reviews.llvm.org/D142533
-
ManuelJBrito authored
Differential Revision: https://reviews.llvm.org/D142388
-
Jean Perier authored
The custom DCE in cg-rewrite is meant to get rid of fir.shape, fir.shift, fir.shape_shift and fir.slice ops as well as their unused operands before codegen (that does not lower those abstract operation to LLVM). However, it turned out to be flowed in case some fir.shape operands were unused outside of fir.shape and appeared several times as operands: they were erased at the first appearance, causing the further attemp to erase it to segfault (since the op IR storage was deallocated). Instead of trying to fixing the custom DCE code, use mlir::runRegionDCE. Differential Revision: https://reviews.llvm.org/D143247
-
Valentin Clement authored
Similary to D140209, the scope might need to be retrieved from the typeSymbol. The test code was crashing because the scope passed to CollectBindings was initially null. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D143188
-
chenglin.bi authored
-
chenglin.bi authored
(A & B) ^ (A | C) --> A ? ~B : C https://alive2.llvm.org/ce/z/KCBfXr https://alive2.llvm.org/ce/z/Pm-zJN https://alive2.llvm.org/ce/z/VT8uC2 Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D141660
-
Sergey Kachkov authored
failure (instead of bool flag) Differential Revision: https://reviews.llvm.org/D143171
-
Jonas Hahnfeld authored
Failure on Windows: LLVM ERROR: Associative COMDAT symbol 'c' does not exist. This reverts commit 76b3f0b4 while I investigate the problem and a solution that still triggers the original problem.
-
Matthias Springer authored
Top-level ModuleOps cannot be transformed with the GreedyPatternRewriteDriver since D141945 because they do not have an enclosing region that could be used as a scope. Make the scope optional inside GreedyPatternRewriteDriver, so that top-level ops can be processed when they are on the initial list of ops. Note: This does not allow users to bypass the scoping mechanism by setting `config.scope = nullptr`. Fixes #60462. Differential Revision: https://reviews.llvm.org/D143151
-
Martin Storsjö authored
Don't include it among the mandatory options; the automatically built tools via a nested cmake build work fine these days (in particular, since 93010544 / https://reviews.llvm.org/D126313). Clarify the directory path-to-host-bin into something more verbose, to avoid ambiguity with LLVM_HOST_TRIPLE. Differential Revision: https://reviews.llvm.org/D142960
-
Martin Storsjö authored
Setting LLVM_HOST_TRIPLE propagates the information to a few more places than if only setting LLVM_TARGET_ARCH and LLVM_DEFAULT_TARGET_TRIPLE, while both of those settings get their defaults implied from LLVM_HOST_TRIPLE if they're not overridden. Differential Revision: https://reviews.llvm.org/D142404
-
Adrian Kuegel authored
-
Owen Pan authored
-
Thomas Raoux authored
Differential Revision: https://reviews.llvm.org/D143244
-
Thomas Raoux authored
Fix the insert point when expanding affine apply and handle cases with symbols. Also add missing precondition to dynamic shape vectorization. Differential Revision: https://reviews.llvm.org/D143243
-
Fangrui Song authored
-
Christian Ulmann authored
This commit introduces a structured representation of loop metadata to the LLVM dialect. This attribute explicitly models all known `!llvm.loop` metadata fields and groups them by introducing nested attributes for each namespace. The new attribute replaces the LoopOptionAttr that could only model a limited subset of loop metadata. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D143064
-
Konstantin Varlamov authored
-
Jonas Hahnfeld authored
According to the IR verifier, "Declaration[s] may not be in a Comdat!" Differential Revision: https://reviews.llvm.org/D142443
-
Phoebe Wang authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D143169
-
varconst authored
Clang implicitly adds the `[[gnu::const]]` attribute to many math functions from the C standard library functions. Since this behavior is Clang-specific, make sure the test only runs on Clang. Differential Revision: https://reviews.llvm.org/D143033
-
Chuanqi Xu authored
This re-commits part of c79635cc. It is reverted since it contains platform-inconsistent constant. Now the patch only contains constant defined in DeclBase.h so it should be platform-independent. And this should be still helpful. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D141992
-
gonglingqin authored
Override hasAndNotCompare() to use more `ANDN` instead of using `AND` and `NOT`. This patch enables the following transforms: (X & Y) == Y ---> (~X & Y) == 0 (X & Y) != Y ---> (~X & Y) != 0. Differential Revision: https://reviews.llvm.org/D143037
-
Fangrui Song authored
-
Shilei Tian authored
`check_loc` is not used if ITT is disabled or debug is off, causing a compiler warning. Reviewed By: jlpeyton Differential Revision: https://reviews.llvm.org/D143004
-
Changpeng Fang authored
Summary: This patch introduces a mechanism to check the code object version from the module flag, This avoids checking from command line. In case the module flag is missing, we use the current default code object version supported in the compiler. For tools whose inputs are not IR, we may need other approach (directive, for example) to check the code object version, That will be in a separate patch later. For LIT tests update, we directly add module flag if there is only a single code object version associated with all checks in one file. In cause of multiple code object version in one file, we use the "sed" method to "clone" the checks to achieve the goal. Reviewer: arsenm Differential Revision: https://reviews.llvm.org/D14313
-
Matt Arsenault authored
If DAZ is enabled, a test against fcZero is not equivalent to a compare with 0.
-
Matt Arsenault authored
-
Matt Arsenault authored
Use right prefix order to get merging. Also drop -verify-machineinstrs and add -amdgpu-enable-delay-alu=0
-
Matt Arsenault authored
-
Matt Arsenault authored
This is NFC as it stands, since other combines will effectively prevent this from being reachable. This will avoid regressions in a future change which tries to make better use of select source modifiers. Didn't bother with the GlobalISel part for now, since the baseline combine doesn't seem to work on the existing test.
-
Chuanqi Xu authored
Close https://github.com/llvm/llvm-project/issues/60275 The root cause of issue 60275 is the imbalance of PushExpressionEvaluationContext() and PopExpressionEvaluationContext(). See https://github.com/llvm/llvm-project/blob/f1c4f927f7c15b5efdc3589c050fd0513bf6b303/clang/lib/Parse/Parser.cpp#L1396-L1437 We will PushExpressionEvaluationContext() in ActOnStartOfFunctionDef() in line 1396 and we should pop it in ActOnFinishFunctionBody later. However if we skip the function body in line 1402, the expression evaluation context will not be popped. Then here is the issue report. I fix the issue by inserting codes to pop the expression evaluation context explicitly if the function body is skipped. Maybe this looks like an ad-hoc fix. But if we want to fix this in a pretty way, we should refactor the current framework for pushing and popping expression evaluation contexts. Currently there are 23 PushExpressionEvaluationContext() callsities and 21 PopExpressionEvaluationContext() callsites in the code. And it seems not easy to balance them well and fast. So I suggest to land this fix first. At least it can prevent the crash. Reviewed By: cor3ntin Differential Revision: https://reviews.llvm.org/D143053
-
Ting Wang authored
Vector store on P8 little endian will have swap instruction added before the store in PPCISelLowring. If the vector is generated by splat, the swap instruction can be eliminated. Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D139691
-
LiaoChunyu authored
As described in D45395 `This has been modeled after ARM's tail call opt.` ARM's abi seems to limit weak symbol. I did not find the limitation for RISCV. (Please correct me if I am wrong) gcc seems to use the tail-call opt: https://godbolt.org/z/bjWE68n5o Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D143137
-