- Nov 20, 2020
-
-
Teresa Johnson authored
Add a new interface __sanitizer_get_report_path which will return the full path to the report file if __sanitizer_set_report_path was previously called (otherwise it returns null). This is useful in particular for memory profiling handlers to access the path which was specified at compile time (and passed down via __memprof_profile_filename), including the pid added to the path when the file is opened. There wasn't a test for __sanitizer_set_report_path, so I added one which additionally tests the new interface. Differential Revision: https://reviews.llvm.org/D91765
-
Sam Tebbs authored
This converts the intermediate VPR use assertion to a condition in the if-statement to protect against assertion failures in case behaviuour is changed. This is a follow-up to https://reviews.llvm.org/D90935 and implements the post-approval comments. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D91790
-
Joseph Huber authored
Summary: Add support for passing source locations to libomptarget runtime functions using the ident_t struct present in the rest of the libomp API. This will allow the runtime system to give much more insightful error messages and debugging values. Reviewers: jdoerfert grokos Differential Revision: https://reviews.llvm.org/D87946
-
Tres Popp authored
Additionally, clear a data structure to ensure a proper state if multiple conversion attempts are needed. Differential Revision: https://reviews.llvm.org/D91791
-
Roman Lebedev authored
-
Siva Chandra Reddy authored
Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D91763
-
Raphael Isemann authored
-
Raphael Isemann authored
We can handle all the types in the expression evaluator now without casting. On Linux, we have a system header declaration that is still causing issues, so I'm skipping the test there until I get around to fix this.
-
- Nov 19, 2020
-
-
Mircea Trofin authored
This is achieved through a substitution of FileCheck in lit.cfg.py, where we explicitly set -allow-unused-prefixes to false. We also introduce a %FileCheckWithUnusedPrefixes% substitution that can be used in those cases where we want to allow unused prefixes, even if the folder policy is to disallow them. Differential Revision: https://reviews.llvm.org/D91275
-
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
-