- Nov 19, 2020
-
-
diggerlin authored
[AIX][XCOFF][Patch2] decode vector information and extent long table of the traceback table of the xcoff. SUMMARY: 1. decode the Vector extension if has_vec is set 2. decode long table fields, if longtbtable is set. There is conflict on the bit order of HasVectorInfoMask and HasExtensionTableMask between AIX os header and IBM aix compiler XLC. In the /usr/include/sys/debug.h defines static constexpr uint32_t HasVectorInfoMask = 0x0040'0000; static constexpr uint32_t HasExtensionTableMask = 0x0080'0000; but the XLC defines as static constexpr uint32_t HasVectorInfoMask = 0x0080'0000; static constexpr uint32_t HasExtensionTableMask = 0x0040'0000; we follows the definition of the IBM AIX compiler XLC here. Reviewer: Jason Liu Differential Revision: https://reviews.llvm.org/D86461
-
ergawy authored
This commit extends the functionality of the SPIR-V module combiner library by adding new deduplication capabilities. In particular, implementation of deduplication of global variables and specialization constants, and functions is introduced. For global variables, 2 variables are considered duplicate if they either have the same descriptor set + binding or the same built_in attribute. For specialization constants, 2 spec constants are considered duplicate if they have the same spec_id attribute. 2 functions are deduplicated if they are identical. 2 functions are identical if they have the same prototype, attributes, and body. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D90951
-
ergawy authored
This commit does the renaming mentioned in the title in order to bring 'spv' dialect closer to the MLIR naming conventions. Reviewed By: antiagainst Differential Revision: https://reviews.llvm.org/D91797
-
David Green authored
-
Haojian Wu authored
If there is a "-verify" flag in the compile command, clangd will crash (hit the assertion) inside the `~VerifyDiagnosticConsumer` (Looks like our compiler invocation doesn't setup correctly?). This patch disables the verify mode as it is rarely useful in clangd. Differential Revision: https://reviews.llvm.org/D91777
-
Jan Svoboda authored
Depends on D83691 Reviewed By: dexonsmith Original patch by Daniel Grumberg. Differential Revision: https://reviews.llvm.org/D83693
-
Mikhail Goncharov authored
This reverts commit 40267cc9. Build fails, e.g. http://lab.llvm.org:8011/#/builders/23/builds/108
-
Jan Svoboda authored
Depends on D83690 Reviewed By: dexonsmith Original patch by Daniel Grumberg. Differential Revision: https://reviews.llvm.org/D83691
-
Mikhail Goncharov authored
This reverts commit c43abf04. Test commands/register/register/register_command/TestRegisters.py fails. Buildbot http://lab.llvm.org:8011/#/changes/4149
-
Xiangling Liao authored
Support attribute((constructor)) and attribute((destructor)) on AIX Differential Revision: https://reviews.llvm.org/D90892
-
Lei Zhang authored
This commit starts a new pass and patterns for converting Linalg named ops to generic ops. This enables us to leverage the flexbility from generic ops during transformations. Right now only linalg.conv is supported; others will be added when useful. Reviewed By: nicolasvasilache Differential Revision: https://reviews.llvm.org/D91357
-
Arthur O'Dwyer authored
(1) Add _VSTD:: qualification to __swap_allocator. (2) Add _VSTD:: qualification consistently to __to_address. (3) Add some more missing _VSTD:: to <vector>, with a regression test. This part is cleanup after d9a4f936. Note that a vector whose allocator actually runs afoul of any of these ADL calls will likely also run afoul of simple things like `v1 == v2` (which is also an ADL call). But, still, libc++ should be consistent in qualifying function calls wherever possible. Relevant blog post: https://quuxplusone.github.io/blog/2019/09/26/uglification-doesnt-stop-adl/ Differential Revision: https://reviews.llvm.org/D91708
-
Sven van Haastregt authored
Support/Compiler.h is included by c files (e.g. regcomp.c) where __cplusplus is not defined at all. Avoid evaluating the undefined macro for such files.
-
Florian Hahn authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
[ValueTracking] computeKnownBitsFromShiftOperator - move shift amount analysis to top of the function. NFCI. These are all lightweight to compute and helps avoid issues with Known being used to hold both the shift amount and then the shifted result. Minor cleanup for D90479.
-
David Green authored
This was already something that was handled by one of the "else" branches in maybeLoweredToCall, so this patch is an NFC but makes it explicit and adds a test. We may in the future want to support this under certain situations but for the moment just don't try and create low overhead loops with inline asm in them. Differential Revision: https://reviews.llvm.org/D91257
-
Kirill Bobyrev authored
Address Sanitizer crashes on large allocations: ```c++ // Try to crash rather than hang on large allocation. ScopedMemoryLimit MemLimit(1000 * 1024 * 1024); // 1GB ```
-
Michał Górny authored
Translate between abridged and full ftag values in order to expose the latter in the gdb-remote protocol while the former are used by FXSAVE/XSAVE... This matches the gdb behavior. Differential Revision: https://reviews.llvm.org/D91504
-
Michał Górny authored
The FXSAVE/XSAVE data can have two different layouts on x86_64. When called as FXSAVE/XSAVE..., the Instruction Pointer and Address Pointer registers are reported using a 16-bit segment identifier and a 32-bit offset. When called as FXSAVE64/XSAVE64..., they are reported using a complete 64-bit offsets instead. LLDB has historically followed GDB and unconditionally used to assume the 32-bit layout, with the slight modification of possibly using a 32-bit segment register (i.e. extending the register into the reserved 16 upper bits). When the underlying operating system used FXSAVE64/XSAVE64..., the pointer was split into two halves, with the upper half repored as the segment registers. While reconstructing the full address was possible on the user end (and e.g. the FPU register tests did that), it certainly was not the most convenient option. Introduce a two additional 'fip' and 'fdp' registers that overlap with 'fiseg'/'fioff' and 'foseg'/'foff' respectively, and report the complete 64-bit address. Differential Revision: https://reviews.llvm.org/D91497
-
Simon Pilgrim authored
[X86][AVX] Only share broadcasts of different widths from the same SDValue of the same SDNode (PR48215) D57663 allowed us to reuse broadcasts of the same scalar value by extracting low subvectors from the widest type. Unfortunately we weren't ensuring the broadcasts were from the same SDValue, just the same SDNode - which failed on multiple-value nodes like ISD::SDIVREM FYI: I intend to request this be merged into the 11.x release branch. Differential Revision: https://reviews.llvm.org/D91709
-
Joe Ellis authored
This patch allows C-style casting between fixed-size and scalable vectors. This kind of cast was previously blocked by the compiler, but it should be allowed. Differential Revision: https://reviews.llvm.org/D91262
-
Simon Moll authored
The assertion that vector widths are <= 256 elements was hard wired in the LV code. Eg, VE allows for vectors up to 512 elements. Test again the TTI vector register bit width instead - this is an NFC for non-asserting builds. Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D91518
-
Gabriel Hjort Åkerlund authored
Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D91519
-
Florian Hahn authored
In some cases, the values passed to `asm sideeffect` calls cannot be mapped directly to simple MVTs. Currently, we crash in the backend if that happens. An example can be found in the @test_vector_too_large_r_m test case, where we pass <9 x float> vectors. In practice, this can happen in cases like the simple C example below. using vec = float __attribute__((ext_vector_type(9))); void f1 (vec m) { asm volatile("" : "+r,m"(m) : : "memory"); } One case that use "+r,m" constraints for arbitrary data types in practice is google-benchmark's DoNotOptimize. This patch updates visitInlineAsm so that it use MVT::Other for constraints with complex VTs. It looks like the rest of the backend correctly deals with that and properly legalizes the type. And we still report an error if there are no registers to satisfy the constraint. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D91710 -
Max Kazantsev authored
-
Max Kazantsev authored
-
Balázs Kéri authored
Do not warn for "pointer to aggregate" in a `sizeof(A) / sizeof(A[0])` expression if `A` is an array of pointers. This is the usual way of calculating the array length even if the array is of pointers. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D91543
-
Ji Kim authored
For intrinsics with multiple returns where one or more operands are overloaded, the overloaded type is inferred from the corresponding field of the resulting struct, instead of accessing the result directly. As such, the hasResult parameter of LLVM_IntrOpBase (and derived classes) is replaced with numResults. TableGen for intrinsics also updated to populate this field with the total number of results. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D91680
-
Simon Moll authored
This defines the vec_broadcast SDNode along with lowering and isel code. We also remove unused type mappings for the vector register classes (all vector MVTs that are not used in the ISA go). We will implement support for short vectors later by intercepting nodes with illegal vector EVTs before LLVM has had a chance to widen them. Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D91646
-
Sam Clegg authored
Differential Revision: https://reviews.llvm.org/D91769
-
Andrew Wei authored
Some nested loops may share the same ExitingBB, so after we finishing FoldExit, we need to notify OuterLoop and SCEV to drop any stored trip count. Patched by: guopeilin Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D91325
-
Kadir Cetinkaya authored
-
Qiu Chaofan authored
According to ELF v2 ABI, both IEEE 128-bit and IBM extended floating point variables should be quad-word (16 bytes) aligned. Previously, only vector types are considered aligned as quad-word on PowerPC. This patch will fix incorrectness of IEEE 128-bit float argument in va_arg cases. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D91596
-
Siva Chandra Reddy authored
Targeted tests have been added. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D91752
-
Mircea Trofin authored
The lookup logic is also reusable. Also refactored the API to return the loaded vector - this makes it more clear what state it is in in the case of error (as it won't be returned). Differential Revision: https://reviews.llvm.org/D91759
-
Kazu Hirata authored
-
Mircea Trofin authored
It's generic for the 'development mode', not specific to the inliner case. Differential Revision: https://reviews.llvm.org/D91751
-
Craig Topper authored
Differential Revision: https://reviews.llvm.org/D91730
-
River Riddle authored
This prevents potential problems that occur when multiple pass managers register crash recovery contexts.
-