- Jul 01, 2022
-
-
Christopher Bate authored
For the conversion to nvgpu `mma.sync` and `ldmatrix` pathways, the code was missing support for the `i4` data type. While fixing this, another bug was discoverd that caused the number of ldmatrix tiles calculated for certain operand types and configurations to be incorrect. This change fixes both issues and adds additional tests. Differential Revision: https://reviews.llvm.org/D128074
-
Jonas Devlieghere authored
TestObjCXXBridgedPO is broken on macOS Ventura (but not on macOS Monterey). I took a look but it doesn't seem trivial. I'm XFAILing the test until Adrian, who wrote the test, can take a look. rdar://96224141
-
jeff authored
Differential Revision: https://reviews.llvm.org/D128681
-
Valentin Clement authored
The check to see if the arguments for the MIN/MAX intrinsics were of CHARACTER type was not handling assumed length characters. In this case, the FIR type is "!fir.ref<!fir.char<1,?>>". This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D128922 Co-authored-by:
Peter Steinfeld <psteinfeld@nvidia.com>
-
Sam Estep authored
Many of our tests are currently written using `TEST_F` where the test fixture class doesn't have any `SetUp` or `TearDown` methods, and just one helper method. In those cases, this patch deletes the class and pulls its method out into a standalone function, using `TEST` instead of `TEST_F`. There are still a few test files leftover in `clang/unittests/Analysis/FlowSensitive/` that use `TEST_F`: - `DataflowAnalysisContextTest.cpp` because the class contains a `Context` field which is used - `DataflowEnvironmentTest.cpp` because the class contains an `Environment` field which is used - `SolverTest.cpp` because the class contains a `Vals` field which is used - `TypeErasedDataflowAnalysisTest.cpp` because there are several different classes which all share the same method name Reviewed By: ymandel, sgatev Differential Revision: https://reviews.llvm.org/D128924
-
Craig Topper authored
Similar for a subtract with a constant left hand side. (sra (add (shl X, 32), C1<<32), 32) is the canonical IR from InstCombine for (sext (add (trunc X to i32), 32) to i32). For RISCV, we should lower this as addiw which means turning it into (sext_inreg (add X, C1)). There is an existing DAG combine to convert back to (sext (add (trunc X to i32), 32) to i32), but it requires isTruncateFree to return true and for i32 to be a legal type as it used sign_extend and truncate nodes. So that doesn't work for RISCV. If the outer sra happens be used by a shl by constant, it will be folded and the shift amount of the sra will be changed before we can do our own DAG combine. This requires us to match the more general pattern and restore the shl. I had wanted to do this as a separate (add (shl X, 32), C1<<32) -> (shl (add X, C1), 32) combine, but that hit an infinite loop for some values of C1. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D128869
-
Craig Topper authored
The sext_inreg can often be folded into an earlier instruction by using a W instruction. The sext_inreg also works better with our ABI. This is one of the steps to improving the generated code for this https://godbolt.org/z/hssn6sPco Reviewed By: asb Differential Revision: https://reviews.llvm.org/D128843
-
Craig Topper authored
-
- Jun 30, 2022
-
-
Jonas Devlieghere authored
Fixes error: missing '#include "llvm/IR/FMF.h"'; 'FastMathFlags' must be defined before it is used in llvm/include/llvm/IR/NoFolder.h.
-
Matthew Voss authored
Adds support for reading and writing LTO bitcode files. - Emit a summary if the original bitcode file had a summary - Use split LTO units if the original bitcode file used them. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D127168
-
Peixin Qiao authored
As Fortran 2018 16.9.163, the reshape is the only intrinsic which requires the shape argument to be rank-one integer array and the SIZE of it to be one constant expression. The current expression lowering converts the shape expression with slice in intrinsic into one box value with the box element type of unknown extent. However, the genReshape requires the box element type to be constant size. So, convert the box value into one with box element type of sequence of 1 x constant. This corner case is found in cam4 in SPEC 2017 https://github.com/llvm/llvm-project/issues/56140. Reviewed By: Jean Perier Differential Revision: https://reviews.llvm.org/D128597
-
David Green authored
-
Piotr Sobczak authored
gfx11 introduces new WMMA (Wave Matrix Multiply-accumulate) instructions. Reviewed By: arsenm, #amdgpu Differential Revision: https://reviews.llvm.org/D128756
-
Valentin Clement authored
-
Sam McCall authored
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: libcxx-commits Differential Revision: https://reviews.llvm.org/D128906
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: cfe-commits, llvm-commits, libcxx-commits Differential Revision: https://reviews.llvm.org/D127313
-
Tue Ly authored
-
Pavel Labath authored
D128285 only changed the stable (v1) layout, so the matching change in D128694 broke the formatting of the unstable strings. This fixes that, and ensures compatibility with all older layouts as well.
-
Nikita Popov authored
Migrate all binops to use FoldXYZ rather than CreateXYZ APIs, which are compatible with InstSimplifyFolder and fallible constant folding. Rather than continuing to add one method for every single operator, add a generic FoldBinOp (plus variants for nowrap, exact and fmf operators), which we would need anyway for CreateBinaryOp. This change is not NFC because IRBuilder with InstSimplifyFolder may perform more folding. However, this patch changes SCEVExpander to not use the folder in InsertBinOp to minimize practical impact and keep this change as close to NFC as possible.
-
Muhammad Omair Javaid authored
PDB/func-symbols.test was orignally written for 32bit x86, keeping in mind cdecl and stdcall calling conventions which does name mangling for example like adding "_" underscore before function name. This is only x86 specific but purpose of pointers.test is NOT to test calling convention. I have made a minor change to make this test pass on Windows/Arm.
-
Chen Zheng authored
-
Muhammad Omair Javaid authored
TestCommandScript.py fails on Arm/Windows due following issues: https://llvm.org/pr56288 https://llvm.org/pr56292 LLDB fails to skip prologue and also step over library function or nodebug functions fails due to PDB/DWARF mismatch. This patch replace function breakpoint with line breakpoint so that we can expect LLDB to stop on desired line. Also replace dwarf with PDB debug info for this test only.
-
Erich Keane authored
This is a continuation of D119544. Based on @rsmith 's feed back showing me https://eel.is/c++draft/temp#friend-9, We should properly handle friend functions now. Differential Revision: https://reviews.llvm.org/D126907
-
Valentin Clement authored
The original assertion is not necessarily correct since the shape argument may involve a slice of an array (an expression) and not a whole vector with constant length. In the presence of a slice operation, the size must be computed (left as a TODO for now). This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D128894 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
LLVM GN Syncbot authored
-
Nikita Popov authored
This means we no longer need to have the same API between IRBuilder and IRBuilderFolder. The constant case is substantially simpler, so implementing it separately isn't an undue burden.
-
Xiang Li authored
Change WaveActiveCountBits from builtin into wrapper of __builtin_hlsl_wave_active_count_bits. For comment at https://reviews.llvm.org/D126857#inline-1235949 Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D128855
-
Prathit Aswar authored
Fixing issue "incorrect -Winfinite-recursion warning on potentially- unevaluated operand". We add a dedicated visit function (VisitCXXTypeidExpr) for typeid, instead of using the default (VisitStmt). In this new function we skip over building the CFG for unevaluated operands of typeid. Fixes #21668 Differential Revision: https://reviews.llvm.org/D128747
-
Nikita Popov authored
Nowdays we have a generic constant folding API to load a type from an offset. It should be able to do anything that VNCoercion can do. This avoids the weird templating between IRBuilder and ConstantFolder in one function, which is will stop working as the IRBuilderFolder moves from CreateXYZ to FoldXYZ APIs. Unfortunately, this doesn't eliminate this pattern from VNCoercion entirely yet.
-
Aaron Jacobs authored
It took me multiple hours of debugging plus asking an expert for help to figure out why this function didn't do what it promised to do. It turns out there is a flag that needs to be set. Document this, in an attempt to save the next person the surprise. Reviewed By: ymandel Differential Revision: https://reviews.llvm.org/D128774
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc, EricWF Spies: EricWF, libcxx-commits Differential Revision: https://reviews.llvm.org/D127919
-
Florian Hahn authored
At the moment LoopVersioning is only created for inner-loop vectorization. This patch moves it to LVP::execute, which means it will also be added for epilogue vectorization. As a consequence, the proper noalias metadata is now also added to epilogue vector loops. LVer will be moved to VPTransformState as follow-up. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D127966
-
Xiang1 Zhang authored
-
esmeyi authored
-
Michael Platings authored
This allows including the headers without risk of conflict with user-defined macros e.g. max Differential Revision: https://reviews.llvm.org/D128728
-
Fraser Cormack authored
-
Nicolas Vasilache authored
[mlir][Linalg] Uniformize SplitReduction transforms and add option to use Bufferization::AllocTensor This revision merges the 2 split_reduction transforms and adds extra control by using attributes. SplitReduction is known to require a concrete additional buffer to store tempoaray information. Add an option to introduce a `bufferization.alloc_tensor` instead of `linalg.init_tensor`. This behaves better with subset-based tiling and bufferization. Differential Revision: https://reviews.llvm.org/D128722
-
Sanjay Patel authored
The assert was added with 0399473d and is correct for that pattern, but it is off-by-1 with the enhancement in d4f39d83. The transforms are still correct with the new pre-condition: https://alive2.llvm.org/ce/z/6_6ghm https://alive2.llvm.org/ce/z/_GTBUt And as shown in the new test, the transform is expected with 'ult' - in that case, the icmp reduces to test if the shift amount is 0.
-
Nikita Popov authored
This allows all constant folding to happen through a single function, without requiring special handling for loads at each call-site. This may not be NFC because some callers currently don't do that special handling.
-