- Jun 07, 2021
-
-
Raphael Isemann authored
-
Sander de Smalen authored
* Merged some functions into a single function, to make the costs more obvious. * Moved scalable-mem-op-cost-model.ll -> sve-ldst.ll to be more consistent with other filenames.
-
Sander de Smalen authored
This fixes an issue in BasicTTIImpl.h where it tries to do a cast<FixedVectorType> on a scalable vector type in order to get the scalarization cost. Because scalarization of scalable vectors is not supported, we return Invalid instead. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D103798
-
Tomasz Miąsko authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D103364
-
Tomasz Miąsko authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D103361
-
Tomasz Miąsko authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D103151
-
Valentin Clement authored
This patch convert the if condition on standalone data operation such as acc.update, acc.enter_data and acc.exit_data to a scf.if with the operation in the if region. It removes the operation when the if condition is constant and false. It removes the the condition if it is contant and true. Conversion to scf.if is done in order to use the translation to LLVM IR dialect out of the box. Not sure this is the best approach or we should perform this during the translation from OpenACC to LLVM IR dialect. Any thoughts welcome. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D103325
-
Valentin Clement authored
This patch add canonicalization for the standalone data operation with constant if condition. It is extracted from this patch D103325. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D103712
-
Hsiangkai Wang authored
If the memory object is scalable type, we do not know the exact size of it at compile time. Set the size of lifetime marker to unknown if the object is scalable one. Differential Revision: https://reviews.llvm.org/D102822
-
Valentin Clement authored
Convert data operands from the acc.parallel operation using the same conversion pattern than D102170. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D103337
-
Bryan Chan authored
The ident_t * argument in __kmp_get_monotonicity was being used without a customary NULL check, causing the function to crash in a Debug build. Release builds were not affected thanks to dead store elimination.
-
Stuart Ellis authored
Adding the `-init-only` option and corresponding frontend action to generate a diagnostic. `-init-only` vs `-test-io`: `-init-only` ignores the input (it never calls the prescanner) `-test-io` is similar to `-init-only`, but does read and print the input without calling the prescanner. This patch also adds a Driver test to check this action. Reviewed By: awarzynski, AMDChirag Differential Revision: https://reviews.llvm.org/D102849
-
Fraser Cormack authored
This patch is an extension of D103421. It allows the InstCombiner to generate the negated form of integer scalable-vector splats. It can technically handle fixed-length vectors too but those are completely covered by the preceding logic. This enables extra combining opportunities for scalable vector types. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D103801
-
Nathan Sidwell authored
Oops, missed this pattern in my .gitignore. Sorry. Differential Revision: https://reviews.llvm.org/D101777
-
Nathan Sidwell authored
This fixes a build breakage. I managed to attach this particular change to the wrong diff in the stack when rebasing. And flubbed testing :( Differential Revision: https://reviews.llvm.org/D101777
-
Sebastian Neubauer authored
This allows to convert the add instruction to s_addk_i32 and v_add_nc_u32 instead of needing v_add_co_u32 when converting to a VALU instruction. Differential Revision: https://reviews.llvm.org/D103322
-
Abhina Sreeskantharajan authored
This testcase is failing on z/OS because the regex doesn't match the spelling. This patch modifies the testcase to use the error substitution so it will pass on all platforms. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D103804
-
Fraser Cormack authored
This patch extends the various "isXXX" functions of the `Constant` class to include scalable-vector splats. In several "isXXX" functions, code that was separately inspecting `ConstantVector` and `ConstantDataVector` was unified to use `getSplatValue`, which already includes support for said splats. In the varous "isNotXXX" functions, code was added to check whether the scalar splat value -- if any -- satisfies the predicate. An extra fix for `isNotMinSignedValue` was included, as it previously crashed when passed a scalable-vector type because it unconditionally cast to `FixedVectorType` These changes address numerous missed optimizations, a compiler crash mentioned above and -- perhaps most egregiously -- an infinite loop in InstCombine due to the compiler breaking canonical form when it failed to pick up on a splat in a select instruction. Test cases have been added to cover as many of these functions as possible, though existing coverage is slim; it doesn't appear that there are any in-tree uses of `Constant::isNegativeZeroValue`, for example. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D103421
-
Kirill Bobyrev authored
Context: https://github.com/clangd/clangd/pull/783 Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D103393
-
Nathan Sidwell authored
This prepatch for using-enum breaks out the enum completion that that will need from the existing scope completion logic. Differential Revision: https://reviews.llvm.org/D102239
-
Nathan Sidwell authored
This is a pre-patch for adding using-enum support. It breaks out the shadow decl handling of UsingDecl to a new intermediate base class, BaseUsingDecl, altering the decl hierarchy to def BaseUsing : DeclNode<Named, "", 1>; def Using : DeclNode<BaseUsing>; def UsingPack : DeclNode<Named>; def UsingShadow : DeclNode<Named>; def ConstructorUsingShadow : DeclNode<UsingShadow>; Differential Revision: https://reviews.llvm.org/D101777
-
hsmahesha authored
Before packing LDS globals into a sorted structure, make sure that their alignment is properly updated based on their size. This will make sure that the members of sorted structure are properly aligned, and hence it will further reduce the probability of unaligned LDS access. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D103261
-
Daniil Seredkin authored
If FP reassociation (fast-math) is allowed, then LLVM is free to do the following transformation pow(x, y) * pow(x, z) -> pow(x, y + z). This patch adds this transformation and tests for it. See more https://bugs.llvm.org/show_bug.cgi?id=47205 It handles two cases 1. When operands of fmul are different instructions %4 = call reassoc float @llvm.pow.f32(float %0, float %1) %5 = call reassoc float @llvm.pow.f32(float %0, float %2) %6 = fmul reassoc float %5, %4 --> %3 = fadd reassoc float %1, %2 %4 = call reassoc float @llvm.pow.f32(float %0, float %3) 2. When operands of fmul are the same instruction %4 = call reassoc float @llvm.pow.f32(float %0, float %1) %5 = fmul reassoc float %4, %4 --> %3 = fadd reassoc float %1, %1 %4 = call reassoc float @llvm.pow.f32(float %0, float %3) Differential Revision: https://reviews.llvm.org/D102574
-
KareemErgawy authored
Implements better naming for results of spv.mlir.addressof ops by making it inherit from OpAsmOpInterface and implementing the associated getAsmResultName(...) hook. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D103594
-
Adam Czachorowski authored
During code completion, lookupInDeclContext() calls CodeCompletionDeclConsumer::FoundDecl(),which can mutate StoredDeclsMap, over which lookupInDeclContext() iterates. This can lead to invalidation of iterators and an assert()-crash. Example code where this happens: #include <list> int main() { std::list<int>; std::^ } with code completion on ^ with -std=c++20. I do not have a repro case that does not need standard library. This fix stores pointers to NamedDecls in a temporary vector, then visits them outside of the main loop, when StoredDeclsMap iterators are gone. Differential Revision: https://reviews.llvm.org/D103472
-
Simon Pilgrim authored
-
Nico Weber authored
-
Kadir Cetinkaya authored
TestTU now prints errors to llvm::errs and aborts on failures via llvm_unreachable, rather than executing ASSERT_FALSE. We'd like to make use of these testing libraries in different test suits that might be compiling with a different gtest version than LLVM has. Differential Revision: https://reviews.llvm.org/D103685
-
Bradley Smith authored
Use llvm.experimental.vector.insert instead of storing into an alloca when generating code for these intrinsics. This defers the codegen of the generated vector to instruction selection, allowing existing shufflevector style optimizations to apply. Additionally, introduce a new target transform that can recognise fixed predicate patterns in the svbool variants of these intrinsics. Differential Revision: https://reviews.llvm.org/D103082
-
Matthias Springer authored
Add helper functions to quickly check for zero low/high padding. Differential Revision: https://reviews.llvm.org/D103781
-
Florian Hahn authored
-
Florian Hahn authored
Explicitly specify contract behavior, so the tests are independent of the current default of the flag.
-
Matthias Springer authored
* Add hasUnitStride and hasZeroOffset to OffsetSizeAndStrideOpInterface. These functions are useful for various patterns. E.g., some vectorization patterns apply only for tensor ops with zero offsets and/or unit stride. * Add getConstantIntValue and isEqualConstantInt helper functions, which are useful for implementing the two above functions, as well as various patterns. Differential Revision: https://reviews.llvm.org/D103763
-
Pushpinder Singh authored
This global struct used to hold various flags for monitoring the initialization of hsa. Reviewed By: JonChesterfield Differential Revision: https://reviews.llvm.org/D103795
-
Stuart Brady authored
Reviewed By: svenvh Differential Revision: https://reviews.llvm.org/D97725
-
Liqiang Tao authored
This patch abstract Calls in Inliner:run() to InlineOrder. With this patch, it's possible to customize the inlining order, e.g. use queue or priority queue. Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D103315
-
Nico Weber authored
Also adjust a few comments, and move the DylibFile comment talking about umbrella next to the parameter again. Differential Revision: https://reviews.llvm.org/D103783
-
Dmitry Polukhin authored
This diff adds testcase for the issue fixed in https://reviews.llvm.org/D77468 but regression test was not added in the diff. On Clang 9 it caused crash in cland during code completion. Test Plan: check-clang-unit Differential Revision: https://reviews.llvm.org/D103722
-
Guillaume Chatelet authored
Differential Revision: https://reviews.llvm.org/D103251
-
Florian Hahn authored
-