- Apr 16, 2023
-
-
Lang Hames authored
This commit adds an x86-64 Pointer8 edge kind (8-bit pointer), and uses it to implement support for the ELF::R_X86_64_8 relocation kind.
-
Lang Hames authored
The assembly version of this testcase is shorter and easier to read.
-
Lang Hames authored
We already had an x86_64::Pointer16 edge kind courtesy of Sunho's COFF/x86-64 work, it just needed to be wired up.
-
Lang Hames authored
Tests in test/ExecutionEngine/JITLink/AArch64 are for aarch64 only, so we don't need to repeat 'aarch64' / 'arm64' in the individual test names. Commit 8ad75c10 made a similar change for the x86-64 tests.
-
Jun Zhang authored
Most of Orc and JITLink are movinng away from JITTargetAddress and use ExecutorAddr instead. Signed-off-by:
Jun Zhang <jun@junz.org> Differential Revision: https://reviews.llvm.org/D148434
-
Matthias Springer authored
The terminator of this op is special: it does not just yield a value, but bufferizes to a memcpy. This requires special treatment to make sure that deallocs are placed after the memcpy. (By default, deallocs are placed right before the terminator.) Differential Revision: https://reviews.llvm.org/D148408
-
Aart Bik authored
This fixes a TODO in the first version. Reviewed By: Peiming Differential Revision: https://reviews.llvm.org/D148406
-
Peter Rong authored
There are some typos in the previous patch e0117a3e that woulc break unit test and CI. These typos are fixed now. Signed-off-by:
Peter Rong <PeterRong96@gmail.com>
-
Peter Rong authored
Source and Sink are required when generating a new instruction. (Term defined by previous author, in LLVM terms it's probably Use and User.) Previously, only instructions in the same block is considered when taking source and sink. In this patch, more source and sink types are considered. For source, we have SrcFromInstInCurBlock, FunctionArgument, InstInDominator, SrcFromGlobalVariable, and NewConstOrStack. For sink, we have SinkToInstInCurBlock, PointersInDominator, InstInDominatee, NewStore, and SinkToGlobalVariable. A unit test to make sure source always dominates an instruction, and the instruction always dominates the sink is included. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D139907
-
Nathan James authored
Fixes a crash in dump-config when checks emit warnings trying to read the config Fixes https://github.com/llvm/llvm-project/issues/50876 Co-authored-by:
Piotr Zegar <me@piotrzegar.pl> Reviewed By: PiotrZSL Differential Revision: https://reviews.llvm.org/D148436
-
Kazu Hirata authored
This patch precommits a test for: https://github.com/llvm/llvm-project/issues/61650
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Lang Hames authored
Tests in test/ExecutionEngine/JITLink/X86 were for x86-64 only (never i386) so it makes sense to name the test directory x86-64, and drop x86-64 from the individual test names.
-
Kazu Hirata authored
Without this patch, std::bit_floor<uint32_t> in libstdc++ is compiled as: %eq0 = icmp eq i32 %x, 0 %lshr = lshr i32 %x, 1 %ctlz = tail call i32 @llvm.ctlz.i32(i32 %lshr, i1 false) %sub = sub i32 32, %ctlz %shl = shl i32 1, %sub %sel = select i1 %eq0, i32 0, i32 %shl With this patch: %eq0 = icmp eq i32 %x, 0 %ctlz = call i32 @llvm.ctlz.i32(i32 %x, i1 false) %lshr = lshr i32 -2147483648, %1 %sel = select i1 %eq0, i32 0, i32 %lshr This patch recognizes the specific pattern emitted for std::bit_floor in libstdc++. https://alive2.llvm.org/ce/z/piMdFX This patch fixes: https://github.com/llvm/llvm-project/issues/61183 Differential Revision: https://reviews.llvm.org/D145890
-
Mark de Wever authored
This reverts commit 1ef4c3c8. Two buildbots still haven't been updated.
-
Lang Hames authored
The mapping from ELF relocation types to JITLink x86-64 edge kinds is 1-1, so we don't need the intermediate step.
-
- Apr 15, 2023
-
-
Vlad Serebrennikov authored
Some C++ DR tests are disrupting the usual ascending order, introducing confusion, and making people put new tests in the wrong place (myself included). This change affects 15 tests out of roughly 700.
-
Nathan James authored
Fix https://llvm.org/PR49498. The check notices 2 sides of a conditional operator have types with a different constness and so tries to examine the implicit cast. As one side is infinity, the float narrowing detection sees when its casted to a double(which it already was) it thinks the result is out of range. I've fixed this by just disregarding expressions where the builtin type(without quals) match as no conversion would take place. However this has opened a can of worms. Currenty `float a = std::numeric_limits<double>::infinity();` is marked as narrowing. Whats more suspicious is `double a = std::numeric_limits<float>::infinity();` is also marked as narrowing. It could be argued `double inf -> float inf` is narrowing, but `float inf -> double inf` definitely isnt. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D98416
-
Mark de Wever authored
There is no type named sliceExpr, so it's likely a misspelling of either slice_array or __slice_expr. Neither of which appear to need the friend declaration. This may indicate a unimplemented bit of `<valarray`, but ¯\_(ツ)_/¯ Nobody uses it anyway. (Commit message provided by @EricWF.) This reverts commit e13c43b2.
-
Mark de Wever authored
This reverts commit d5193e34. Reverted at @EricWF's request so it can be relanded with a better commit message.
-
Carlos Galvez authored
-
Piotr Zegar authored
This reverts commit 9ece8753.
-
Florian Hahn authored
-
Piotr Zegar authored
Check detects cyclic #include dependencies between user-defined headers. Reviewed By: njames93 Differential Revision: https://reviews.llvm.org/D144828
-
Joseph Huber authored
Summary: This patch adds `fetch_or`. It is mainly useful for querying and set a bit's status without using the more expensive `exchange` functions.
-
Carlos Galvez authored
Also fix ordering in Release Notes. Differential Revision: https://reviews.llvm.org/D148424
-
Mark de Wever authored
The class is never defined. This was discovered while validating modules in libc++. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D148357
-
Mark de Wever authored
This reverts commit 92523a35. Reland to see whether CIs are updated.
-
Mark de Wever authored
Per our policy we only support the last two releases. Reviewed By: #libc, EricWF, philnik Differential Revision: https://reviews.llvm.org/D148359
-
Piotr Zegar authored
Using 'hasUnqualifiedDesugaredType' to skip all type aliases when checking for handle. Fixes #38779 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D148418
-
LLVM GN Syncbot authored
-
Piotr Zegar authored
Added IgnoreTemplateInstantiations option to modernize-use-override check. Allows to ignore virtual function overrides that are part of template instantiations. This can be useful in cases where the use of the "override" keyword is not appropriate or causes issues with template specialization. Fixes #38276. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D147924
-
Vlad Serebrennikov authored
[[https://wg21.link/p1787 | P1787]]: CWG2331 is resolved by defining lookup from complete-class contexts and out-of-line member definitions. Wording: The declaration set is the result of a single search in the scope of C for N from immediately after the class-specifier of C if P is in a complete-class context of C or from P otherwise. ([class.member.lookup]/4) Reviewed By: #clang-language-wg, shafik Differential Revision: https://reviews.llvm.org/D148260
-
Carlos Galvez authored
[clang-tidy] Apply cppcoreguidelines-avoid-capture-default-when-capturin-this only to by-value capture default Since Cpp Core Guidelines have accepted the change in the rules: https://github.com/isocpp/CppCoreGuidelines/commit/3c90d590e138c3a1e4eb59234e410e00545326de Also rename the check accordingly. Differential Revision: https://reviews.llvm.org/D148340
-
Louis Dionne authored
Both had diverged in a few ways, so this brings them both back in sync. Differential Revision: https://reviews.llvm.org/D148351
-
Ben Shi authored
The optimization of (mul x, c) to (ADD (SLLI x, i0), (SLLI x, i1)) is only enabled for i32 multiplication on rv64, because of the regression in i64 multiplication on rv32. However we can change the condition to that the immediate 'c' should only be used once, then the above regression can also be avoided, and ohter chances of optimization can be enabled. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D147410
-
Piotr Zegar authored
Support all floating point representations for an 0.5 floating const. Added missing tests. Depend on D147906. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D147908
-
Piotr Zegar authored
Using APFloat to compare floating numbers instead of float/double. Fixes: #46424 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D147906
-