- Nov 01, 2022
-
-
Alexander Shaposhnikov authored
This diff annotates more methods of the class Instruction with LLVM_READONLY (similarly to isAssociative/isCommutative). Test plan: ninja check-all Differential revision: https://reviews.llvm.org/D137053
-
skc7 authored
Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D136757
-
Michał Górny authored
This reverts commit 37acf9bd. It broke a buildbot.
-
Sameer Sahasrabuddhe authored
AAPointerInfo now maintains a list of all Access objects that it owns, along with the following maps: - OffsetBins: OffsetAndSize -> { Access } - InstTupleMap: RemoteI x LocalI -> Access A RemoteI is any instruction that accesses memory. RemoteI is different from LocalI if and only if LocalI is a call; then RemoteI is some instruction in the callgraph starting from LocalI. Motivation: When AAPointerInfo recomputes the offset for an instruction, it sets the value to Unknown if the new offset is not the same as the old offset. The instruction must now be moved from its current bin to the bin corresponding to the new offset. This happens for example, when: - A PHINode has operands that result in different offsets. - The same remote inst is reachable from the same local inst via different paths in the callgraph: ``` A (local inst) | B / \ C1 C2 \ / D (remote inst) ``` This fixes a bug where a store is incorrectly eliminated in a lit test. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D136526 -
Matt Arsenault authored
Most tools accept .ll or .bc inputs interchangably, but some don't. Default to writing temporary files that match the input. This will also aid reducing deserialization bugs.
-
Matt Arsenault authored
-
Matt Arsenault authored
Previously, this unconditionally emitted text IR. I ran into a bug that manifested in broken disassembly, so the desired output was the bitcode format. If the input format was binary bitcode, the requested output file ends in .bc, or an explicit -output-bitcode option was used, emit bitcode.
-
Michał Górny authored
Replace the use of the deprecated `llvm-config` tool with LLVM's CMake files for detecting LLVM in standalone builds. Differential Revision: https://reviews.llvm.org/D137024
-
Matt Arsenault authored
-
Matt Arsenault authored
This was also trying to write the bitcode to the failed file on failure, which asserts. Also, consistently use ToolOutputFile, instead of one path manually removing the temp file.
-
Matt Arsenault authored
This wasn't used by every atomicrmw expansion.
-
Matt Arsenault authored
Unlike just about every target, I don't see an obvious null dereference this fixes.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
There should no need for null checks in the AsmPrinter
-
Matt Arsenault authored
Fixes crashes with clang -emit-codegen-only
-
Florian Mayer authored
This reverts commit bc886e9b. Broke MSAN bootstrap buildbots with Assertion `RangeAfterCopy % ExtraScale == 0 && "Extra instruction requires immediate to be aligned"' failed.
-
Florian Mayer authored
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
This commit deprecates <experimental/memory_resource> since we now ship the non-experimental version of it. Per the libc++ policy [1], we are deprecating the experimental feature in upcoming LLVM 16 and will remove it entirely in LLVM 18. [1]: https://libcxx.llvm.org/DesignDocs/ExperimentalFeatures.html#id4 Reviewed By: ldionne, #libc Spies: EricWF, libcxx-commits Differential Revision: https://reviews.llvm.org/D136245
-
Nikolas Klauser authored
This avoids emitting the VTable of `pmr::memory_resource` in every TU. Reviewed By: ldionne Spies: EricWF, nemanjai, libcxx-commits Differential Revision: https://reviews.llvm.org/D136196
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: krytarowski, Quuxplusone, tschuett, libcxx-commits Differential Revision: https://reviews.llvm.org/D136194
-
Nikolas Klauser authored
This allows the compiler to do more optimizations. Reviewed By: ldionne, #libc Spies: libcxx-commits, krytarowski Differential Revision: https://reviews.llvm.org/D136191
-
Nikolas Klauser authored
[libc++] Move preferred_name declarations into the forward declaring headers and add pmr preferred names We currently define the preferred names in multiple places. `basic_string` and `basic_string_view` also have a lot of aliases, which makes the declarations quite long. So let's only add the preferred names in forward-declaring headers to make the implementation more readable and have all the preferred names in one place. Reviewed By: ldionne Spies: EricWF, krytarowski, libcxx-commits Differential Revision: https://reviews.llvm.org/D135824
-
Ilia Diachkov authored
The patch adds support of the enqueue_kernel builtin function. It is implemented in the same way as in the SPIRV translator. 2 LIT tests are added to show the improvement. Differential Revision: https://reviews.llvm.org/D137018
-
Anlun Xu authored
Differential Revision: https://reviews.llvm.org/D137119
-
Usman Nadeem authored
Do not duplicate a BB if it has a lot of PHI nodes. If a threadable chain is too long then the number of duplicated PHI nodes can add up, leading to a substantial increase in compile time when rewriting the SSA. Fixes https://github.com/llvm/llvm-project/issues/58203 Differential Revision: https://reviews.llvm.org/D136716 The threshold of 76 in this patch is reasonably high and reduces the compile time of cldwat2m_macro.f90 in SPEC2017/cam4 from 80+min to <2min. Change-Id: I153c89a8e0d89b206a5193dc1b908c67e320717e
-
Craig Topper authored
We can narrow one of the extends and keep the other original by using a vwaddu.wv or vwadd.wv. We were previously forgetting to keep the original operand and instead took the source of its extend. This resulted in a type mismatch that later failed with an impossible physical register copy. To fix this I've refactored some code to maintain information about whether the source needs to be extended at all for longer so we could use it in materialize. Differential Revision: https://reviews.llvm.org/D137106
-
Evgeny Shulgin authored
This test checks progress on P0533R9 (https://wg21.link/p0533r9). Whenever a desired function becomes constexpr, the programmer won't forget to switch `ASSERT_NOT_CONSTEXPR_CXX23` to `ASSERT_CONSTEXPR_CXX23` and eventually to change the paper's implementation status. The test also works as a reference list of unimplemented functions. Reviewed By: philnik, #libc Differential Revision: https://reviews.llvm.org/D136538
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Jonas Devlieghere authored
Connect the diagnostic events with the diagnostic infrastructure. - Emit existing diagnostic events (warnings and errors) to the diagnostic log. - Introduce a new diagnostic event (info) that's used exclusively for diagnostic logging and does not get broadcast. Differential revision: https://reviews.llvm.org/D136648
-
Jonas Devlieghere authored
Add a "diagnostics dump" command to, as the name implies, dump the diagnostics to disk. The goal of this command is to let the user generate the diagnostics in case of an issue that doesn't cause the debugger to crash. This command is also critical for testing, where we don't want to cause a crash to emit the diagnostics. Differential revision: https://reviews.llvm.org/D135622
-
Jonas Devlieghere authored
Around this time last year, I said on the mailing list [1] that I wanted to to transform the reproducers into something that resembles a sysdiagnose on Apple platforms: a collection of files containing a variety of information to help diagnose bugs or troubleshoot issues. This patch adds that framework. Based on lessons learned from the reproducers, I've intentionally tried to keep it small and simple. Different parts of LLDB can register callbacks (this is necessary for layering purposes) that will get called when the diagnostics should be generated. [1] https://lists.llvm.org/pipermail/lldb-dev/2021-September/017045.html Differential revision: https://reviews.llvm.org/D134991
-
Sanjay Patel authored
The transform was just added with: 115d2f69 ...but as noted in post-commit feedback, it was confusingly coded. Now, we create the final expected canonicalized form directly and put an extra use check on the match, so we should not ever end up with more instructions.
-
Sanjay Patel authored
More coverage for the change 115d2f69 as suggested in post-commit feedback. Given that the transform is canonicalized with another 'not' op, we should adjust the use checks and create that form directly.
-
Krzysztof Parzyszek authored
-
Tue Ly authored
Add place-holder implementation for pow function to unblock libc demo examples. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D137109
-
Tue Ly authored
Add a place-holder implementation for asin to unblock libc demo examples. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D137105
-
Peter Klausler authored
Recode a non-short-circuiting conjunction of two Boolean function calls into separate statements to avoid a warning from clang 16.
-