- Aug 16, 2023
-
-
Rainer Orth authored
D157275 broke some buildbots that run with -Werror: https://lab.llvm.org/buildbot#builders/36/builds/36604 https://lab.llvm.org/buildbot#builders/57/builds/29201 Avoid this by using an overlong line rather than appeasing `clang-format`.
-
Kadir Cetinkaya authored
This makes sure we can preserve invalid-ness for consumers of this node, it prevents crashes. It also aligns better with rest of the places that store invalid expressions. Differential Revision: https://reviews.llvm.org/D157868
-
Pavel Kosov authored
Before this patch, any time TreeItem is copied in Resize method, its parent is not updated, which can cause crashes when, for example, thread window with multiple hierarchy levels is updated. Makes TreeItem move-only, removes TreeItem's m_delegate extra self-assignment by making it a pointer, adds code to fix up children's parent on move constructor and operator= Patch prepared by NH5pml30 ~~~ Huawei RRI, OS Lab Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D157960
-
Nikita Popov authored
Relative to the previous attempt, this also adjusts RegionInfo verification to allow unreachable predecessors. ----- If a block in the CHR region has an unreachable predecessor, then there will be no edge from that predecessor to the newly cloned block. However, a phi node entry for it will be left behind. Make sure that these incoming blocks get dropped as well. Fixes https://github.com/llvm/llvm-project/issues/64594. Differential Revision: https://reviews.llvm.org/D157621
-
Danila Kutenin authored
This was trigerred by the debug check when comp(a, a) was called. On line 216 it's checked that LoopBlockNumber should contain all if there are more than 1. NFC for end users Differential Revision: https://reviews.llvm.org/D157954
-
Nikita Popov authored
We should query the subtarget of the calling function, not of the intrinsic. This probably makes no functional difference (as libcalls are unlikely to vary across subtargets), but fixes minor compile-time regressions from unnecessary subtarget instantiations. Followup to D157567. Differential Revision: https://reviews.llvm.org/D157848
-
Rainer Orth authored
As described in Issue #53709 <https://github.com/llvm/llvm-project/issues/53709>, since 28d58d8f <https://reviews.llvm.org/rG28d58d8fe2094af6902dee7b4d68ec30a3e9d737> `clang` doesn't find the latest of several parallel GCC installations on Solaris, but only the first in directory order, which is pretty random. This patch sorts GCC installations in reverse version order so the latest is picked. Tested on `sparcv9-sun-solaris2.11`, `amd64-pc-solaris2.11`, and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D157275
-
David Green authored
As far as I understand - When lowering a G_CONSTANT_FOLD_BARRIER we replace the DstReg with SrcReg, and need to check that the register class is equivalent when doing so for the replacement to be legal. During lowering we could end up visiting nodes in an odd order, leaving a G_CONSTANT_FOLD_BARRIER with a known regclass for the src, but only a regbank for the dst. Providing the Regbank contains the regclass, the replacement should still be safe. This fixes an assert seen in the llvm-test-suite when lowering hoisted constants, relaxing canReplaceReg to account for the case when the regbank covers the regclass, so it is better able to handle differences in visiting order. Differential Revision: https://reviews.llvm.org/D157202
-
Nikita Popov authored
This would have been miscompiled by D157816.
-
Nikita Popov authored
New memory accesses are usually inserted by using one of the createMemoryAccessXYZ() methods followed by insertUse() or insertDef(). createMemoryAccessXYZ() accepts a defining access, however this defining access will always be overwritten by insertUse() / insertDef(). Update the documentation to clarify this, and stop passing Definition to createMemoryAccessXYZ() if it's followed by insertUse/insertDef. Alternatively, we could also make insertUse / insertDef keep the defining access if it is specified, and only recompute it if it's missing. Differential Revision: https://reviews.llvm.org/D157979
-
Noah Goldstein authored
We can simplify ule/ugt -> eq/ne and we can remove the `Or` in some cases of eq/ne. `icmp (X | Y) u<= X` --> `(X | Y) == X` - https://alive2.llvm.org/ce/z/qnbbPv `icmp (X | Y) u> X` --> `(X | Y) != X` - https://alive2.llvm.org/ce/z/fvLqg3 `icmp (X | Y) eq/ne X` - --> `(~X & Y) eq/ne 0` iff X is freely invertible - --> `(X & ~Y) eq/ne -1` iff Y is freely invertible - https://alive2.llvm.org/ce/z/cpPV_W Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D144610 -
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D144609
-
Noah Goldstein authored
On X86 for vec types `(X & Y) == Y` is generally preferable to `(X & Y) != 0`. Creating zero requires an extra instruction and on pre-avx512 targets there is no vector `pcmpne` so it requires two additional instructions to invert the `pcmpeq`. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D157014
-
Noah Goldstein authored
Add additional cases for: select, vselect, {u,s}{min,max}, and, casts, rotl, rotr And improve handling of constants and shifts. Differential Revision: https://reviews.llvm.org/D156778 -
Noah Goldstein authored
1) Handle casts a bit more cleanly just with a loop rather than with recursion. 2) Add additional cases for smin/smax 3 ) For shifts we can also deduce non-zero if the maximum shift amount on the known 1s is non-zero. Differential Revision: https://reviews.llvm.org/D156777 -
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D156776
-
Noah Goldstein authored
Differential Revision: https://reviews.llvm.org/D156775
-
Vitaly Buka authored
Looks Android and Darwin fail because of alignment.
-
Vitaly Buka authored
Darwin and Linux use a different fields order, causing "warning: ISO C++ requires field designators to be specified in declaration order".
-
Nikita Popov authored
These deprecations break the -Werror=deprecated-declarations build. Deprecations in LLVM must always be preceded by a removal of *all* in-tree users.
-
Vitaly Buka authored
Probably alignment as Darwin.
-
Vitaly Buka authored
And make build script incremental. We will eventually convert the script into ExternalProject_Add. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D158044
-
Ethan Luis McDonough authored
This patch extends the existing WsLoop reduction IR generation to parallel blocks. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D155157
-
Valentin Clement authored
Attch the routine info attribute to the func operation. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D157998
-
Justin Bogner authored
This change adds support for accessing information about inline assembly calls through the C API, enough to be able to round-trip the information. This partially addresses https://llvm.org/pr42692 which points out gaps in the C API Getters for each of the parameters to LLVMGetInlineAsm/InlineAsm::get have been added, such that the C API now has enough surface to clone inline assembly calls This API currently only returns the raw constraint string via LLVMGetInlineAsmConstraintString: it may be prudent to also expose the parsed constraints via InlineAsm::ParseConstraints, but I wasn't sure how that should look like. This at least exposes the information for clients Patch by Benji Smith. Thanks! Differential Revision: https://reviews.llvm.org/D153185
-
Justin Bogner authored
Remove DXCOption from a whole bunch of options that we probably won't support in the DXC driver. The initial clang-dxc support just made everything that was a "CoreOption" available, regardless of whether it made sense. Here I don't remove all of them, but this makes a dent on making the list a bit more sensible. We can easily add or remove more if they make sense later. Differential Revision: https://reviews.llvm.org/D158037
-
Christopher Ferris authored
All of the places that use the Classes array, use it as a uptr. So change the array to be uptr instead of u32. Reviewed By: Chia-hungDuan Differential Revision: https://reviews.llvm.org/D158048
-
Kazushi (Jam) Marukawa authored
-
Aiden Grossman authored
This was added originally as the test was failing on NVPTX before an explicit target triple was set on the llc invocation. The test was fixed in 4afb1ee7 but the unsupported directive was never removed.
-
Jian Cai authored
This fixed a test failure that caused the rollback of the original commit. Verified with ninja check-mlir.
-
Alfred Persson Forsberg authored
The LLVM-libc build itself will override include paths and prefer it's own limits.h over the compiler's limits.h. Because we rely on the compiler limits.h for numerical limits in LLVM-libc it needs to be include_next:ed if not already included. The other method to work around this is to define all numeric macros in place. Signed-off-by:
Alfred Persson Forsberg <cat@catcream.org> Reviewed By: thesamesam Differential Revision: https://reviews.llvm.org/D158040
-
Daniel Hoekwater authored
This reverts commit 1670e0ea. Causes https://lab.llvm.org/buildbot/#/builders/188/builds/33943
-
Daniel Hoekwater authored
Because the code layout is not known during compilation, the distance of cross-section jumps is not knowable at compile-time. Because of this, we should assume that any cross-sectional jumps are out of range. This assumption is necessary for machine function splitting on AArch64, which introduces cross-section branches in the middle of functions. The linker relaxes out-of-range unconditional branches, but it clobbers X16 to do so; it doesn't relax conditional branches, which must be manually relaxed by the compiler. Differential Revision: https://reviews.llvm.org/D145211
-
Sam Clegg authored
This change writes the module name to the name section of the wasm binary. We use the `-soname` argument to determine the name and we default the output file basename if this option is not specified. In the future we will likely want to embed the soname in the dylink section too, but this the first step in supporting `-soname`. Differential Revision: https://reviews.llvm.org/D158001
-
Daniel Hoekwater authored
Machine function splitting will become available for AArch64; since MFS is no longer X86-only, the tests for generic behavior should live somewhere other than tests/CodeGen/X86. MFS implementation doesn't vary much across platforms, and most tests should be identical between X86 and AArch64 besides instruction selection, so the tests can live together in tests/CodeGen/Generic. Differential Revision: https://reviews.llvm.org/D157563
-
Vitaly Buka authored
Watching https://green.lab.llvm.org/green/job/clang-stage1-RA/
-
Yeting Kuo authored
This adds extension Zicfilp and support pseudo instruction lpad. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D157362
-
Aart Bik authored
Direct IR supports pack, but libgen parth did not until this was added in https://reviews.llvm.org/D158012 Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D158020
-
Sam Clegg authored
If we don't do this then we end up with symbols that refer to non-existent segments. Differential Revision: https://reviews.llvm.org/D158025
-
Brad Smith authored
Also while here sync the header paths with the Haiku GCC configuration. Added: /boot/system/develop/headers/gnu Removed: /boot/system/develop/headers/os/arch https://github.com/haikuports/haikuports/tree/master/sys-devel/gcc/patches Reviewed By: nielx Differential Revision: https://reviews.llvm.org/D157767
-