- Sep 21, 2022
-
-
Matheus Izvekov authored
This change allows us to represent in the AST some specific circumstances where we substitute a template parameter type which is part of the underlying type of a previous substitution. This presently happens in some circumstances dealing with substitution of defaulted parameters of template template parameters, and in some other cases during concepts substitution. The main motivation for this change is for the future use in the implementation of template specialization resugaring, as this will allow us to represent a substitution with sugared types. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D132816
-
Ivan Butygin authored
Negative strides are useful for creating reverse-view of array. We don't have specific example for negative offset yet but will add it for consistency. Differential Revision: https://reviews.llvm.org/D134147
-
Michał Górny authored
Support specifying multiple configuration files via multiple `--config` options. When multiple files are specified, the options from subsequent files are appended to the options from the initial file. While at it, remove the incorrect assertion about CfgFileName being non-empty. It can be empty if `--config ""` is passed, and it makes sense to report it as non-existing file rather than crash. Differential Revision: https://reviews.llvm.org/D134270
-
Wei Yi Tee authored
Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D134318
-
Simon Pilgrim authored
-
Wei Yi Tee authored
Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D134081
-
Kazushi (Jam) Marukawa authored
Remove obsolete ANDrm patterns for MIMM operands. We add these translations to optimize commonly used cast operations before we support MIMM operands directly by each isntruction. Such translations are obsolete now. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134341
-
Nikita Popov authored
-
Thomas Symalla authored
This patch changes a FADD / FMUL => FMA ISel pattern implemented in D80801 so that it peeks through more than one FMA. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D132837
-
David Green authored
The llvm.aarch64.neon.scalar.sqxtn.i32.i64 intrinsics take and return integer types, but operate on fp registers. This can create some inefficiencies in their lowering, where the registers are converted to fp a little too late. This patch adds lowering for the intrinsics, creating bitcasts to/from fp types to allow nicer folding later when the instructions are selected, especially around insert/extracts. Differential Revision: https://reviews.llvm.org/D134024
-
Jay Foad authored
-
Matthias Springer authored
This function must be implemented for all ops, where the result memref type is different from the input memref type. Differential Revision: https://reviews.llvm.org/D134331
-
Graham Hunter authored
The IR from https://github.com/llvm/llvm-project/issues/57368 results in an assert firing when trying to create a runtime check for the forked pointer. One of the forks is fine since it's loop invariant, but the other is a scAddExpr (containing a scAddRecExpr, so not invariant) when RtCheck::insert expects a scAddRecExpr. This is a simple fix to just avoid forks which aren't AddRec or loop invariant. We can allow it as a forked pointer later with more work. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D133020
-
Valentin Clement authored
Parent component refers to the parent derived-type of an extended type. The parent component is skipped when a specififc component is referred to. This is fine since all the components in extended type are available in the type itself. When the parent component is referred, it need to be taken into account correctly. This patch fixes the case when the parent component is referred. In a box, an approriate slice is created or updated to point to the first component of the parent component. For scalar, a simple conversion to the parent component type is done. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D134170
-
eopXD authored
The current `CHECK` lines are hand-written. Changing them to auto-generated lines. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D134340
-
Kazushi (Jam) Marukawa authored
We previously added l2i/i2l macros to simpily EXTRACT_SUBREG/INSERT_SUBREG conversions. This patch changes VEInstrInfo.td to use such macros to simplify existing code. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134118
-
Kazushi (Jam) Marukawa authored
Add maxnum and minnum for float and double. Lowering is already implemented, so this patch changes them legal and adds regression tests. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134108
-
Kazushi (Jam) Marukawa authored
VE has fused multiply-add instruction for only vector calculations. This patch forces to expand scalar FMA to multiply and add instructions. This patch also adds regression test. Reviewed By: efocht Differential Revision: https://reviews.llvm.org/D134107
-
David Green authored
This adds some quick tablegen patterns for vector_insert(bitcast(..)) and bitcast(vector_extract(..)), allowing us to avoid a round-trip through GPRs. Differential Revision: https://reviews.llvm.org/D134022
-
David Sherwood authored
Inlining must be disabled when the call-site needs to toggle PSTATE.SM or when the callee's function body is executed in a different streaming mode than its caller. This is needed because function calls are the boundaries for streaming mode changes. More details about the SME attributes and design can be found in D131562. Differential Revision: https://reviews.llvm.org/D131581
-
Nikita Popov authored
I believe this is no longer necessary, as the underlying problem has been fixed in a different way: Nowadays, we will adjust the location size to beforeOrAfterPointer() if the pointer is not loop invariant. This makes merging results translated across loop backedges safe. The two tests in phi-translation.ll show an improvement while still being correct: The loads in the loop no longer alias with noalias pointers, but still alias with the store in the entry block (which they originally did not -- this is the bug that PerformedPhiTranslation originally fixed). Differential Revision: https://reviews.llvm.org/D133404
-
Jean Perier authored
The previous code was rewriting all shape inquires on associate construct entities to inquires on the associated expression or variable. This is is incorrect because at the point of inquiry, some statement between the association and the inquiry may have modified the expression operands or variable in a way that changes its shapes or bounds. For instance, in the example below, expression rewrites was previously replacing `size(x, 1)` by `size(p, 1)` which is invalid if p is a pointer. ``` associate(x => p + 1) call call_that_may_modify_p_shape() print *, size(x, 1) end associate ``` This change restricts rewrites of shape inquiries on associate construct entity to use the associated expression shape and bounds if and only if the shape/bounds are compile time constant. Otherwise, this may be invalid. Differential Revision: https://reviews.llvm.org/D133857
-
Thomas Symalla authored
Pre-commit an additional fmac test for D132837.
-
Bjorn Pettersson authored
Commit de3445e0 (https://reviews.llvm.org/D132096) made changes to isVectorPromotionViable basically doing // Create Vector with size of V, and each element of type Ty ... uint64_t ElementSize = DL.getTypeStoreSizeInBits(Ty).getFixedSize(); uint64_t VectorSize = DL.getTypeSizeInBits(V).getFixedSize(); ... VectorType *VTy = VectorType::get(Ty, VectorSize / ElementSize, false); Not quite sure why it uses the TypeStoreSize for the ElementSize, but the new vector would only match in size with the old vector in situations when the TypeStoreSize equals the TypeSize for Ty. Therefore this patch adds a typeSizeEqualsStoreSize check as yet another condition for allowing the the new type as a promotion candidate. Without this fix the new @test15 test would fail with an assert like this: opt: ../lib/Transforms/Scalar/SROA.cpp:1966: auto isVectorPromotionViable(llvm::sroa::Partition &, const llvm::DataLayout &) ::(anonymous class)::operator()(llvm::VectorType *, llvm::VectorType *) const: Assertion `DL.getTypeSizeInBits(RHSTy).getFixedSize() == DL.getTypeSizeInBits(LHSTy).getFixedSize() && "Cannot have vector types of different sizes!"' failed. ... #8 isVectorPromotionViable(...)::$_10::operator()... #9 llvm::SROAPass::rewritePartition(...) #10 llvm::SROAPass::splitAlloca(...) #11 llvm::SROAPass::runOnAlloca(...) #12 llvm::SROAPass::runImpl(...) #13 llvm::SROAPass::run(...) Reviewed By: MatzeB Differential Revision: https://reviews.llvm.org/D134032
-
River Riddle authored
These aren't user facing, so just flip them directly to prefixed.
-
River Riddle authored
This had quite a few grammatical errors and typos.
-
River Riddle authored
This allows for using the llvm namespace cast methods instead of the ones on the Attribute class. The Attribute class methods are kept for now, but we'll want to remove these eventually (with a really long lead time). Differential Revision: https://reviews.llvm.org/D134327
-
Adrian Kuegel authored
-
Mark de Wever authored
Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D132788
-
Chen Zheng authored
This solves https://github.com/llvm/llvm-project/issues/57664 Reviewed By: sameerds Differential Revision: https://reviews.llvm.org/D134019
-
Michał Górny authored
Fix teletype formatting in configuration file documentation to use double backticks rather than single backticks. Cover some more names with this formatting. Correct the name of config file for `clang-cl` invocation. Differential Revision: https://reviews.llvm.org/D134271
-
Jennifer Yu authored
This patch add codegen support for the has_device_addr clause. It use the same logic of is_device_ptr. But passing &var instead pointer to var to kernal. Differential Revision: https://reviews.llvm.org/D134268
-
Mehdi Amini authored
This reverts commit 5d4603a0. The Dialect/Tensor/fold-consecutive-insert-extract-slice.mlir test is failing when built with GCC
-
Kevin Gleason authored
Discovered an issue working in StableHLO when attempting to build with `-Wall -Werror`: https://github.com/openxla/stablehlo/pull/137 Currently, if `LLVM_USE_LLD` and `-DCMAKE_CXX_FLAGS="${CMAKE_CXX_FLAGS} -Wall -Werror"` are both specified for build, the build will error with: ``` -- Performing Test CXX_SUPPORTS_CUSTOM_LINKER - Failed CMake Error at /usr/local/google/home/gleasonk/Coding/llvm-build/lib/cmake/llvm/HandleLLVMOptions.cmake:309 (message): Host compiler does not support '-fuse-ld=lld' ... $ cat <build_dir>/CMakeFiles/CMakeError.log ... clang: error: argument unused during compilation: '-fuse-ld=lld' [-Werror,-Wunused-command-line-argument] ``` It looks like other repos have hit this same issue: - https://github.com/golang/go/issues/41527 (mentioned in comment) - https://github.com/iree-org/iree/pull/7450 This can be reproduced in llvm-project with the following build command: ``` # Compile command taken from https://mlir.llvm.o...
-
Christopher Bate authored
This change allows the SCF LoopPipelining transform to handle ops with nested regions within the pipelined `scf.for` body. The op and nested regions are treated as a single unit from the transform's perspective. This change also makes explicit the requirement that only ops whose parent Block is the loop body Block are allowed to be scheduled by the caller. Reviewed By: ThomasRaoux, nicolasvasilache Differential Revision: https://reviews.llvm.org/D133965
-
Emmmer authored
-
Craig Topper authored
This extension does not appear to be on its way to ratification. Out of the unratified bitmanip extensions, this one had the largest impact on the compiler. Posting this patch to start a discussion about whether we should remove these extensions. We'll talk more at the RISC-V sync meeting this Thursday. Reviewed By: asb, reames Differential Revision: https://reviews.llvm.org/D133834
-
Fangrui Song authored
[Driver] Fix -f[no-]unwind-tables -Wunused-command-line-argument after 4388b56d
-
jacquesguan authored
[RISCV] Support peephole optimization to fold vmerge.vvm that has tail agnostic policy and unmasked intrinsics. This patch supports the tail agnostic part of D130442. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D132923
-
Ting Wang authored
Reviewed By: lkail Differential Revision: https://reviews.llvm.org/D133921
-