- Oct 05, 2020
-
-
Sebastian Neubauer authored
Use tablegen generic tables to get the index of image intrinsic arguments. Before, the computation of which image intrinsic argument is at which index was scattered in a few places, tablegen, the SDag instruction selection and GlobalISel. This patch changes that, so only tablegen contains code to compute indices and the ImageDimIntrinsicInfo table provides these information. Differential Revision: https://reviews.llvm.org/D86270
-
Nicolas Vasilache authored
-
Kazushi (Jam) Marukawa authored
Support register and frame-index pair correctly as operands of generic load/store instrucitons, e.g. LD1BZXrri, STLrri, and etc. Add regression tests also. Differential Revision: https://reviews.llvm.org/D88779
-
Benjamin Kramer authored
While affine maps are part of the builtin memref type, there is very limited support for manipulating them in the standard dialect. Add transpose to the set of ops to complement the existing view/subview ops. This is a metadata transformation that encodes the transpose into the strides of a memref. I'm planning to use this when lowering operations on strided memrefs, using the transpose to remove the stride without adding a dependency on linalg dialect. Differential Revision: https://reviews.llvm.org/D88651
-
Jay Foad authored
This tends to increase code size but more importantly it reduces vgpr usage, and could avoid costly readfirstlanes if the result needs to be in an sgpr. Differential Revision: https://reviews.llvm.org/D88580
-
Jay Foad authored
This is in preparation for making the GCN patterns divergence-aware. NFC. Differential Revision: https://reviews.llvm.org/D88579
-
Gabriel Hjort Åkerlund authored
When nesting INSERT_SUBREG and EXTRACT_SUBREG, GlobalISelEmitter would fail to find the register class of the nested node. This patch fixes that for registers with subregs. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D88487
-
Haojian Wu authored
The error-bit was missing, if a DeclRefExpr (which refers to a VarDecl with a contains-errors initializer). It could cause different violations in clang -- the DeclRefExpr is value-dependent, but not contains-errors, `ABC<DeclRefExpr>` could produce a non-error and non-dependent type in non-template context, which will lead to crashes in constexpr evaluation. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D86048
-
Markus Lavin authored
Use SCEV to salvage additional @llvm.dbg.value that have turned into referencing undef after transformation (and traditional salvageDebugInfo). Before transformation compute SCEV for each @llvm.dbg.value in the loop body and store it (along side its current DIExpression). After transformation update those @llvm.dbg.value now referencing undef by comparing its stored SCEV to the SCEV of the current loop-header PHI-nodes. Allow match with offset by inserting compensation code in the DIExpression. Fixes : PR38815 Differential Revision: https://reviews.llvm.org/D87494
-
Alexey Baturo authored
[11/11] patch series to port ASAN for riscv64 These changes allow using ASAN on RISCV64 architecture. The majority of existing tests are passing. With few exceptions (see below). Tests we run on qemu and on "HiFive Unleashed" board. Tests run: ``` Asan-riscv64-inline-Test - pass Asan-riscv64-inline-Noinst-Test - pass Asan-riscv64-calls-Noinst-Test - pass Asan-riscv64-calls-Test - pass ``` Lit tests: ``` RISCV64LinuxConfig (282 supported, few failures) RISCV64LinuxDynamicConfig (289 supported, few failures) ``` Lit failures: ``` TestCases/malloc_context_size.cpp - asan works, but backtrace misses some calls TestCases/Linux/malloc_delete_mismatch.cpp - asan works, but backtrace misses some calls TestCases/Linux/static_tls.cpp - "Can't guess glibc version" (under debugging) TestCases/asan_and_llvm_coverage_test.cpp - missing libclang_rt.profile-riscv64.a ``` These failures are under debugging currently and shall be addressed in a subsequent commits. Depends On D87581 Reviewed By: eugenis, vitalybuka Differential Revision: https://reviews.llvm.org/D87582
-
Jonas Devlieghere authored
Rename the DwarfFile class in DWARFLinker to DWARFFile. This is consistent with the other DWARF classes and avoids a ODR violation with the DwarfFile class in AsmPrinter.
-
Michał Górny authored
Darwin seems to use stmmN instead of stN. Use a regex to accept both. Also try to actually clear st(7). Differential revision: https://reviews.llvm.org/D88795
-
Craig Topper authored
RBX was copied to a virtual register before this instruction was created. And the EBX input for the final MWAITX is still in a virtual register. So EBX isn't read by this pseudo.
-
David Blaikie authored
It's not possible to do this in complete generality - a CU using a sec_offset DW_AT_ranges has no way of knowing where its rnglists contribution starts, so should not attempt to parse any full rnglist table/header to do so. And even using FORM_rnglistx there's no need to parse the header - the offset can be computed using the CU's DWARF format (32 or 64) to compute offset entry sizes, and then the list parsed at that offset without ever trying to find a rnglist contribution header immediately prior to the rnglists_base.
-
Yaxun (Sam) Liu authored
The option needs to be passed to both host and device compilation. Differential Revision: https://reviews.llvm.org/D88550
-
Yaxun (Sam) Liu authored
By convention the default output file for -E is "-" (stdout). This is expected by tools like ccache, which uses output of -E to determine if a file and its dependence has changed. Currently clang does not use stdout as default output file for -E for HIP, which causes ccache not working. This patch fixes that. Differential Revision: https://reviews.llvm.org/D88730
-
Yaxun (Sam) Liu authored
recommit 64f7790e after fixing hip-device-libs.hip.
-
Yaxun (Sam) Liu authored
This reverts commit 64f7790e due to regression in hip-device-libs.hip.
-
Yaxun (Sam) Liu authored
Add an option --gpu-instrument-lib= to allow users to specify an instrument device library. This is for supporting -finstrument in device code for debugging/profiling tools. Differential Revision: https://reviews.llvm.org/D88557
-
David Blaikie authored
-
Craig Topper authored
[X86] Remove MWAITX_SAVE_EBX pseudo instruction. Always save/restore the full %rbx register even in gnux32. ebx/rbx only needs to be saved when 64-bit registers are supported anyway. It should be fine to save/restore the whole rbx register even in gnux32 where the base is technically just ebx. This matches what we do for cmpxchg16b where rbx is saved/restored regardless of gnux32.
-
David Blaikie authored
-
Yuanfang Chen authored
This is one of the reason for extra invalidations in D84959. In practice, I don't think we have use cases needing this. This simplifies the pipeline a bit and prune corner cases when considering invalidations. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D85676
-
Yuanfang Chen authored
All uses of the file undef the macro already.
-
David Blaikie authored
Few places did this already - refactor them all into a common helper.
-
Fangrui Song authored
i.e. they cannot be unreachable from the entry (which usually indicate usage errors). This change allows the removal of some nullptr checks. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D88758
-
Craig Topper authored
MWAITX doesn't touch EFLAGS so no pseudos should def EFLAGS. The SAVE_EBX/RBX pseudos only needs to def the EBX register that the expansion overwrites. The EAX and ECX registers are only read. The pseudo emitted during isel that is used by the custom inserter shouldn't have any implicit defs or uses since everything is in vregs.
-
Craig Topper authored
These are now emitted by a CustomInserter rather than using a custom inserter themselves.
-
Stephen Neuendorffer authored
This reverts commit e9b87f43. There are issues with macros generating macros without an obvious simple fix so I'm going to revert this and try something different.
-
- Oct 04, 2020
-
-
Arthur Eubanks authored
Some new function parameter attributes are derived under NPM. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D88760
-
Roman Lebedev authored
[NFC][SCEV] Add a test with some patterns where we could treat inttoptr/ptrtoint as semi-transparent
-
David Blaikie authored
Make the dumper & API a bit more informative by using the new tombstone addresses to filter out or otherwise render more explicitly dead code ranges.
-
Nikita Popov authored
-
Mehdi Amini authored
This aligns the behavior with the standard call as well as the LLVM verifier. Reviewed By: ftynse, dcaballe Differential Revision: https://reviews.llvm.org/D88362
-
Nikita Popov authored
Apparently querying dereferenceability of array allocations is being intentionally penalized (https://reviews.llvm.org/D41398), so avoid using them in tests.
-
Martin Storsjö authored
This file seems to have been accidentally added as part of commit 413577a8.
-
Fangrui Song authored
-
LLVM GN Syncbot authored
-
Craig Topper authored
For the wide builtins, pass a single input and output pointer to the builtins. Emit the GEPs and input loads from CGBuiltin.
-
Craig Topper authored
We were taking multiple pointer arguments in the builtin. gcc accepts a single void*. The cast from void* to _m128i* caused the IR generation to assume the pointer was aligned. Instead make the builtin take a single void*, emit i8* GEPs to adjust then cast to <2 x i64>* and perform a store with align of 1.
-