- Jun 01, 2022
-
-
Nikita Popov authored
Avoid a behavior change when opaque pointers are enabled by default.
-
Sheng authored
-
Sander de Smalen authored
The FunctionTypeExtraBitfields is currently only available when the ExceptionSpecificationType == Dynamic, which means that there is no other way to use or extend the FunctionTypeExtraBitfields independently of the exception specification type. This patch adds a new field HasExtraBitfields to specify whether the prototype has trailing ExtraBitfields. This patch intends to be NFC and is required for future extension and use of the ExtraBitfields struct. Reviewed By: aaron.ballman, erichkeane Differential Revision: https://reviews.llvm.org/D126642
-
Christian Sigg authored
Reviewed By: tpopp Differential Revision: https://reviews.llvm.org/D126765
-
Simon Pilgrim authored
If the LHS/RHS selection operands can be cheaply concatenated back together then replace 2 x 128-bit selection nodes with 1 x 256-bit node Addresses the regression introduced in the bug fix from rGd5af6a38
-
Florian Hahn authored
This patch updates the VPlan native path to use VPRegionBlocks for all loops in a loop nest. Up to now, only the outermost loop used a region. This is a step towards unifying both paths and keep things consistent between them. It also prepares various code-gen parts for modeling the pre-header in the inner loop vectorizer (D121624). Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D123005
-
Andrew Ng authored
Differential Revision: https://reviews.llvm.org/D126703
-
Nicolas Vasilache authored
This revision adds `scf.foreach_thread` and other supporting abstractions that allow connecting parallel abstractions and tensors. Discussion is available [here](https://discourse.llvm.org/t/rfc-parallel-abstraction-for-tensors-and-buffers/62607). Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D126555
-
lewuathe authored
Lowering complex.tanh to standard dialects including math, arith. Reviewed By: pifon2a Differential Revision: https://reviews.llvm.org/D126521
-
Guillaume Chatelet authored
This patch is a subpart of D125768 intented to make the review easier. The `Address` struct represents a pointer but also adds compile time knowledge like alignment or temporal/non-temporal that helps with downstream instruction selection. Differential Revision: https://reviews.llvm.org/D125966
-
Nicolas Vasilache authored
This reverts commit 9b7193f8. This is an older branch that was committed by mistake and does not include addressed review comments, an updated version will come next.
-
Nicolas Vasilache authored
This revision adds `scf.foreach_thread` and other supporting abstractions that allow connecting parallel abstractions and tensors. Discussion is available [here](https://discourse.llvm.org/t/rfc-parallel-abstraction-for-tensors-and-buffers/62607).
-
serge-sans-paille authored
Compiler-rt doesn't provide support file for cfi on s390x ad ppc64le (at least). When trying to use the flag, we get a file error. This is an attempt at making the error more explicit. Differential Revision: https://reviews.llvm.org/D120484
-
Andrzej Warzynski authored
This patch makes sure that `flang` (symlink to `flang-to-external-fc`) is installed alongside other Flang tools. Fixes build failures in clang-aarch64-full-2stage [1] introduced after merging https://reviews.llvm.org/D125832. [1] https://lab.llvm.org/buildbot/#/builders/179/builds/3799 Differential Revision: https://reviews.llvm.org/D126760
-
Nikita Popov authored
Now that SimpleLoopUnswitch and other transforms no longer introduce branch on poison, enable the -branch-on-poison-as-ub option by default. The practical impact of this is mostly better flag preservation in SCEV, and some freeze instructions no longer being necessary. Differential Revision: https://reviews.llvm.org/D125299
-
Guillaume Chatelet authored
-
LLVM GN Syncbot authored
-
David Spickett authored
The machine hosting these agents will be down for maintenance June 2nd. We (Linaro) will remove this once the agents are back online. Differential Revision: https://reviews.llvm.org/D126688
-
Florian Hahn authored
The implementations of VPlanDominatorTree, VPlanLoopInfo and VPlanPredicator are all incompatible with modeling loops in VPlans as region without explicit back-edges. Those pieces are not actively used and only exercised by a few gtest unit tests. They are at the moment blocking progress towards unifying the native and inner-loop vectorizer paths in D121624 and D123005. I think we should not block forward progress on unused pieces of code, so this patch removes the utilities for now. The plan is to re-introduce them as needed in a way that is compatible with the unified VPlan scheme used in both the inner loop vectorizer and the native path. Reviewed By: sguggill Differential Revision: https://reviews.llvm.org/D123017
-
Martin Storsjö authored
Paths that start with `\\?\` are absolute paths, and aren't expected to be used with wildcard expressions. Previously, the `?` at the start of the path triggered the condition for a potential wildcard, which caused the path to be split and reassembled. In builds with `LLVM_WINDOWS_PREFER_FORWARD_SLASH=ON`, this caused a path like e.g. `\\?\D:\tmp\hello.cpp` to be reassembled into `\\?\D:\tmp/hello.cpp` which isn't a valid path (as such absolute paths must use backslashes consistently). This fixes https://github.com/mstorsjo/llvm-mingw/issues/280. I'm not sure if there's any straightforward way to add a test for this case, unfortunately. Differential Revision: https://reviews.llvm.org/D126675
-
Martin Storsjö authored
It's a fairly common issue that the generating code incorrectly marks instructions as narrow or wide; check that the instruction lengths add up to the expected value, and error out if it doesn't. This allows catching code generation bugs. Also check that prologs and epilogs are properly terminated, to catch other code generation issues. Differential Revision: https://reviews.llvm.org/D125647
-
Martin Storsjö authored
Use the packed unwind info format if possible; otherwise try to create a packed epilog. Differential Revision: https://reviews.llvm.org/D125646
-
Martin Storsjö authored
This includes .seh_* directives for generating it from assembly. It is designed fairly similarly to the ARM64 handling. For .seh_handler directives, such as ".seh_handler __C_specific_handler, @except" (which is supported on x86_64 and aarch64 so far), the "@except" bit doesn't work in ARM assembly, as '@' is used as a comment character (on all current platforms). Allow using '%' instead of '@' for this purpose. This convention is used by GAS in similar contexts already, e.g. [1]: Note on targets where the @ character is the start of a comment (eg ARM) then another character is used instead. For example the ARM port uses the % character. In practice, this unfortunately means that all such .seh_handler directives will need ifdefs for ARM. Contrary to ARM64, on ARM, it's quite common that we can't evaluate e.g. the function length at this point, due to instructions whose length is finalized later. (Also, inline jump tables end with a ".p2align 1".) If unable to to evaluate the function length immediately, emit it as an MCExpr instead. If we'd implement splitting the unwind info for a function (which isn't implemented for ARM64 yet either), we wouldn't know whether we need to split it though. Avoid calling getFrameIndexOffset() on an unset FuncInfo.UnwindHelpFrameIdx, to avoid triggering asserts in the preexisting testcase CodeGen/ARM/Windows/wineh-basic.ll. (Once MSVC exception handling is fully implemented, those changes can be reverted.) [1] https://sourceware.org/binutils/docs/as/Section.html#Section Differential Revision: https://reviews.llvm.org/D125645 -
Martin Storsjö authored
For ARM SEH, the epilogs will need a little more associated data than just the plain list of opcodes. This is a preparatory refactoring for D125645. Differential Revision: https://reviews.llvm.org/D125879
-
Diana Picus authored
Upstream the code for handling loops with real control variables from the fir-dev branch at https://github.com/flang-compiler/f18-llvm-project/tree/fir-dev/ Also add a test. Loops with real-valued control variables are always lowered to unstructured loops. The real-valued control variables are handled the same as integer ones, the only difference is that they need to use floating point instructions instead of the integer equivalents. Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Balázs Kéri authored
Reviewed By: martong Differential Revision: https://reviews.llvm.org/D125986
-
Ping Deng authored
Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D126624
-
Benjamin Kramer authored
-
Dossay Oryspayev authored
This patch adds parser support for defaultmap clause [OpenMP 5.0]. Reviewed By: kiranchandramohan, peixin, shraiysh Differential Revision: https://reviews.llvm.org/D124190
-
lewuathe authored
Add tangent operation for complex dialect. This is the follow-up change of https://reviews.llvm.org/D126521 Differential Revision: https://reviews.llvm.org/D126685
-
Fangrui Song authored
-
Gabor Marton authored
Make the SimpleSValBuilder to be able to look up and use a constraint for an operand of a SymbolCast, when the operand is constrained to a const value. This part of the SValBuilder is responsible for constant folding. We need this constant folding, so the engine can work with less symbols, this way it can be more efficient. Whenever a symbol is constrained with a constant then we substitute the symbol with the corresponding integer. If a symbol is constrained with a range, then the symbol is kept and we fall-back to use the range based constraint manager, which is not that efficient. This patch is the natural extension of the existing constant folding machinery with the support of SymbolCast symbols. Differential Revision: https://reviews.llvm.org/D126481
-
Peixin-Qiao authored
Similar to procedure argument, the function result cannot be one named constant. Reviewed By: klausler Differential Revision: https://reviews.llvm.org/D126693
-
owenca authored
While working on a clang-format option RemoveBracesLLVM that removes braces following the guideline, we were unsure about what to do with the braces of do-while loops. The ratio of using to omitting the braces is about 4:1 in the llvm-project source, so it will help to add an example to the guideline. Also cleans up the original examples including making the nested if example more targeted on avoiding potential dangling else situations. Differential Revision: https://reviews.llvm.org/D126512
-
Endre Fülöp authored
Clang Tidy check cert-oop57-cpp now checks for arbitrary-valued arguments in memset expressions containing non-trivially default-constructible instances. Previously it only checked literal 0 values. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D126186
-
Endre Fülöp authored
Revert to fix a ReleaseNote issue. This reverts commit d33f1999.
-
Endre Fülöp authored
Clang Tidy check cert-oop57-cpp now checks for arbitrary-valued arguments in memset expressions containing non-trivially default-constructible instances. Previously it only checked literal 0 values. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D126186
-
wangpc authored
As mentioned in D125947, we can reduce codegen results by adding an explicit hard single-float ABI. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D126640
-
Fangrui Song authored
-march is error-prone: -march inherits the OS and environment from the default target triple. Use -mtriple which is more common.
-
Fangrui Song authored
-