summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [𝘀𝗽𝗿] initial versionupstream/users/alexey-bataev/spr/lvevlsupport-reversed-loadsstoresAlexey Bataev2024-04-082-35/+55
| | | | Created using spr 1.3.5
* [SLP][NFC]Remove unused variable, NFC.Alexey Bataev2024-04-081-1/+1
|
* [AArch64][LoopIdiom] Disable LoopIdiomTransform when NoImplicitFloat is ↵Min-Yih Hsu2024-04-082-4/+106
| | | | | present (#87677) This behavior is aligned with both LoopVectorizer and SLPVectorizer.
* Fix build issue committed in 26fee0ff12erichkeane2024-04-081-1/+1
| | | | I brain-farted on how assert works :)
* [OpenACC] Implement Sema work for OpenACC Clauses (#87821)Erich Keane2024-04-089-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.
* [libclc] Fix more spirv build dependenciesFraser Cormack2024-04-081-1/+1
| | | | The last fix was incomplete.
* [SLP]Improve minbitwidth analysis for abs/smin/smax/umin/umax intrinsics.Alexey Bataev2024-04-084-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
* [flang][runtime] Added simplified std::toupper implementation. (#87850)Slava Zakharin2024-04-082-8/+27
|
* [libc] Increase timeout for death tests. (#87959)lntue2024-04-081-4/+4
| | | | Fix test timeout on RISCV bots. Fixes https://github.com/llvm/llvm-project/issues/87096
* [clang-tidy] rename designated initializers (#86976)Edwin Vane2024-04-083-4/+31
| | | | readability-identifier-naming now supports renaming designated initializers.
* [SystemZ][z/OS] TXT records in the GOFF reader (#87648)Yusra Syeda2024-04-084-14/+326
| | | | | | | This PR adds handling for TXT records in the GOFF reader. --------- Co-authored-by: Yusra Syeda <yusra.syeda@ibm.com>
* [libclc] Fix spirv build dependenciesFraser Cormack2024-04-081-1/+1
| | | | | | These were accidentally broken in 61efea7. Thanks to @mgorny and @rjodinchr for spotting this.
* [FPEnv][X86] Correct strictfp tests. (#87791)Kevin P. Neal2024-04-082-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.
* Revert "[mlir][arith] Refine the verifier for arith.constant (#86178)"Andrzej Warzynski2024-04-082-15/+0
| | | | | | | This reverts commit 662c62609e8ee2dc996da69e11c0d594e799c299. Broken both: * https://lab.llvm.org/buildbot/#/builders/61/builds/56565
* ValueTracking: Consider demanded elts for vector constants in ↵Matt Arsenault2024-04-082-2/+5
| | | | computeKnownFPClass
* Fix MSVC "not all control paths return a value" warning. NFC.Simon Pilgrim2024-04-081-1/+2
|
* TextNodeDumper.cpp - remove empty switch to fix MSVC "switch statement ↵Simon Pilgrim2024-04-081-8/+0
| | | | contains 'default' but no 'case' labels" warning. NFC.
* ValueTracking: Handle ConstantAggregateZero in computeKnownFPClassMatt Arsenault2024-04-083-2/+29
|
* ValueTracking: Add baseline tests for vector fpclass handlingMatt Arsenault2024-04-081-4/+67
|
* [mlir] Only inline if properties are used.Adrian Kuegel2024-04-082-4/+4
| | | | | This is a followup to 0f52f4ddd909eb38f2a691ffed8469263fe5f635 It breaks dialects that don't use properties yet.
* Make the argument -Xcuda-ptxas visible to the driver in cl-modeJefferson Le Quellec2024-04-083-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
* [llvm][docs] Resort cmake macros (#87551)Nathan Sidwell2024-04-081-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'.
* [BOLT][NFC] Refactor relocation arch selection (#87829)Nathan Sidwell2024-04-081-51/+144
| | | Convert the relocation routines to switch on architecture and have an explicit unreachable default.
* [mlir][arith] Refine the verifier for arith.constant (#86178)Andrzej Warzyński2024-04-082-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> ```
* [NewPM] support `disablePass`, `insertPass` in `CodeGenPassBuilder` (#87147)paperchalice2024-04-081-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.
* [zOS] Turn CLANG_INTERPRETER_PLATFORM_CANNOT_CREATE_LLJIT on for zOS (#87797)bahareh-farhadi2024-04-081-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>
* ValueTracking: Don't use unnecessary null checked dyn_castMatt Arsenault2024-04-081-1/+1
|
* GlobalISel: Regenerate test checksMatt Arsenault2024-04-084-82/+115
|
* Replace copy with a reference. (#87975)Malay Sanghi2024-04-081-2/+2
|
* llvm-reduce: Reduce nuw/nsw flags from truncMatt Arsenault2024-04-082-0/+37
|
* AMDGPU: Regenerate test checksMatt Arsenault2024-04-081-97/+97
|
* [LinkerWrapper] Do not include config files for device linking (#87659)Joseph Huber2024-04-081-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.
* [clang-format] Added unittest of TableGen formatting w.r.t. block type ↵Hirofumi Nakamura2024-04-081-0/+10
| | | | calculation. (#87924)
* [RISCV] Fix canFoldToVWWithSameExtension allowing different FP extensions ↵Luke Lau2024-04-081-1/+1
| | | | (#87978)
* [mlir] Fix -Wunused-variable in DebugImporter.cpp (NFC)Jie Fu2024-04-081-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.
* [clang][analyzer] Add "pedantic" mode to StreamChecker. (#87322)Balázs Kéri2024-04-0812-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).
* [libclc] Restore linking against dynamic libLLVM for out-of-tree buildsFraser Cormack2024-04-081-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.
* [X86] combineExtractVectorElt - fold extract(trunc(x),c) -> trunc(extract(x,c))Simon Pilgrim2024-04-087-68/+52
|
* [NFC] Fix misspellings of effects (#87795)Zentrik2024-04-082-2/+2
|
* [flang][OpenMP] Add support for complex reductions (#87488)Mats Petersson2024-04-084-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.
* [RISCV] Zimop/Zcmop are ratifiedPengcheng Wang2024-04-0817-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
* [flang] Fix source allocation to explicit length after deferred length ↵jeanPerier2024-04-082-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.
* [AArch64] More shuffle-store test cases. NFCDavid Green2024-04-082-0/+181
|
* [flang][NFC] document BOZ error in DIM, MOD, MODULO, and SIGN (#87779)jeanPerier2024-04-081-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 |
* [flang] Fix MASKR/MASKL lowering for INTEGER(16) (#87496)jeanPerier2024-04-088-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.
* [MLIR][LLVM] Recursion importer handle repeated self-references (#87295)Billy Zhu2024-04-085-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.
* [DAG][AArch64] Support masked loads/stores with nontemporal flags (#87608)David Green2024-04-083-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.
* [AArch64][GlobalISel] Legalize Insert vector element (#81453)David Green2024-04-0837-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.
* Revert "[compiler-rt] Allow running tests without installing first"Saiyedul Islam2024-04-087-98/+32
| | | | | | | This reverts commit c91254db1dcace869f4d3f1ac659bdd7700a1459. It was throwing error: g++: error: unrecognized command line option ‘-resource-dir=
* [ExpandLargeFpConvert] Support bfloat. (#87619)Bevin Hansson2024-04-084-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.