- Jun 06, 2023
-
-
Martin Storsjö authored
This brings the list of extensions supported here up to date with what is supported by current git versions of binutils. Also add a comment to AArch64TargetParser to remind people to consider adding new ones to the list supported in assembly. In the case of the "rdma" extension, there's a slight surprise: LLVM knows of the extension under the name "rdm", while binutils has it named "rdma". However, binutils appears to accept any abbreviated prefix of an arch extension, so it does accept the form "rdm" too even if it formally considers it called "rdma". Support both spellings for the extensions here, for simplicity. Differential Revision: https://reviews.llvm.org/D151981
-
Mehdi Amini authored
Reviewed By: jpienaar, burmako Differential Revision: https://reviews.llvm.org/D151621
-
Michael Platings authored
Mixing -mfloat-abi=hard with a CPU that doesn't have floating point registers is an error in GCC: cc1: error: '-mfloat-abi=hard': selected processor lacks an FPU Since there is code in the wild (including in clang tests) that relies on Clang's current behaviour, emit a warning instead of an error. Unlike the GCC error, the new warning refers to floating point registers instead of an FPU. This is because -mfloat-abi=hard and -march=armv8.1-m.main+mve+nofp are compatible - in that case floating point registers are required, but an FPU is not required. My initial thought was to use the floating point ABI calculated by arm::getARMFloatABI() but in invalid cases which error for other reasons the ABI is miscalculated and the warning would cause confusion. Therefore only warn if the user specifies the float ABI explicitly. Fixes part of https://github.com/llvm/llvm-project/issues/55755 Differential Revision: https://reviews.llvm.org/D150902
-
Serge Pavlov authored
If intrinsic `get_fpenv` or `set_fpenv` is lowered to the form where FP environment is represented as a region in memory, extra moves can appear. For example the code: define void @func_01(ptr %ptr) { %env = call i256 @llvm.get.fpenv.i256() store i256 %env, ptr %ptr ret void } produces DAG: ch = get_fpenv_mem ch, memory_region val: i256, ch = load ch, memory_region ch = store ch, ptr, val In this case the extra moves can be avoided if `get_fpenv_mem` got pointer to the memory where the FP environment should be finally placed. This change implement such optimization for this use case. Differential Revision: https://reviews.llvm.org/D150437 -
Matthias Springer authored
All vector transform ops are now `PatternDescriptorOpInterface` ops that merely select the patterns. The patterns are applied by the `apply_patterns` op. This is to ensure that ops are properly tracked. (TrackingListener is used in the implementation of `apply_patterns`.) Furthermore, handles are no longer invalidated when applying patterns in the vector tests. Differential Revision: https://reviews.llvm.org/D152174
-
Christian Ulmann authored
This commit ensures that llvm-extract does not copy all IFuncs into the resulting modules. Before this change, ifuncs were not modified which could cause the emission unexpected IR files. Reviewed By: darthscsi Differential Revision: https://reviews.llvm.org/D152148
-
Matthias Springer authored
Patterns should be selected by adding ops that implement `PatternDescriptorOpInterface` to the region of `apply_pattern` ops. Such ops can have operands, allowing for pattern parameterization. The existing way of selecting patterns from the PatternRegistry is deprecated. Differential Revision: https://reviews.llvm.org/D152167
-
Carl Ritson authored
-
Luo, Yuanke authored
-
Luo, Yuanke authored
-
Craig Topper authored
This reverts commit 1ebe0601. I've been informed the old way was documented in the psABI.
-
Mark de Wever authored
CMake older than 3.20.0 is no longer supported. This removes work-arounds for no longer supported versions. Reviewed By: #libc, jloser, philnik Differential Revision: https://reviews.llvm.org/D152099
-
Craig Topper authored
When splitting a simm32 into LUI+ADDI(W). Subtract Lo12 from Val to calculate Hi20. This replaces the old method of adding 0x800 to Val. This change makes the math the reverse of how the LUI+ADDI(W) create the immediate.
-
Paulo Matos authored
Due to the nature of WebAssembly, it's always better to keep rotates instead of trying to optimize it. Commit 9485d983 disabled the generation of fsh for rotates, however these tests ensure that future changes don't change the behaviour for the Wasm backend that tends to have different optimization requirements than other architectures. Also see: https://github.com/llvm/llvm-project/issues/62703 Differential Revision: https://reviews.llvm.org/D152126
-
Hristo Hristov authored
Implements parts of P1614R2 `operator<=>` for `queue` Reviewed By: #libc, Mordante Differential Revision: https://reviews.llvm.org/D146066
-
LLVM GN Syncbot authored
-
Chuanqi Xu authored
This patch forbids to write comment to BMIs for C++20 Named Modules. Originally I thought this was helpful for language services like clangd. But I found clangd don't want the BMI to contain comments actually. So it is meaningless for C++20 Named Modules to keep such comments in their BMI. It is simple to enable this when someday we found we want this actually.
-
Fangrui Song authored
Similar to AArch64,AVR,PowerPC: 9e2d100e.
-
Fangrui Song authored
Similar to 49488490.
-
khei4 authored
Differential Revision: https://reviews.llvm.org/D152088
-
khei4 authored
Differential Revision: https://reviews.llvm.org/D152089
-
Ben Shi authored
Reviewed By: Patryk27, jacquesguan Differential Revision: https://reviews.llvm.org/D152129
-
Phoebe Wang authored
-
Phoebe Wang authored
This reverts commit 50a2341f. This results in buildbot fail.
-
Peter Klausler authored
A CHECK() was firing when a call to the PACK intrinsic does not have a VECTOR= argument and at least one dimension of the shape of the ARRAY= argument could not be determined. The CHECK was inappropriate, since this can of course happen, such as when that argument is the result of the SPREAD() intrinsic with non-constant DIM= or NCOPIES= arguments. Replace with an if() statement. Differential Revision: https://reviews.llvm.org/D152212
-
Phoebe Wang authored
-
Jianjian GUAN authored
Since vfclass intruction will only set one single bit in the result, so if we only want to check 1 fp class, we could use vmseq to do it. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D151967
-
varconst authored
- add the `from_range_t` constructors and the related deduction guides; - add the `push_range` member function. (Note: this patch is split from https://reviews.llvm.org/D142335) Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D149829
-
Sam James authored
In CMake, "TARGET" is a special keyword. But it's also an LLVM component, which means downstreams may request "target" or "TARGET" from CMake. Quote such input so "TARGET" is interpreted as a string rather than a keyword. This is a followup to 75a0502f (D150884). Fixes Meson's test suite and an issue which manifested identically to #61436 but appears to have been a slightly different problem. Bug: https://github.com/mesonbuild/meson/issues/11642 Bug: https://github.com/llvm/llvm-project/issues/61436 Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D152121
-
Matt Arsenault authored
-
Matt Arsenault authored
Produce a verifier error instead.
-
Aiden Grossman authored
ea8f4b98 broke some build configurations because it was enabled by default and some people are using a just built libc/clang/LLVM to work on other projects where having a just built LLVM libc in one of Clang's default include directories can make things unusable. Differential Revision: https://reviews.llvm.org/D152190
-
Joseph Huber authored
A previous patch added general support for printing via the RPC interface. we should consolidate this functionality and get rid of the old opcode that was used for simple testing. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D152211
-
Aart Bik authored
Reviewed By: Peiming, manishucsd Differential Revision: https://reviews.llvm.org/D152214
-
Johannes Doerfert authored
The logic and implementation follows the removal of no-op barriers. If the fence is not making updates visible, either to the world or the current thread, it is not needed. Said differently, the fences we remove do not establish synchronization (happens-before) edges. This allows us to eliminate some of the regression caused by: https://reviews.llvm.org/D145290
-
NAKAMURA Takumi authored
-
NAKAMURA Takumi authored
-
Johannes Doerfert authored
Different offsets can be handled by expansion rather than defaulting to an unknown offset. Thus, [4,4] & [8,8] will result in [4, 12] rather than [unknown, unknown].
-
Johannes Doerfert authored
-
Joseph Huber authored
If CUDA is not found this string will expand into nothing. We need to surround it with a string otherwise it will cause build failures. Differential Revision: https://reviews.llvm.org/D152209
-