- Jan 07, 2023
-
-
Matt Arsenault authored
This demonstrates the pass is broken with them, the follow up change will fix it.
-
Joseph Huber authored
Summary: This option was spelled wrong and caused errors if used in combination with the linking job. Fix it.
-
Joseph Huber authored
JIT support for OpenMP offloading was introduced in D139287. This patch adds a simple flag that enables this mode. It simply requires enabling `-foffload-lto` mode and `--embed-bitcode` in the linker wrapper. This option implies LTO if it is not enabled. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D141158
-
Alexey Bataev authored
Fix compiler build reported in https://lab.llvm.org/buildbot#builders/243/builds/218
-
Alexey Bataev authored
-
Alexey Bataev authored
The new mask represents the order, not the mask itself. At first, need to treat as the order, convert to mask and only after that reorder gathered scalars to build correct clustered order. Differential Revision: https://reviews.llvm.org/D141161
-
Siva Chandra Reddy authored
Also, skip installing startup objects for baremetal targets for now. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D141112
-
Thomas Raoux authored
Add a folder for LogicalNotEqual when rhs is false. This pattern shows up after lowering to SPIRV. Differential Revision: https://reviews.llvm.org/D141163
-
Stephen Tozer authored
Following support from the previous patches in this stack being added for variadic DBG_INSTR_REFs to exist, this patch modifies LiveDebugValues to handle those instructions. Support already exists for DBG_VALUE_LISTs, which covers most of the work needed to handle these instructions; this patch only modifies the transferDebugInstrRef function to correctly track them. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D133927
-
Alexander Shaposhnikov authored
This diff completes switching Tosa to DenseArrayAttr. Test plan: ninja check-mlir check-all Differential revision: https://reviews.llvm.org/D141111
-
ziqingluo-90 authored
The original patch does include a `new` statement without a matching `delete`, causing Sanitizer warnings in https://lab.llvm.org/buildbot/#/builders/5/builds/30522/steps/13/logs/stdio. This commit is a fix to it. Differential Revision: https://reviews.llvm.org/D138329
-
Matt Arsenault authored
-
Roy Sundahl authored
Fix "runtime runtime error" -> "runtime error" Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D140321
-
Matt Arsenault authored
Attempt to fix test failures on big endian bots. This pass definitely needs more test coverage.
-
Matt Arsenault authored
Test various inputs passed to %s.
-
Hanhan Wang authored
Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D141151
-
Alexandre Ganea authored
[Support] On Windows 11 and Windows Server 2022, fix an affinity mask issue on large core count machines Before Windows 11 and Windows Server 2022, only one 'processor group' is assigned by default to a starting process, then the program is responsible for dispatching its own threads on more 'processor groups'. That is what 8404aeb5 was doing, allowing LLVM tools to automatically use all hardware threads in the machine. After Windows 11 and Windows Server 2022, the OS takes care of that. This has an adverse effect reported in #56618 which is that using `GetProcessAffinityMask()` API in some edge cases seems buggy now. That API is used to detect if an affinity mask was set, and adjust accordingly the available threads for a ThreadPool. With this patch, on one hand, we let the OS dispatch threads on all 'processor groups', but only for Windows 11 & Windows Server 2022 and after. We retain the old behavior for older OS versions. On the other hand, a workaround was added to mitigate the `GetProcessAffinityMask()` issue described above (see Threading.inc, L226). Differential Revision: https://reviews.llvm.org/D138747
-
Markus Böck authored
The generator expression previously used to enable exceptions would not work since the compiler id of clang-cl is Clang, even if used via clang-cl. The patch fixes that by replacing the generator expression with simple logic, setting the right compiler flags for all MSVC like compilers (including clang-cl) and all GCC like compilers. Differential Revision: https://reviews.llvm.org/D141155
-
Alexander Yermolovich authored
Before we always used DW_RLE_startx_length. This is not very efficient and leads to bigger .debug_addr section. Changed it to use DW_RLE_base_addressx/DW_RLE_offset_pair. clang-16 build in debug mode llvm-bolt ran on it with --update-debug-sections | section | before | after | diff | % decrease | | .debug_rnglists | 32732292 | 31986051 | -746241 | 2.3% | | .debug_addr | 14415808 | 14184128 | -231680 | 1.6% | Reviewed By: maksfb Differential Revision: https://reviews.llvm.org/D140439
-
ziqingluo-90 authored
Revert "[Fix][-Wunsafe-buffer-usage] Add a new `forEachDescendant` matcher that skips callable declarations" This reverts commit 6d140b95. This commit may causes `test/SemaCXX/warn-unsafe-buffer-usage.cpp` failure.
-
ziqingluo-90 authored
The original patch does include a `new` statement without a matching `delete`, causing Sanitizer warnings in https://lab.llvm.org/buildbot/#/builders/5/builds/30522/steps/13/logs/stdio. This commit is a fix to it. Differential Revision: https://reviews.llvm.org/D138329
-
Krzysztof Drewniak authored
As of several months ago, both ArithToLLVM and ArithToSPIRV have native support for integer min and max operations. Since these are all the targets available in MLIR core, the need to "expand" arith.minui, arith.minsi, arith,maxsi, and arith.manxui to more primitive operations is to longer present. Therefore, the expanding of integer min and max operations in Arith, while correct, is likely to lead to performance loss by way of misoptimization further down the line, and is no longer needed for anyone's correctness. This change may break downstream tests, but will not affect the semantics of MLIR programs. arith.minf and arith.maxf have a lot of underlying complexity due to the many different possible NaN and signed zero semantics available on various platforms, and so removing their expansion is left to a future commit. Reviewed By: ThomasRaoux, Mogball Differential Revision: https://reviews.llvm.org/D140856
-
MalavikaSamak authored
-
Ashay Rane authored
ssize_t is part of POSIX and not standard C/C++, so using ssize_t without the necessary header files causes the build to fail on Windows with the following error: 'ssize_t': undeclared identifier. This patch includes llvm/Support/DataTypes.h to resolve the problem. Differential Revision: https://reviews.llvm.org/D141149
-
MalavikaSamak authored
Re-architecture of safe-buffers gadgets to re-classify them as warning and fixable gadgets. The warning gadgets identify unsafe operations on buffer variables and emit suitable warnings. While the fixable gadgets consider all operations on variables identified by the warning gadgets and emit necessary fixits. Differential Revision: https://reviews.llvm.org/D140062?id=486625
-
Michael Jones authored
To improve code generation for C++ code that directly includes our headers, the external function definitions will now be marked noexcept. This may not be necessary for the internal definitions since we build with the -fno-exceptions flag. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D141095
-
Mehdi Amini authored
This would cause a crash when calling `dump()` on an operation that didn't have a parent yet.
-
Casey Carter authored
`std::out_of_range` is in `<stdexcept>`
-
Stephen Tozer authored
Prior to this patch, variadic DIExpressions (i.e. ones that contain DW_OP_LLVM_arg) could only be created by salvaging debug values to create stack value expressions, resulting in a DBG_VALUE_LIST being created. As of the previous patch in this patch stack, DBG_INSTR_REF's syntax has been changed to match DBG_VALUE_LIST in preparation for supporting variadic expressions. This patch adds some minor changes needed to allow variadic expressions that aren't stack values to exist, and allows variadic expressions that are trivially reduceable to non-variadic expressions to be handled similarly to non-variadic expressions. Reviewed by: jmorse Differential Revision: https://reviews.llvm.org/D133926
-
Slava Zakharin authored
This change introduces new LLVMIR dialect operations to represent TBAA root, type descriptor and access tag metadata nodes. For the purpose of importing TBAA metadata from LLVM IR it only supports the current version of TBAA format described in https://llvm.org/docs/LangRef.html#tbaa-metadata (i.e. size-aware representation introduced in D41501 is not supported). TBAA attribute support is only added for LLVM::LoadOp and LLVM::StoreOp. Support for intrinsics operations (e.g. LLVM::MemcpyOp) may be added later. The TBAA attribute is represented as an array of access tags, though, LLVM IR supports only single access tag per memory accessing instruction. I implemented it as an array anticipating similar support in LLVM IR to combine TBAA graphs with different roots for Flang - one of the options described in https://docs.google.com/document/d/16kKZVmI585wth01VSaJAqZMZpoX68rcdBmgfj0kNAt0/edit#heading=h.jzzheaz9vqac It should be easy to restrict MLIR operation to a single access tag, if we end up using a different approach for Flang. Differential Revision: https://reviews.llvm.org/D140768
-
Joe Nash authored
Reduce duplication in the codebase by combining these fields in VOPProfile. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D141088
-
James Y Knight authored
This change removes the `tidyLandingPads` function, which previously had a few responsibilities: 1. Dealing with the deletion of an invoke, after MachineFunction lowering. 2. Dealing with the deletion of a landing pad BB, after MachineFunction lowering. 3. Cleaning up the type-id list generated by `MachineFunction::addLandingPad`. Case 3 has been fixed in the generator, and the others are now handled during table emission. This change also removes `MachineFunction`'s `addCatchTypeInfo`, `addFilterTypeInfo`, and `addCleanup` helper fns, as they had a single caller, and being outlined didn't make it simpler. Finally, as calling `tidyLandingPads` was effectively the only thing `DwarfCFIExceptionBase` did, that class has been eliminated.
-
James Y Knight authored
Non-throwing inline asm infers the nounwind attribute in instcombine. Thus, it can be handled in the same manner as non-throwing target functions are generally. Further special casing is unnecessary complexity.
-
Rob Suderman authored
Conv3D has an existing linalg operation for floating point. Adding a quantized variant and corresponding lowering from TOSA. Numerical correctness was validated using the TOSA conformance tests. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D140919
-
Jason Molenda authored
When lldb is reading a user process corefile, it starts by finding dyld, then finding the dyld_all_image_infos structure in dyld by symbol name, then getting the list of loaded binaries. If it fails to find the structure by name, it can't load binaries. There is an additional fallback that this patch adds, which is to look for this object by the section name it is stored in, if the symbol name lookup fails. Differential Revision: https://reviews.llvm.org/D140066 rdar://103369931
-
ziqingluo-90 authored
Re-land "[-Wunsafe-buffer-usage] Add a new `forEachDescendant` matcher that skips callable declarations" This reverts commit 22df4549. After a quick investigation, realizing that the Sanitizer test failures caused by this patch is not likely to block other contributors. I re-land this patch before taking a closer look at those tests so that it won't block the [-Wunsafe-buffer-usage] development.
-
Stephen Tozer authored
This patch fixes an error in commit e10e9363 in which the added documentation contained an incorrectly-styled underline for the title "Debug Instruction Reference Operands".
-
Stephen Tozer authored
This patch makes two notable changes to the MIR debug info representation, which result in different MIR output but identical final DWARF output (NFC w.r.t. the full compilation). The two changes are: * The introduction of a new MachineOperand type, MO_DbgInstrRef, which consists of two unsigned numbers that are used to index an instruction and an output operand within that instruction, having a meaning identical to first two operands of the current DBG_INSTR_REF instruction. This operand is only used in DBG_INSTR_REF (see below). * A change in syntax for the DBG_INSTR_REF instruction, shuffling the operands to make it resemble DBG_VALUE_LIST instead of DBG_VALUE, and replacing the first two operands with a single MO_DbgInstrRef-type operand. This patch is the first of a set that will allow DBG_INSTR_REF instructions to refer to multiple machine locations in the same manner as DBG_VALUE_LIST. Reviewed By: jmorse Differential Revision: https://reviews.llvm.org/D129372 -
Casey Carter authored
* initializing `short`s with `short`s instead of `int`s to avoid narrowing warnings * Explicitly discard the result of `value` calls to avoid `[[nodiscard]]` warnings Drive-by: `testException` from `value` test is duplicated in `value_or` test; remove the duplicate. Differential Review: https://reviews.llvm.org/D141108
-
Kai Nacke authored
clang (like gcc) has the -mtune= command line option. This option adds the "tune-cpu" attribute to a function. The intended functionality is that the scheduling model of that cpu is used. E.g. -mtune=pwr9 -march=pwr8 generates only instructions supported on pwr8 but uses the scheduling model of pwr9 for it. This PR adds the infrastructure to support this in LLVM. clang support was added in https://reviews.llvm.org/D130526. Reviewed By: amyk, qiucf Differential Revision: https://reviews.llvm.org/D138317
-