- Jun 01, 2022
-
-
Sanjay Patel authored
issue #55758
-
Guillaume Chatelet authored
Note, this is a re-submission of D125894 with `features = ["-header_modules"]` added to the main BUILD.bazel file. Some functions like `stpncpy` are implemented in terms of `memset` but are not currently using `-fno-builtin-memset`. This is somewhat hidden by the fact that we use `-ffreestanding` globally and that `-ffreestanding` implies `-fno-builtin` for Clang. This patch also removes `-mllvm -combiner-global-alias-analysis` that is Clang specific and that does not bring substantial gains on modern processors. Also we keep `-mllvm --tail-merge-threshold=0` for aarch64 in CMakeLists.txt but we omit it in the Bazel config. This is because Bazel consumes the source files directly and so it can use PGO to take optimal decisions locally. Differential Revision: https://reviews.llvm.org/D126773
-
Alexander Kornienko authored
This reverts commit 5890b301 as per discussion on the review thread: https://reviews.llvm.org/D114487#3547560.
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Matt Arsenault authored
I'm a bit confused by what's actually stored for the allocation hints. The MIR parser only handles the "simple" case where there's a single hint. I don't really understand the assertion in clearSimpleHint, or under what circumstances there are multiple hint registers.
-
Matt Arsenault authored
-
Florian Hahn authored
The constructor is not used. Remove it.
-
Alexander Kornienko authored
This reverts commit ec4adf1f. The commit causes clang to hang on a certain input: ``` $ cat q.cc int f(int a, int b) { int c = ((unsigned char)(a >> 23) & 925); if (a) c = (a >> 23 & b) | ((unsigned char)(a >> 23) & 925) | (b >> 23 & 157); return c; } $ time ./clang-15-10515 --target=x86_64--linux-gnu -O1 -c q.cc ^C real 0m45.072s user 0m0.025s sys 0m0.099s ```
-
Kiran Chandramohan authored
The basic infinite loop is lowered to a branch to the body of the loop, and the body containing a back edge as its terminator. Note: This is part of upstreaming from the fir-dev branch of https://github.com/flang-compiler/f18-llvm-project. Reviewed By: rovka Differential Revision: https://reviews.llvm.org/D126697 Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Haojian Wu authored
Add the cxx.bnf file as a dependency of custom gen commands, so that the inc files can be rebuilt when cxx.bnf changes.
-
Simon Pilgrim authored
It doesn't look like we have test coverage for this at the moment :(
-
Christian Sigg authored
-
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
-