- Nov 01, 2022
-
-
David Sherwood authored
This patch adds the assembly/disassembly for the following instructions: ld1* : Contiguous load of bytes to multiple consecutive vectors - (scalar + scalar) and (scalar + immediate) ldnt1* : Contiguous load non-temporal of bytes to multiple consecutive vectors - (scalar + scalar) and (scalar + immediate) The reference can be found here: https://developer.arm.com/documentation/ddi0602/2022-09 Differential Revision: https://reviews.llvm.org/D136680 -
Stefan Gränitz authored
As pointed out in the review https://reviews.llvm.org/D135523#C3696894NL515
-
Tiezhu Yang authored
Define LoongArch architecture subtypes, add the LoongArch ArchSpec bits, and inspect the ELF header to detect the right subtype based on ELF class. Here is a simple test: ``` [loongson@linux ~]$ cat hello.c int main() { printf("Hello, World!\n"); return 0; } [loongson@linux ~]$ clang hello.c -g -o hello ``` Without this patch: ``` [loongson@linux ~]$ llvm-project/llvm/build/bin/lldb hello (lldb) target create "hello" error: '/home/loongson/hello' doesn't contain any 'host' platform architectures: unknown ``` With this patch: ``` [loongson@linux ~]$ llvm-project/llvm/build/bin/lldb hello (lldb) target create "hello" Current executable set to '/home/loongson/hello' (loongarch64). (lldb) run Process 735167 launched: '/home/loongson/hello' (loongarch64) Hello, World! Process 735167 exited with status = 0 (0x00000000) (lldb) quit [loongson@linux ~]$ llvm-project/llvm/build/bin/llvm-lit llvm-project/lldb/test/Shell/ObjectFile/ELF/loongarch-arch.yaml llvm-lit: /home/loongson/llvm-project/llvm/utils/lit/lit/llvm/config.py:456: note: using clang: /home/loongson/llvm-project/llvm/build/bin/clang -- Testing: 1 tests, 1 workers -- PASS: lldb-shell :: ObjectFile/ELF/loongarch-arch.yaml (1 of 1) Testing Time: 0.09s Passed: 1 ``` Reviewed By: SixWeining, xen0n, DavidSpickett Differential Revision: https://reviews.llvm.org/D137057 -
Nikita Popov authored
We currently only take operand bundle effects into account when querying the function-level memory attributes. However, I believe that we also need to do the same for parameter attributes. For example, a call with deopt bundle to a function with readnone parameter attribute cannot treat that parameter as readnone, because the deopt bundle may read it. Differential Revision: https://reviews.llvm.org/D136834
-
Matt Arsenault authored
This was fixed in bf789b19
-
Yeting Kuo authored
FRINT uses dynamic rounding mode instead of static rounding mode. The patch rename VFCVT_X_F_VL to VFCVT_RM_X_F_VL for static rounding mode uses and added new ISDNode VFCVT_X_F_VL directly selected to PseudoVFCVT_X_F_V. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D136662
-
Matt Arsenault authored
We were only testing targets with legal 16-bit operations.
-
Matt Arsenault authored
Automatically cleanup operations if we know the atomic has higher alignment.
-
Michał Górny authored
Add a `pyproject.toml` file that provides build system information for PEP 517-compliant builders. While all the commonly used builders provide fallback to running `setup.py` for backwards compatibility, this ensures the best forward compatibility. It also provides a reliable way of specifying the minimum required setuptools version. Effectively, it will make it possible to remove `setup.py` in favor of purely declarative configuration in the future, or even switch to a different build system. Update `setup.py` to explicitly add the current directory to `sys.path` for importing `lit`. This is necessary, as the modern setuptools backend does not guarantee that the current directory is present there. Differential Revision: https://reviews.llvm.org/D136976
-
Arnab Dutta authored
Set proper offset to the second element of the index pair, so that we do not have same index values for more than one local expression. Reviewed By: springerm Differential Revision: https://reviews.llvm.org/D137062
-
Michael Buch authored
* Windows doesn't support setting these breakpoints by basename * On Linux std::function arguments aren't formatted as such
-
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
-