- Oct 21, 2021
-
-
Nikita Malyavin authored
Add following interceptors on Linux: stat, lstat, fstat, fstatat. This fixes use-of-uninitialized value on platforms with GLIBC 2.33+. In particular: Arch Linux, Ubuntu hirsute/impish. The tests should have also been failing during the release on the mentioned platforms, but I cannot find any related discussion. Most likely, the regression was introduced by glibc commit [[ https://github.com/bminor/glibc/commit/8ed005daf0ab03e142500324a34087ce179ae78e | 8ed005daf0ab03e14250032 ]]: all stat-family functions are now exported as shared functions. Before, some of them (namely stat, lstat, fstat, fstatat) were provided as a part of libc_noshared.a and called their __xstat dopplegangers. This is still true for Debian Sid and earlier Ubuntu's. stat interceptors may be safely provided for them, no problem with that. Closes https://github.com/google/sanitizers/issues/1452. See also https://jira.mariadb.org/browse/MDEV-24841 Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D111984
-
Jez Ng authored
It's currently using a symlink, which is not supported on Windows.
-
Arthur Eubanks authored
With unoptimized code, we may see lots of stores and spend too much time in mergeTruncStores. Fixes PR51827. Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D111596
-
Pavel Kosov authored
Fixes PR: https://bugs.llvm.org/show_bug.cgi?id=52230 Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D112135 OS Laboratory, Huawei Russian Research Institute, Saint-Petersburg
-
Ben Langmuir authored
Broke on aarch64-linux. Reverting while I investigate. This reverts commit 5692ed0c.
-
Louis Dionne authored
-
Louis Dionne authored
This reverts commit 5a8ad80b, which broke the Bootstrapping build. I'm reverting until we've fixed the issue. Differential Revision: https://reviews.llvm.org/D112082
-
Louis Dionne authored
This doesn't change anything on platforms that have <unistd.h>, but it will allow this file to compile on platforms that do not.
-
Nikita Popov authored
The loads in these examples are currently not considered ephemeral because they are not speculatable.
-
Valentin Clement authored
This reverts commit 02d7089c.
-
Sanjay Patel authored
This is a small extension of D112095 to avoid another regression seen with D112085. In this case, we allow the same conversion from usubsat to ALU ops if the target supports vpternlog. That pattern will get converted later in X86DAGToDAGISel::tryVPTERNLOG(). This seems better than putting a magic immediate constant directly in this code to create the exact vpternlog that we need. It's possible that there are other special-cases along these lines, so we should try to keep all of the vpternlog magic in one place. Differential Revision: https://reviews.llvm.org/D112138
-
Louis Dionne authored
Those creep up from time to time. We need to use `int main(int, char**)` because in freestanding mode, `main` doesn't get special treatment and special mangling, so we setup a symbol alias from the mangled version of `main(int, char**)` to `extern "C" main`. That only works if all the tests are consistent about how they define their main function.
-
Stanislav Mekhanoshin authored
%not1 = xor i32 %b, -1 %not2 = xor i32 %c, -1 %and1 = and i32 %a, %not1 %and2 = and i32 %and1, %not2 => %i1 = or i32 %b, %c %i2 = xor i32 %1, -1 %and2 = and i32 %i2, %a Differential Revision: https://reviews.llvm.org/D112108
-
Erich Keane authored
Originally I thought that I needed to do a #include to trick the compiler into letting me use typeid I believe, but Aaron explained that it was just looking for the type_info type. I had to give it some public/private members to make it emit the same as before, but this ought to be a 'perfect' replacement.
-
Stanislav Mekhanoshin authored
-
Florian Hahn authored
At the moment, rewriteLoopExitValue forgets the current phi node in the loop that collects phis to rewrite. A few lines after the value is forgotten, SCEV is used again to analyze incoming values and potentially expand SCEV expression. This means that another SCEV is created for PN, before the IR is actually updated in the next loop. This leads to accessing invalid cached expression in combination with D71539. PN should only be changed once the actual incoming exit value is set in the next loop. Moving invalidation there should ensure that PN is invalidated in all relevant cases. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D111495
-
Aart Bik authored
The current implementation used explicit index->int64_t casts for some, but not all instances of passing values of type "index" in and from the sparse support library. This revision makes the situation more consistent by using new "index_t" type at all such places (which allows for less trivial casting in the generated MLIR code). Note that the current revision still assumes that "index" is 64-bit wide. If we want to support targets with alternative "index" bit widths, we need to build the support library different. But the current revision is a step forward by making this requirement explicit and more visible. Reviewed By: wrengr Differential Revision: https://reviews.llvm.org/D112122
-
Erich Keane authored
My downstream noticed that the test failed on windows-32 bit machines since the types have __attribute__((thiscall)) on them in a few places. This patch just adds a wildcard to handle that, since it isn't particularly important to the test.
-
Valentin Clement authored
This patch is extracted from D111337. It introduce the CharacterExprHelper that helps dealing with character in FIR. Reviewed By: schweitz, awarzynski Differential Revision: https://reviews.llvm.org/D112140 Co-authored-by:
Jean Perier <jperier@nvidia.com> Co-authored-by:
Eric Schweitz <eschweitz@nvidia.com> Co-authored-by:
V Donaldson <vdonaldson@nvidia.com>
-
Erich Keane authored
Writing a quick test to make sure we are aware of the change to the _ExtInt/_BitInt ABI on x86 (32bit) OSes.
-
Ahmed S. Taei authored
Add a pattern to take a rank-reducing subview and drop inner most contiguous unit dim. This is useful when lowering vector to backends with 1d vector types. Reviewed By: ThomasRaoux Differential Revision: https://reviews.llvm.org/D111561
-
Jon Roelofs authored
https://godbolt.org/z/h8ejrG4hb rdar://83597585 Differential Revision: https://reviews.llvm.org/D111856
-
Jonas Devlieghere authored
-
Stanislav Mekhanoshin authored
MachineLoop::isLoopInvariant() returns false for all VALU because of the exec use. Check TII::isIgnorableUse() to allow hoisting. That unfortunately results in higher register consumption since MachineLICM does not adequately estimate pressure. Therefor I think it shall only be enabled after D107677 even though it does not depend on it. Differential Revision: https://reviews.llvm.org/D107859
-
Stanislav Mekhanoshin authored
D106408 was doing this for all targets although it was reverted due to couple performance regressions on some targets. The difference for AMDGPU is the ability to rematerialize SOP instructions with virtual register uses like we already do for VOP. Differential Revision: https://reviews.llvm.org/D110743
-
Leonard Grey authored
This is speculative since I'm not sure if there's some implicit contract that a variable symbol must not have another variable symbol in its evaluation tree. Downstream bug: https://bugs.chromium.org/p/chromium/issues/detail?id=471146#c23. Test is based on alias.s (removed checks since we just need to know it didn't crash). Differential Revision: https://reviews.llvm.org/D109109
-
Nico Weber authored
No behavior change.
-
Sanjay Patel authored
bitcast (inselt (bitcast X), Y, 0) --> or (and X, MaskC), (zext Y) https://alive2.llvm.org/ce/z/Ux-662 Similar to D111082 / db231ebd : We want to avoid relatively opaque vector ops on types that are likely supported by the backend as scalar integers. The bitwise logic ops are more likely to allow further combining. We probably want to generalize this to allow a shift too, but that would oppose instcombine's general rule of not creating extra instructions, so that's left as a potential follow-up. Alternatively, we could do that transform in VectorCombine with the help of the TTI cost model. This is part of solving: https://llvm.org/PR52057
-
Ben Langmuir authored
Enable building the ORC runtime for 64-bit and 32-bit ARM architectures, and for all Darwin embedded platforms (iOS, tvOS, and watchOS). This covers building the cross-platform code, but does not add TLV runtime support for the new architectures, which can be added independently. Incidentally, stop building the Mach-O TLS support file unnecessarily on other platforms. Differential Revision: https://reviews.llvm.org/D112111
-
Nico Weber authored
We already disallow mixing SEH and C++ exceptions, and mixing SEH and Objective-C exceptions seems to not work (see PR52233). Emitting an error is friendlier than crashing. Differential Revision: https://reviews.llvm.org/D112157
-
Stanislav Mekhanoshin authored
-
Muiez Ahmed authored
The path functions in this patch are unimplemented (as per the TODO comment from upstream). To avoid running into a linker error (missing symbol), this patch raises a compile error by commenting out the functions, which is more user friendly. Differential Revision: https://reviews.llvm.org/D111892
-
Arthur Eubanks authored
This makes changing it and recompiling it much faster.
-
Alfonso Gregory authored
isSpecifierType There is no reason to have this here, (since all tests pass) and it isn't even a specifier anyway. We can just treat it as a pointer instead. Differential Revision: https://reviews.llvm.org/D110068
-
Itay Bookstein authored
As discussed in: * https://reviews.llvm.org/D94166 * https://lists.llvm.org/pipermail/llvm-dev/2020-September/145031.html The GlobalIndirectSymbol class lost most of its meaning in https://reviews.llvm.org/D109792, which disambiguated getBaseObject (now getAliaseeObject) between GlobalIFunc and everything else. In addition, as long as GlobalIFunc is not a GlobalObject and getAliaseeObject returns GlobalObjects, a GlobalAlias whose aliasee is a GlobalIFunc cannot currently be modeled properly. Creating aliases for GlobalIFuncs does happen in the wild (e.g. glibc). In addition, calling getAliaseeObject on a GlobalIFunc will currently return nullptr, which is undesirable because it should return the object itself for non-aliases. This patch refactors the GlobalIFunc class to inherit directly from GlobalObject, and removes GlobalIndirectSymbol (while inlining the relevant parts into GlobalAlias and GlobalIFunc). This allows for calling getAliaseeObject() on a GlobalIFunc to return the GlobalIFunc itself, making getAliaseeObject() more consistent and enabling alias-to-ifunc to be properly modeled in the IR. I exercised some judgement in the API clients of GlobalIndirectSymbol: some were 'monomorphized' for GlobalAlias and GlobalIFunc, and some remained shared (with the type adapted to become GlobalValue). Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D108872
-
Simon Pilgrim authored
Avoid dereferencing a nullptr returned by dyn_cast<>, by using cast<> instead which asserts that the cast is valid.
-
Alex Zinenko authored
-
Sterling Augustine authored
-
Zhi An Ng authored
Add relaxed. f32x4.min, f32x4.max, f64x2.min, f64x2.max. These are only exposed as builtins, and require user opt-in. Differential Revision: https://reviews.llvm.org/D112146
-
Nawrin Sultana authored
This patch adds GOMP_alloc and GOMP_free functions of LIBGOMP. Differential revision: https://reviews.llvm.org/D111673
-