aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-04-08[𝘀𝗽𝗿] initial versionusers/alexey-bataev/spr/lvevlsupport-reversed-loadsstoresAlexey Bataev2-35/+55
Created using spr 1.3.5
2024-04-08[SLP][NFC]Remove unused variable, NFC.Alexey Bataev1-1/+1
2024-04-08[AArch64][LoopIdiom] Disable LoopIdiomTransform when NoImplicitFloat is ↵Min-Yih Hsu2-4/+106
present (#87677) This behavior is aligned with both LoopVectorizer and SLPVectorizer.
2024-04-08Fix build issue committed in 26fee0ff12erichkeane1-1/+1
I brain-farted on how assert works :)
2024-04-08[OpenACC] Implement Sema work for OpenACC Clauses (#87821)Erich Keane9-500/+490
Now that we have AST nodes for OpenACC Clauses, this patch adds their creation to Sema and makes the Parser call all the required functions. This also redoes TreeTransform to work with the clauses/make sure they are transformed. Much of this is NFC, since there is no clause we can test this behavior with. However, there IS one noticable change; we are now no longer diagnosing that a clause is 'not implemented' unless it there was no errors parsing its parameters. This is because it cleans up how we create and diagnose clauses.
2024-04-08[libclc] Fix more spirv build dependenciesFraser Cormack1-1/+1
The last fix was incomplete.
2024-04-08[SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics.Alexey Bataev4-27/+117
https://alive2.llvm.org/ce/z/ivPZ26 for the abs transformations. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/86135
2024-04-08[flang][runtime] Added simplified std::toupper implementation. (#87850)Slava Zakharin2-8/+27
2024-04-08[libc] Increase timeout for death tests. (#87959)lntue1-4/+4
Fix test timeout on RISCV bots. Fixes https://github.com/llvm/llvm-project/issues/87096
2024-04-08[clang-tidy] rename designated initializers (#86976)Edwin Vane3-4/+31
readability-identifier-naming now supports renaming designated initializers.
2024-04-08 [SystemZ][z/OS] TXT records in the GOFF reader (#87648)Yusra Syeda4-14/+326
This PR adds handling for TXT records in the GOFF reader. --------- Co-authored-by: Yusra Syeda <yusra.syeda@ibm.com>
2024-04-08[libclc] Fix spirv build dependenciesFraser Cormack1-1/+1
These were accidentally broken in 61efea7. Thanks to @mgorny and @rjodinchr for spotting this.
2024-04-08[FPEnv][X86] Correct strictfp tests. (#87791)Kevin P. Neal2-8/+16
Correct strictfp tests to follow the rules documented in the LangRef: https://llvm.org/docs/LangRef.html#constrained-floating-point-intrinsics These tests needed the strictfp attribute added to some function definitions. FP wait instructions now appear as a result. Test changes verified with D146845.
2024-04-08Revert "[mlir][arith] Refine the verifier for arith.constant (#86178)"Andrzej Warzynski2-15/+0
This reverts commit 662c62609e8ee2dc996da69e11c0d594e799c299. Broken both: * https://lab.llvm.org/buildbot/#/builders/61/builds/56565
2024-04-08ValueTracking: Consider demanded elts for vector constants in ↵Matt Arsenault2-2/+5
computeKnownFPClass
2024-04-08Fix MSVC "not all control paths return a value" warning. NFC.Simon Pilgrim1-1/+2
2024-04-08TextNodeDumper.cpp - remove empty switch to fix MSVC "switch statement ↵Simon Pilgrim1-8/+0
contains 'default' but no 'case' labels" warning. NFC.
2024-04-08ValueTracking: Handle ConstantAggregateZero in computeKnownFPClassMatt Arsenault3-2/+29
2024-04-08ValueTracking: Add baseline tests for vector fpclass handlingMatt Arsenault1-4/+67
2024-04-08[mlir] Only inline if properties are used.Adrian Kuegel2-4/+4
This is a followup to 0f52f4ddd909eb38f2a691ffed8469263fe5f635 It breaks dialects that don't use properties yet.
2024-04-08Make the argument -Xcuda-ptxas visible to the driver in cl-modeJefferson Le Quellec3-2/+14
It has been noticed that the arguments are being passed twice to ptxas. This also has been fixed by filtering out the arguments before appending them to the new DAL created by CudaToolChain::TranslateArgs. github:https://github.com/llvm/llvm-project/pull/86807
2024-04-08[llvm][docs] Resort cmake macros (#87551)Nathan Sidwell1-69/+68
The cmake macro documentation had once again become unsorted. For names of the form 'PREFIX_{list-or-category}_SUFFIX' I collate as 'PREFIX_SUFFIX'.
2024-04-08[BOLT][NFC] Refactor relocation arch selection (#87829)Nathan Sidwell1-51/+144
Convert the relocation routines to switch on architecture and have an explicit unreachable default.
2024-04-08[mlir][arith] Refine the verifier for arith.constant (#86178)Andrzej Warzyński2-0/+15
Disallows initialization of scalable vectors with an attribute of arbitrary values, e.g.: ```mlir %c = arith.constant dense<[0, 1]> : vector<[2] x i32> ``` Initialization using vector splats remains allowed (i.e. when all the init values are identical): ```mlir %c = arith.constant dense<[1, 1]> : vector<[2] x i32> ```
2024-04-08[NewPM] support `disablePass`, `insertPass` in `CodeGenPassBuilder` (#87147)paperchalice1-13/+24
Currently only machine function passes support `insertPass`, but it seems to be enough, all targets tune their pipelines when adding machine function passes.
2024-04-08[zOS] Turn CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT on for zOS (#87797)bahareh-farhadi1-1/+1
PR [https://github.com/llvm/llvm-project/pull/84461](https://github.com/llvm/llvm-project/pull/84461) disabled `clang/unittests/Interpreter/InterpreterExtensionsTest.cpp` for AIX by turning on `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT`. This PR turns `CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT` on for zOS as well, since LLJIT cannot be created on zOS either. Co-authored-by: Bahareh <bahareh.farhadi@ibm.com>
2024-04-08ValueTracking: Don't use unnecessary null checked dyn_castMatt Arsenault1-1/+1
2024-04-08GlobalISel: Regenerate test checksMatt Arsenault4-82/+115
2024-04-08Replace copy with a reference. (#87975)Malay Sanghi1-2/+2
2024-04-08llvm-reduce: Reduce nuw/nsw flags from truncMatt Arsenault2-0/+37
2024-04-08AMDGPU: Regenerate test checksMatt Arsenault1-97/+97
2024-04-08[LinkerWrapper] Do not include config files for device linking (#87659)Joseph Huber1-0/+1
Summary: The device linking phase only wants to create the necessary commands to emit the device binary. There were issues where the user's default config file was being used and passing incompatible arguments to the device compilation step. Simply disable this since we do not want any additional arguments to these clang invocations.
2024-04-08[clang-format] Added unittest of TableGen formatting w.r.t. block type ↵Hirofumi Nakamura1-0/+10
calculation. (#87924)
2024-04-08[RISCV] Fix canFoldToVWWithSameExtension allowing different FP extensions ↵Luke Lau1-1/+1
(#87978)
2024-04-08[mlir] Fix -Wunused-variable in DebugImporter.cpp (NFC)Jie Fu1-1/+1
llvm-project/mlir/lib/Target/LLVMIR/DebugImporter.cpp:377:10: error: unused variable '[_, inserted]' [-Werror,-Wunused-variable] auto [_, inserted] = dependentCache.try_emplace( ^ 1 error generated.
2024-04-08[clang][analyzer] Add "pedantic" mode to StreamChecker. (#87322)Balázs Kéri12-14/+166
The checker may create failure branches for all stream write operations only if the new option "pedantic" is set to true. Result of the write operations is often not checked in typical code. If failure branches are created the checker will warn for unchecked write operations and generate a lot of "false positives" (these are valid warnings but the programmer does not care about this problem).
2024-04-08[libclc] Restore linking against dynamic libLLVM for out-of-tree buildsFraser Cormack1-1/+5
This fixes a regression where building against an installation without the static libraries would fail. This just reinstates the old behaviour for out-of-tree builds, assuming that in-tree builds (which still aren't officially supported) will have the static libraries available. We can refine this as we move towards supporting in-tree builds.
2024-04-08[X86] combineExtractVectorElt - fold extract(trunc(x),c) -> trunc(extract(x,c))Simon Pilgrim7-68/+52
2024-04-08[NFC] Fix misspellings of effects (#87795)Zentrik2-2/+2
2024-04-08[flang][OpenMP] Add support for complex reductions (#87488)Mats Petersson4-6/+137
This adds support for complex type to the OpenMP reductions. Note that some more work would be needed to give decent error messages when complex is used in ways that need client supplied functions (e.g. MAX or MIN). It does fail these with a not so user friendly message at present.
2024-04-08[RISCV] Zimop/Zcmop are ratifiedPengcheng Wang17-90/+78
Remove them from experimental. See also: https://github.com/riscv/riscv-isa-manual/blob/main/src/zimop.adoc Reviewers: kito-cheng Reviewed By: kito-cheng Pull Request: https://github.com/llvm/llvm-project/pull/87966
2024-04-08[flang] Fix source allocation to explicit length after deferred length ↵jeanPerier2-3/+54
object (#87785) Flang supports source allocation to allocatable or pointers with a non deferred length that do not match the source length. This documented at: https://github.com/llvm/llvm-project/blob/9708d0900311503aa4685d6810d8caf0412e15d7/flang/docs/Extensions.md?plain=1#L312 The current lowering code was bugged when such explicit length allocate object appeared after a deferred length object in the source allocation list: Since "lenParams" had been computed when generating allocation of the deferred length object, the call to genSetDeferredLengthParameters was not a no-op on when lowering the explicit length allocation, and the explicit length was overridden with the source length. The output of the program added in test was: ``` ZZheZZ ZZhelloZZ ZZhelloZZ ``` Instead of: ``` ZZheZZ ZZhelloZZ ZZhello ZZ ``` Skip genSetDeferredLengthParameters when the allocate object has non deferred length.
2024-04-08[AArch64] More shuffle-store test cases. NFCDavid Green2-0/+181
2024-04-08[flang][NFC] document BOZ error in DIM, MOD, MODULO, and SIGN (#87779)jeanPerier1-1/+3
It is highly ambiguous to what type BOZ should be resolved in DIM, MOD, MODULO, and SIGN intrinsic arguments. Some other compilers accept them, but none agree. See table below. List them explicitly as non supported extensions (semantics already reject them, this is an NFC). Table listing the resolved types of the intrinsic results when there is a BOZ argument: | | gfortran | nvfortran | ifort | nagfor | xlf | | ------------------- | -------- | --------- | ----- | ------ | ------ | | DIM(INT4, BOZ) | INT16 | INT4 | INT8 | crash | INT4 | | DIM(BOZ, REAL4) | error | INT8 | error | error | REAL4 | | DIM(REAL4, BOZ) | error | REAL4 | error | error | REAL4 | | DIM(BOZ, INT4) | INT16 | INT8 | INT8 | INT8 | INT4 | | DIM(BOZ, BOZ) | INT16 | INT8 | INT8 | INT8 | REAL4 | | MOD(INT4, BOZ) | INT16 | INT4 | INT8 | crash | INT4 | | MOD(BOZ, REAL4) | error | INT8 | error | error | REAL4 | | MOD(REAL4, BOZ) | error | REAL4 | error | error | REAL4 | | MOD(BOZ, INT4) | INT16 | INT8 | INT8 | INT8 | INT4 | | MOD(BOZ, BOZ) | INT16 | INT8 | INT8 | INT8 | INT4 | | MODULO(INT4, BOZ) | INT16 | INT4 | INT8 | crash | INT4 | | MODULO(BOZ, REAL4) | error | INT8 | error | error | REAL4 | | MODULO(REAL4, BOZ) | error | REAL4 | error | error | REAL4 | | MODULO(BOZ, INT4) | INT16 | INT8 | INT8 | INT8 | INT4 | | MODULO(BOZ, BOZ) | INT16 | INT8 | INT8 | INT8 | INT8 | | SIGN(INT4, BOZ) | error | INT4 | INT8 | INT4 | INT4 | | SIGN(BOZ, REAL4) | error | INT8 | error | error | REAL4 | | SIGN(REAL4, BOZ) | error | REAL4 | error | error | REAL4 | | SIGN(BOZ, INT4) | error | INT8 | INT8 | INT8 | INT4 | | SIGN(BOZ, BOZ) | INT16 | INT8 | INT8 | INT8 | REAL4 |
2024-04-08[flang] Fix MASKR/MASKL lowering for INTEGER(16) (#87496)jeanPerier8-95/+141
The all one masks was not properly created for i128 types because builder.createIntegerConstant ended-up truncating -1 to something positive. Add a builder.createAllOnesInteger/createMinusOneInteger helpers and use them where createIntegerConstant(..., -1) was used. Add an assert in createIntegerConstant to catch negative numbers for i128 type.
2024-04-08[MLIR][LLVM] Recursion importer handle repeated self-references (#87295)Billy Zhu5-79/+398
Followup to this discussion: https://github.com/llvm/llvm-project/pull/80251#discussion_r1535599920. The previous debug importer was correct but inefficient. For cases with mutual recursion that contain more than one back-edge, each back-edge would result in a new translated instance. This is because the previous implementation never caches any translated result with unbounded self-references. This means all translation inside a recursive context is performed from scratch, which will incur repeated run-time cost as well as repeated attribute sub-trees in the translated IR (differing only in their `recId`s). This PR refactors the importer to handle caching inside a recursive context. - In the presence of unbound self-refs, the translation result is cached in a separate cache that keeps track of the set of dependent unbound self-refs. - A dependent cache entry is valid only when all the unbound self-refs are in scope. Whenever a cached entry goes out of scope, it will be removed the next time it is looked up.
2024-04-08[DAG][AArch64] Support masked loads/stores with nontemporal flags (#87608)David Green3-10/+19
SVE has some non-temporal masked loads and stores. The metadata coming from the nodes is not copied to the MMO at the moment though, meaning it will generate a normal instruction. This patch ensures that the right flags are set if the instruction has non-temporal metadata.
2024-04-08[AArch64][GlobalISel] Legalize Insert vector element (#81453)David Green37-1319/+1759
This attempts to standardize and extend some of the insert vector element lowering. Most notably: - More types are handled by splitting illegal vectors. - The index type for G_INSERT_VECTOR_ELT is canonicalized to TLI.getVectorIdxTy(), similar to extact_vector_element. - Some of the existing patterns now have the index type specified to make sure they can apply to GISel too. - The C++ selection code has been removed, relying on tablegen patterns. - G_INSERT_VECTOR_ELT with small GPR input elements are pre-selected to use a i32 type, allowing the existing patterns to apply. - Variable index inserts are lowered in post-legalizer lowering, expanding into a stack store and reload.
2024-04-08Revert "[compiler-rt] Allow running tests without installing first"Saiyedul Islam7-98/+32
This reverts commit c91254db1dcace869f4d3f1ac659bdd7700a1459. It was throwing error: g++: error: unrecognized command line option ‘-resource-dir=
2024-04-08[ExpandLargeFpConvert] Support bfloat. (#87619)Bevin Hansson4-21/+979
The conversion expansions did not properly handle bfloat types. I'm not certain that these expansions are completely correct; I don't have any experience with AMDGPU or the ability to run anything to test it. Note that it doesn't seem like AMDGPU with GlobalISel can handle fptrunc of float to bfloat, which is needed for itofp. I've omitted the GISEL run for the bfloat case. This fixes #85379.