- Mar 17, 2022
-
-
Malhar Jajoo authored
This patch ensures scalars (except for uniforms) are no longer collected (prior to LVP planning phase) for scalable vectorization. This is to avoid the chances of generating scalarized instructions later (during LVP execute phase) as they are not supported for scalable vectorization. Relevant test has also been added. Differential Revision: https://reviews.llvm.org/D121452
-
Jonas Devlieghere authored
Update warning after 2fc38b2b.
-
Andrzej Warzynski authored
This patch adds support for lowering of the `size` intrinsic from Fortran to the FIR dialect of MLIR. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D121803 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
Peter Steinfeld <psteinfeld@nvidia.com>
-
Nikita Popov authored
This reverts commit 6a23d276. The newly added tests fail on the llvm-clang-x86_64-sie-win buildbot. Not sure why a failure only occurs there, possibly differen PRNG sequence?
-
Valentin Clement authored
This patch adds lowering for shift intrinsics: - `ishft` - `eoshift` - `ishftc` - `cshift` This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121808 Co-authored-by:
V Donaldson <vdonaldson@nvidia.com> Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Peter Steinfeld <psteinfeld@nvidia.com> Co-authored-by:
AlexisPerry <aperry@lanl.gov>
-
Valentin Clement authored
This patch adds lowering for IO input with vector subscripts. It defines a VectorSubscriptBox class that allow representing and working with a lowered Designator containing vector subscripts while ensuring all the subscripts expression are only lowered once. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: PeteSteinfeld Differential Revision: https://reviews.llvm.org/D121806 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com>
-
- Mar 16, 2022
-
-
Nikita Popov authored
-
Yonghong Song authored
Current ASTContext.getAttributedType() takes attribute kind, ModifiedType and EquivType as the hash to decide whether an AST node has been generated or note. But this is not enough for btf_type_tag as the attribute might have the same ModifiedType and EquivType, but still have different string associated with attribute. For example, for a data structure like below, struct map_value { int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *a; int __attribute__((btf_type_tag("tag2"))) __attribute__((btf_type_tag("tag4"))) *b; }; The current ASTContext.getAttributedType() will produce an AST similar to below: struct map_value { int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *a; int __attribute__((btf_type_tag("tag1"))) __attribute__((btf_type_tag("tag3"))) *b; }; and this is incorrect. It is very difficult to use the current AttributedType as it is hard to get the tag information. To fix the problem, this patch introduced BTFTagAttributedType which is similar to AttributedType in many ways but with an additional BTFTypeTagAttr. The tag itself can be retrieved with BTFTypeTagAttr. With the new BTFTagAttributed type, the debuginfo code can be greatly simplified compared to previous TypeLoc based approach. Differential Revision: https://reviews.llvm.org/D120296 -
Jake Egan authored
Sending output to /dev/stdout on AIX gets an llc permission denied error, so this patch removes this from the tests. Reviewed By: simoll, hubert.reinterpretcast Differential Revision: https://reviews.llvm.org/D121799
-
Jonas Devlieghere authored
Report warnings and errors through events instead of printing directly the to the debugger's error stream. By using events, IDEs such as Xcode can report these issues in the UI instead of having them show up in the debugger console. The new diagnostic events are handled by the default event loop. If a diagnostic is reported while nobody is listening for the new event types, it is printed directly to the debugger's error stream. Differential revision: https://reviews.llvm.org/D121511
-
Amir Ayupov authored
Fix prefix emission order to emit REX immediately before the opcode (SDM vol2, 2.1, Figure 2-1). According to SDM vol2 2.2.1, "Other placements are ignored". This fix has a side effect of outputting segment override prefix in a different order than previously (benign). Follow-up to https://reviews.llvm.org/D120592 Reviewed By: skan, craig.topper Differential Revision: https://reviews.llvm.org/D120871
-
Amir Ayupov authored
Print and emit redundant Address-Size override prefix if it's set on the instruction. Reviewed By: skan Differential Revision: https://reviews.llvm.org/D120592
-
Haojian Wu authored
-
LLVM GN Syncbot authored
-
Amir Ayupov authored
Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D121669
-
Kazushi (Jam) Marukawa authored
Add the rest of intrinsics to clang except intrinsics using vector mask registers. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D121586
-
Andrzej Warzynski authored
This patch adds support for lowering of the `set_exponent` intrinsic from Fortran to the FIR dialect of MLIR. This is part of the upstreaming effort from the `fir-dev` branch in [1]. [1] https://github.com/flang-compiler/f18-llvm-project Differential Revision: https://reviews.llvm.org/D121805 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eun Jung Park <ejpark@lanl.gov>
-
Joe Nash authored
NFC. Switch from calculations based on dwords to bits, to be more flexible. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D121730
-
Jean Perier authored
Allow fir.rebox input and output element type to differ for characters if: - Any of the character type is dynamic. Fortran allows making pointer assignments between deferred and constant lengths entities, making this case useful (if the input length is dynamic and the output length constant, it is a user requirement that the length matches at runtime. There is no option to check this at runtime, but it could be added as an option to fir.rebox codegen later if desired). - Or, there is a slice in the fir.rebox (the fir.rebox can implement a substring view, hence the constant output and input lengths). This is only a verifier constraint change, the fir.rebox codegen is not impacted and already support those cases. Add related FIR parsing, error, and codegen tests. Differential Revision: https://reviews.llvm.org/D121710
-
Pavel Labath authored
This was inadvertedly changed (bad search&replace) when I was removing the LLDBLOG macros.
-
Nikita Popov authored
When a load extends past the extent of the alloca, SROA will restrict the slice size to extend to the end of the alloca only. However, presplitting was asserting that the load size and the slice size match exactly, which does not hold in this case. Relax the assertion to only require that the load size is greater or equal than the slice size.
-
Will Hawkins authored
Change enumaration to enumeration in code handling LLDB help output. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121800
-
Will Hawkins authored
Correct a few spelling errors and typos in the LLDB help output. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D121802
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D121807
-
Matthias Springer authored
This removes a restriction wrt. scf.for loops during One-Shot Bufferization. Such IR was previously rejected. It is still rejected by default because the bufferized IR could be slow. But such IR can now be bufferized with `allow-return-allocs`. Differential Revision: https://reviews.llvm.org/D121529
-
Shengchen Kan authored
-
Florian Hahn authored
If BB has a single successor, conditions can be added safely.
-
Matthias Springer authored
New buffer allocations can now be returned/yielded from blocks with `allow-return-allocs`. One-Shot Bufferize deallocates all buffers at the end of the block. If this is not possible (because the buffer escapes the block), this is now done by the existing BufferDeallocation pass. Differential Revision: https://reviews.llvm.org/D121527
-
Zhouyi Zhou authored
CT_Dependent When compile following code without -std=c++17, clang will abort by llvm_unreachable: class A { public: static const char X; }; const char A::X = 0; template<typename U> void func() noexcept(U::X); template<class... B, char x> void foo(void(B...) noexcept(x)) {} void bar() { foo(func<A>); } So, my solution is to let EST_Uninstantiated in FunctionProtoType::canThrow return CT_Dependent Differential Revision: https://reviews.llvm.org/D121498 -
Tue Ly authored
Let exhaustive tests indicate each interval PASSED/FAILED. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D121564
-
Matthias Springer authored
* Implement RegionBranchOpInterface: The op has a region, but it is conceptually not entered. The region just describes the semantics of the (monolithic) op. * Linalg structured ops do not allocate memory. Differential Revision: https://reviews.llvm.org/D121798
-
Valentin Clement authored
This patch adds lowering for the count intrinsic. This patch is part of the upstreaming effort from fir-dev branch. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D121782 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
mleair <leairmark@gmail.com>
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D121278
-
Alexey Bataev authored
No need to schedule entry nodes where all instructions are not memory read/write instructions and their operands are either constants, or arguments, or phis, or instructions from others blocks, or their users are phis or from the other blocks. The resulting vector instructions can be placed at the beginning of the basic block without scheduling (if operands does not need to be scheduled) or at the end of the block (if users are outside of the block). It may save some compile time and scheduling resources. Differential Revision: https://reviews.llvm.org/D121121
-
Dmitry Preobrazhensky authored
The original design of custom operands support assumed that most GPUs have the same or very similar operand names end encodings. This is no longer the case. As a result the support code becomes over-complicated and difficult to maintain. This change implements a different design with the following benefits: - support of aliases; - support of operands with overlapped encodings; - identification of defined but unsupported operands. Differential Revision: https://reviews.llvm.org/D121696
-
Louis Dionne authored
In 7fb40e15, I changed the availability for bad_optional_access and friends from macOS 10.14 to 10.13 after conducting an investigation on old dylibs. It turns out that macOS 10.13 did have bad_optional_access, however the dylib on iOS didn't match the dylib on macOS, so those exception classes were only introduced in iOS 12. Thanks to Aditya Kumar for noticing this. Differential Revision: https://reviews.llvm.org/D121735
-
Vladislav Khmelevsky authored
The BinaryEmitter uses opts::AlignText value to align the hot text section. Also check that the opts::AlignText is at least equal opts::AlignFunctions for the same reason, as described in D121392. Vladislav Khmelevsky, Advanced Software Technology Lab, Huawei Differential Revision: https://reviews.llvm.org/D121728
-
Louis Dionne authored
It's the role of the C++ ABI library to install its own headers, not libc++. This fixes an existing issue causing spurious CI failures where both libc++ and libc++abi would try to install <cxxabi.h> & friends in the same location, leading to failures during the installation step. Differential Revision: https://reviews.llvm.org/D121706
-
Jan Svoboda authored
This is the only test in the ClangScanDeps suite that doesn't convert (double) backslashes to forward slashes.
-
Jan Svoboda authored
This test fails on Windows due to path separators
-