- Aug 31, 2022
-
-
Nikita Popov authored
-
Aleksandr Bezzubikov authored
Replace result type std::pair<bool, bool> of lowerBuiltin with a nice and convenient Optional<bool>. Reviewed By: iliya-diyachkov, MaskRay Differential Revision: https://reviews.llvm.org/D132802
-
gonglingqin authored
Differential Revision: https://reviews.llvm.org/D132847
-
Xiang Li authored
This is to avoid vector-combine generate vector4 on float. Reviewed By: beanz Differential Revision: https://reviews.llvm.org/D132826
-
Fangrui Song authored
-
owenca authored
If the style wraps control statement braces, the opening braces should be inserted after the trailing comments if present. Fixes #57419. Differential Revision: https://reviews.llvm.org/D132905
-
Tue Ly authored
-
Chuanqi Xu authored
-
Shraiysh Vaishay authored
This patch adds translation from OpenMP Dialect to LLVM IR for omp.taskgroup. This patch also adds missing tests for the clauses in omp.taskgroup operation. Reviewed By: peixin Differential Revision: https://reviews.llvm.org/D130157
-
jacquesguan authored
This patch adds cost model for vector select and integer compare instructions.
-
Chuanqi Xu authored
We get some standard C++ module things done in clang15.x. But we lack a user documentation for it. The implementation of standard C++ modules share a big part of codes with clang modules. But they have very different semantics and user interfaces, so I think it is necessary to add a document for Standard C++ modules. Previously, there were also some people ask the document for standard C++ Modules and I couldn't offer that time. Reviewed By: iains, Mordante, h-vetinari, ruoso, dblaikie, JohelEGP, aaronmondal Differential Revision: https://reviews.llvm.org/D131388
-
jacquesguan authored
Differential Revision: https://reviews.llvm.org/D132827
-
Chenbing Zheng authored
For (X op Y) op Z --> (Y op Z) op X we can still do transform when Y is multi-use. In D131356 limit it to one-use, this patch remove this limit. This is still not a complete solution, I add a todo test to show it. In this case, X and Y are both multi use, we can't differentiate how to convert based on this. But at least we don't make the code worse,and it can solve half the scenarios.
-
Vitaly Buka authored
Reviewed By: kda, kstoimenov Differential Revision: https://reviews.llvm.org/D132907
-
Kai Luo authored
IIUC, the conversion part is not part of atomic operations and fences should be put around converted atomic operations. This also fixes atomic load of floating point values which requires fence on PowerPC. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D127609
-
Richard Smith authored
This reverts commit 33162a81. This change breaks the usage of module maps with modules disabled, such as for layering checking via `-fmodules-decluse`. Regression test added.
-
Shafik Yaghmour authored
[Clang] Fix lambda CheckForDefaultedFunction(...) so that it checks the CXXMethodDecl is a special member function before attempting to call DefineDefaultedFunction(...) In Sema::CheckCompletedCXXClass(...) It used a lambda CheckForDefaultedFunction the CXXMethodDecl passed to CheckForDefaultedFunction may not be a special member function and so before attempting to apply functions that only apply to special member functions it needs to check. It fails to do this before calling DefineDefaultedFunction(...). This PR adds that check and test to verify we no longer crash. This fixes https://github.com/llvm/llvm-project/issues/57431 Differential Revision: https://reviews.llvm.org/D132906
-
Weining Lu authored
`getCPUStr()` fallsback to `getMCPU()`. The only difference between `getCPUStr()` and `getMCPU()` is that `getCPUStr()` handles `-mcpu=native`. That doesn't matter for this case. This is just a simplification of the original code and it does not change the functionality. So no new tests added. Differential Revision: https://reviews.llvm.org/D132849
-
Lang Hames authored
The llvm-jitlink tool is not needed by other sanitizer tests.
-
Joseph Huber authored
Some code previous needed the `used` attribute to prevent the GCC compiler versions 5 and 6 from removing it. This is no longer required as the minimum supported GCC version for LLVM 16 is >=7.1.0. Reviewed By: JonChesterfield, vzakhari Differential Revision: https://reviews.llvm.org/D132976
-
bzcheeseman authored
Reviewed By: whisperity Differential Revision: https://reviews.llvm.org/D131500
-
LLVM GN Syncbot authored
-
Greg Clayton authored
An upcoming patch to LLDB will require the ability to decode base64. This patch adds support for decoding base64 and adds tests. Resubmission of https://reviews.llvm.org/D126254 with where decodeBase64Byte is no longer a lambda but a static function. Some compilers have different errors or warnings with respect to what needs to be captured and what doesn't (see comments in https://reviews.llvm.org/D126254 for details). Differential Revision: https://reviews.llvm.org/D128560
-
Ben Langmuir authored
Failing on some bots, reverting until I can fix it. This reverts commit f80a0ea7.
-
Markus Böck authored
The provided testcase would previously fail with an assertion due to later down below trying to allocate registers for `token` return types and arguments. This is especially problematic as the process would then exit instead of falling back to using FastIsel. This patch fixes that by simply explicitly failing translation if either of these intrinsics are encountered. Fixes https://github.com/llvm/llvm-project/issues/57349 Differential Revision: https://reviews.llvm.org/D132974
-
Ben Langmuir authored
Instead of trying to "fix" the original driver invocation by appending arguments to it, split it into multiple commands, and for each -cc1 command use a CompilerInvocation to give precise control over the invocation. This change should make it easier to (in the future) canonicalize the command-line (e.g. to improve hits in something like ccache), apply optimizations, or start supporting multi-arch builds, which would require different modules for each arch. In the long run it may make sense to treat the TU commands as a dependency graph, each with their own dependencies on modules or earlier TU commands, but for now they are simply a list that is executed in order, and the dependencies are simply duplicated. Since we currently only support single-arch builds, there is no parallelism available in the execution. Differential Revision: https://reviews.llvm.org/D132405
-
Ian Anderson authored
The Darwin module has specified [no_undeclared_includes] for at least five years now, there's no need to hard code it in the compiler. Reviewed By: ributzka, Bigcheese Differential Revision: https://reviews.llvm.org/D132971
-
Mingming Liu authored
The test case is about pmull2 instruction generated used than a SIMD ldr being generated. So aarch64-pmull2.ll is a better test file. Differential Revision: https://reviews.llvm.org/D132277
-
Jeff Niu authored
The previous implementation would still crash if the element type was not iterable. This patch changes SparseElementsAttr to properly implement `try_value_begin_impl` according to ElementsAttr and changes DenseElementsAttr to implement `tryGetValues` as the basis for querying element values. Depends on D132904 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D132958
-
Jeff Niu authored
This patch changes `value_begin_impl` to a faillable `try_value_begin_impl` so that specific cases can fail iteration if the type doesn't match the internal storage. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D132904
-
Slava Zakharin authored
Differential Revision: https://reviews.llvm.org/D132770
-
Jonas Devlieghere authored
Fix two small issues in the live-memory variant of ObjectContainerMachOFileset. Differential revision: https://reviews.llvm.org/D132973
-
Kirill Okhotnikov authored
-
Kirill Okhotnikov authored
-
Alex Zinenko authored
Some clients treat this as compilation error.
-
Kirill Okhotnikov authored
Performance by core-math (core-math/glibc 2.31/current llvm-14): 28.879/20.843/20.15 Differential Revision: https://reviews.llvm.org/D132842
-
Kirill Okhotnikov authored
Performance by core-math (core-math/glibc 2.31/current llvm-14): 10.845/43.174/13.467 The review is done on top of D132809. Differential Revision: https://reviews.llvm.org/D132811
-
Kirill Okhotnikov authored
1) `double log2_eval(double)` function added with better than float precision is added. 2) Some refactoring done to put all auxiliary functions and corresponding data to one place to reuse the code. 3) Added tests for new functions. 4) Performance and precision tests of the function shows, that it more precise than exiting log2, (no exceptional cases), but timing is ~5% higer that on current one. Differential Revision: https://reviews.llvm.org/D132809
-
Jeff Niu authored
This patch makes parsing dense arrays with type elision work properly. If a ranked tensor type is supplied to `parseAttribute` on a dense array, the element type is skipped. Moreover, if type elision is set to `AttrTypeElision::Must`, the element type is elided. For example, this allows ``` memref.global @z : memref<3xi32> = array<1, 2, 3> ``` Fixes #57433 Depends on D132758 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D132964
-
Jeff Niu authored
This patch turns `DenseArrayBaseAttr` into a fully-functional attribute by adding a generic parser and printer, supporting bool or integer and floating point element types with bitwidths divisible by 8. It has been renamed to `DenseArrayAttr`. The patch maintains the specialized subclasses, e.g. `DenseI32ArrayAttr`, which remain the preferred API for accessing elements in C++. This allows `DenseArrayAttr` to hold signed and unsigned integer elements: ``` array<si8: -128, 127> array<ui8: 255> ``` "Exotic" floating point elements: ``` array<bf16: 1.2, 3.4> ``` And integers of other bitwidths: ``` array<i24: 8388607> ``` Reviewed By: rriddle, lattner Differential Revision: https://reviews.llvm.org/D132758
-