- Jul 25, 2023
-
-
WANG Rui authored
Add test case showing suboptimal codegen when zero extending. Signed-off-by:
WANG Rui <wangrui@loongson.cn> Reviewed By: xen0n Differential Revision: https://reviews.llvm.org/D154918
-
Weining Lu authored
This reverts commit c299efbf. Reason to revert: D142327 has been reverted which is depended by this change.
-
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 -
Owen Pan authored
This adds a new AlignConsecutiveShortCaseStatements option in line with the existing AlignConsecutive* options , which when AllowShortCaseLabelsOnASingleLine is enabled will align the tokens after the case statement's colon. This also adds a AlignCaseColons option to allow aligning the case label colon itself rather than the token after it. Fixes #55475. Differential Revision: https://reviews.llvm.org/D151761
-
chenli authored
The author of the following files is licongtian <licongtian@loongson.cn>: - clang/lib/Basic/Targets/LoongArch.cpp - llvm/lib/Target/LoongArch/LoongArchAsmPrinter.cpp - llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp The files mentioned above implement InlineAsm for LSX and LASX as follows: - Enable clang parsing LSX/LASX register name, such as $vr0. - Support the case which operand type is 128bit or 256bit when the constraints is 'f'. - Support the way of specifying LSX/LASX register by using constraint, such as "={$xr0}". - Support the operand modifiers 'u' and 'w'. - Support and legalize the data types and register classes involved in LSX/LASX in the lowering process. Reviewed By: xen0n, SixWeining Differential Revision: https://reviews.llvm.org/D154931 -
Weining Lu authored
GCC doesn't ignore non-zero-length array of empty structures in C++ while clang does. What this patch did is to match GCC's behaviour although this rule is not documented in psABI. Similar to D142327 for RISCV. Reviewed By: xry111, xen0n Differential Revision: https://reviews.llvm.org/D156116
-
Weining Lu authored
Differential Revision: https://reviews.llvm.org/D156114
-
Mehdi Amini authored
Cleanup CMake dependencies from unnecessary libraries in mlir/test/lib/Dialect/GPU/CMakeLists.txt (NFC)
-
Michael Halkenhaeuser authored
OMPT release note addition for LLVM 17 Differential Revision: https://reviews.llvm.org/D156191
-
Michael Halkenhaeuser authored
[OpenMP] [OMPT] [7/8] Invoke tool-supplied callbacks before and after target launch and data transfer operations Implemented RAII objects, initialized at target entry points, that invoke tool-supplied callbacks. Updated status of target callbacks as implemented. Depends on D127365 Patch from John Mellor-Crummey <johnmc@rice.edu> With contributions from: Dhruva Chakrabarti <Dhruva.Chakrabarti@amd.com> Jan-Patrick Lehr <janpatrick.lehr@amd.com> Reviewed By: jdoerfert, dhruvachak Differential Revision: https://reviews.llvm.org/D127367
-
Mehdi Amini authored
This reverts commit 68b7d3ff. The mlir-nvidia bot is broken.
-
Fangrui Song authored
-
Kai Luo authored
On AIX, a libatomic supporting inline quadword atomic operations has been released, so that compatibility is not an issue now, we can enable quadword atomics by default. Reviewed By: #powerpc, nemanjai Differential Revision: https://reviews.llvm.org/D151312
-
Alex Richardson authored
Currently the *tf builtin functions can only be built if long double is an IEEE float, which prevents them from being available e.g. for x86 targets (unlike libgcc which has them). This non-functional change prepares the builtins library *tf functions for being able to target x86 by decoupling their presence from CRT_LDBL_128BIT and instead checking for a CRT_HAS_TF_MODE macro. This change is NFC since the CRT_HAS_TF_MODE is currently only set if long double is an IEEE 128-bit float. Reviewed By: compnerd Differential Revision: https://reviews.llvm.org/D153812
-
Alex Richardson authored
This flag does nothing for clang and is apparently not supported by GCC: aarch64-linux-gnu-gcc: error: unrecognized command-line option '-fnested-functions'; did you mean '-Wunused-function'? It looks like it was maybe supported by Apple GCC, but that is no longer a supported compiler. Differential Revision: https://reviews.llvm.org/D153819
-
Alex Richardson authored
GCC does not support __fp16, use the TYPE_FP16 macro instead. Differential Revision: https://reviews.llvm.org/D153813
-
Matt Arsenault authored
This makes it possible to use canonicalize to perform a dynamic check for whether denormal flushing is enabled, which will fold out when the denormal mode is known. Previously it would only fold if denormal flushing were known enabled. https://reviews.llvm.org/D156107
-
Nicolas Vasilache authored
This fixes a compilation bug where we would try to depend on ExecutionEngine but it wasn't actually built.
-
Nicolas Vasilache authored
-
Vitaly Buka authored
It's unused, but I need it for debuging. Seems usefull for completeness. Reviewed By: thurston Differential Revision: https://reviews.llvm.org/D156180
-
Ivan Butygin authored
SPIR-V doesn't have poison, but poison can be converted to undef. Differential Revision: https://reviews.llvm.org/D156163
-
varconst authored
Differential Revision: https://reviews.llvm.org/D155873
-
Cyndy Ishida authored
UUID's & `installapi` flag are no longer useful in recent apple linker/tapi. The reason for removing them is that these are attributes that record how a library was built but not really about the library itself. TBD files now only track information this is important as link time dependencies. Reviewed By: ributzka Differential Revision: https://reviews.llvm.org/D149861
-
Joshua Batista authored
Add codegen for llvm pow elementwise builtin The pow elementwise builtin is necessary for HLSL codegen. Tests were added to make sure that the expected errors are encountered when these functions are given inputs of incompatible types, or too many inputs. The new builtin is restricted to floating point types only. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D153310
-
Jonathan Peyton authored
Get the KMP_VERSION printout logic out of environment variable file (kmp_settings.cpp) and move to end of serial initialization where KMP_SETTINGS and OMP_DISPLAY_ENV are. Differential Revision: https://reviews.llvm.org/D154652
-
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 ...
-
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