- Jul 25, 2023
-
-
Jonathan Peyton authored
-
Jonathan Peyton authored
Get rid of explicit mask alloc, getthreadaffinity, set temp affinity, reset to old affinity, dealloc steps in favor of existing kmp_affinity_raii_t to push/pop a temporary affinity. Differential Revision: https://reviews.llvm.org/D154650
-
Jacek Caban authored
This reverts commit 6c48f57c. Build broken on GCC.
-
Nick Desaulniers authored
As suggested by @efriedma in: https://reviews.llvm.org/D76096#4370369 This should speed up evaluating whether an expression is constant or not, but due to the complexity of these two different implementations, we may start getting different answers for edge cases for which we do not yet have test cases in-tree (or perhaps even performance regressions for some cases). As such, contributors have carte blanche to revert if necessary. For additional historical context about ExprConstant vs CGExprConstant, here's snippets from a private conversation on discord: ndesaulniers: why do we have clang/lib/AST/ExprConstant.cpp and clang/lib/CodeGen/CGExprConstant.cpp? Does clang constant fold during ast walking/creation AND during LLVM codegen? efriedma: originally, clang needed to handle two things: integer constant expressions (the "5" in "int x[5];"), and constant global initializers (the "5" in "int x = 5;"). pre-C++11, the two could be handled mostly separately; so we had the code for integer constants in AST/, and the code for globals in CodeGen/. C++11 constexpr sort of destroyed that separation, though. so now we do both kinds of constant evaluation on the AST, then CGExprConstant translates the result of that evaluation to LLVM IR. but we kept around some bits of the old cgexprconstant to avoid performance/memory usage regressions on large arrays. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D151587
-
Craig Topper authored
Unlike fmaxnum and fminnum, these operations propagate nan and consider -0.0 to be less than +0.0. Without Zfa, we don't have a single instruction for this. The lowering I've used forces the other input to nan if one input is a nan. If both inputs are nan, they get swapped. Then use the fmax or fmin instruction. New ISD nodes are needed because fmaxnum/fminnum to not define the order of -0.0 and +0.0. This lowering ensures the snans are quieted though that is probably not required in default environment). Also ensures non-canonical nans are canonicalized, though I'm also not sure that's needed. Another option could be to use fmax/fmin and then overwrite the result based on the inputs being nan, but I'm not sure we can do that with any less code. Future work will handle nonans FMF, and handling the case where we can prove the input isn't nan. This does fix the crash in #64022, but we need to do more work to avoid scalarization. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D156069
-
Jacek Caban authored
This is a preparation for ARM64EC/ARM64X binaries, which may contain both ARM64 and x86_64 code in the same file. llvm-objdump already has partial support for mixing disassemblers for ARM thumb mode support. However, for ARM64EC we can't share MCContext, MCInstrAnalysis and PrettyPrinter instances. This patch provides additional abstraction which makes adding mixed code support later in the series easier. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D149093
-
Piotr Zegar authored
Fix issue preventing suppression of compiler warnings with -Wno-<warning> under C++20 and above. Add call to ProcessWarningOptions and propagate DiagnosticOpts more properly. Fixes: #56709, #61969 Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D156056
-
Anton Dukeman authored
The unchecked-optional-access check identifies attempted value unwrapping without checking if the value exists. These changes extend that support to checking folly::Optional. Reviewed By: gribozavr2 Differential Revision: https://reviews.llvm.org/D155890
-
Philip Reames authored
This is fixing a mistake in 4f4f4913.
-
Mehdi Amini authored
This reverts commit 20b93abc. One python test is broken, WIP.
-
Fangrui Song authored
This was needed when XRay/* tests relied on the default target triple. Now that we set a default target triple for every test we can remove this customization. This cleanup is intrigued by D156090.
-
Philip Reames authored
-
LLVM GN Syncbot authored
-
Cyndy Ishida authored
SymbolSet is a structure that acts as a simple container class for exported symbols that belong to a library interface. It allows tapi to decouple the globals from the other library attributes. It's uniqued by symbol name and `kind`, which all contain their assigned target triples. Reviewed By: zixuw Differential Revision: https://reviews.llvm.org/D149860
-
Jacek Caban authored
Differential Revision: https://reviews.llvm.org/D149091
-
Jacek Caban authored
ARM64EC/ARM64X binaries use ARM64 or AMD64 machine types, but provide additional CHPE metadata that may be used to distinguish them from pure ARM64/AMD64 binaries. Reviewed By: jhenderson, MaskRay, mstorsjo Differential Revision: https://reviews.llvm.org/D149091
-
Jacek Caban authored
Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D149440
-
Mehdi Amini authored
The operand_segment_sizes and result_segment_sizes Attributes are now inlined in the operation as native propertie. We continue to support building an Attribute on the fly for `getAttr("operand_segment_sizes")` and setting the property from an attribute with `setAttr("operand_segment_sizes", attr)`. A new bytecode version is introduced to support backward compatibility and backdeployments. Differential Revision: https://reviews.llvm.org/D155919 -
Advenam Tacet authored
ASan capabilities were extended, but some comments were not updated and describe old behavior. This commit updates outdated comments, which I found. Mentioned changes are: - All allocators in containers (`std::vector` and `std::deque`; D146815 D136765) are supported, but it's possible to turn off annotations for a specific allocator (D145628). - Buffers don't have to be aligned (D132522). Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D156155
-
Joseph Huber authored
Summary: Release notes
-
Reid Kleckner authored
Reviewed By: aprantl, probinson Differential Revision: https://reviews.llvm.org/D156143
-
Kelvin Li authored
Co-authored-by:
Paul Scoropan <1paulscoropan@gmail.com> Differential Revision: https://reviews.llvm.org/D154985
-
Michael Maitland authored
Any users of LoopAccessAnalysis should use MaxSafeVectorWidthInBits. Differential Revision: https://reviews.llvm.org/D156034
-
Paul Robinson authored
The DIFile cache was keyed on a string pointer instead of string content, which was causing misses and resulted in an entry without a checksum. In DWARF v5 if any checksum is missing, we can't write any to the output file, so this had consequences. Fixes https://github.com/llvm/llvm-project/issues/63955 Differential revision: https://reviews.llvm.org/D155991
-
Paul Robinson authored
Adds descriptions for adxintrin.h, bmi2intrin.h, clflushoptintrin.h, clzerointrin.h, rdseedintrin.h, and xsavecintrin.h. Differential revision: https://reviews.llvm.org/D155859
-
Alex Langford authored
I noticed these were missing. Differential Revision: https://reviews.llvm.org/D155653
-
Po-yao Chang authored
Fixes #64041 Differential Revision: https://reviews.llvm.org/D156063
-
Mehdi Amini authored
Revert "[mlir][gpu] Fallback to JIT compilation" "[mlir][gpu] Increase default SM version from 35 to 50" and "[mlir][gpu] Improving Cubin Serialization with ptxas Compiler" This reverts commit 2e0e00ed and reverts commit a6eb4069 and reverts commit 585cbe3f. 15 tests are broken on the mlir-nvidia buildbot: 'cuModuleLoadData(&module, data)' failed with 'CUDA_ERROR_INVALID_SOURCE' 'cuModuleGetFunction(&function, module, name)' failed with 'CUDA_ERROR_INVALID_HANDLE' 'cuLaunchKernel(function, gridX, gridY, gridZ, blockX, blockY, blockZ, smem, stream, params, extra)' failed with 'CUDA_ERROR_INVALID_HANDLE' 'cuModuleUnload(module)' failed with 'CUDA_ERROR_INVALID_HANDLE'
-
Benjamin Kramer authored
-
Benjamin Kramer authored
llvm/unittests/Target/AArch64/AArch64SVESchedPseudoTest.cpp:38:10: error: module @llvm-project//llvm/unittests:target_aarch64_tests does not depend on a module exporting 'AArch64GenInstrInfo.inc' Test was added in 57329ca9
-
Slava Zakharin authored
hlfir.count lowering was using incorrect default integer kind by ignoring the kind specified in the ModuleOp. Reviewed By: tblah Differential Revision: https://reviews.llvm.org/D156017
-
Slava Zakharin authored
Character length may be unknown for the type of Fortran::evaluate::FunctionRef expression, but we can try to propagate it from the argument of TRANSPOSE if it is known constant. Alternatively, we could relax hlfir.transpose verification (i.e. allow character types mismatch for the argument and the result). Depends on D155912 Reviewed By: tblah Differential Revision: https://reviews.llvm.org/D155913
-
Fangrui Song authored
Add explicit --target= so that the tests run on all targets, not some that support XRay, similar to commit e1051414. For option testing, we often use a placeholder architecture (e.g., x86_64). Fix https://github.com/llvm/llvm-project/issues/64028
-
Piotr Zegar authored
Fix formating, merge few entrys.
-
LLVM GN Syncbot authored
-
Fangrui Song authored
-
Ivan Butygin authored
Differential Revision: https://reviews.llvm.org/D155945
-
Podchishchaeva, Mariya authored
Explicit specialization doesn't increase depth of template parameters, so need to be careful when gathering template parameters for instantiation. For the case: ``` template<typename T> struct X { struct impl; }; template <> struct X<int>::impl { template<int ct> int f() { return ct; }; }; ``` instantiation of `f` used to crash because type template parameter `int` of explicit specialization was taken into account, but non-type template parameter `ct` had zero depth and index so wrong parameter ended up inside of a wrong handler. Fixes https://github.com/llvm/llvm-project/issues/61159 Reviewed By: aaron.ballman, shafik Differential Revision: https://reviews.llvm.org/D155705 -
Valentin Clement authored
Keep the original array size when materializing the private copy. Depends on D155882 Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D155893
-
Valentin Clement authored
Update the code generated in the init region to materialize the private copy. Reviewed By: razvanlupusoru Differential Revision: https://reviews.llvm.org/D155882
-