- Oct 06, 2020
-
-
Simon Pilgrim authored
-
- Oct 05, 2020
-
-
Louis Dionne authored
This reverts commit c7d4aa71. I am still investigating the issue, but it looks like that commit has an interaction with ld64 that causes new/delete weak re-exports not to work properly anymore. This is weird because this commit did not touch the exports of new/delete -- I am still investigating.
-
Christian Sigg authored
The previous code did the lowering to alloca, malloc, and aligned_malloc in a single class with different code paths that are somewhat difficult to follow. This change moves the common code to a base class and has a separte derived class per lowering target that contains the specifics. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88696
-
Michael Kruse authored
Motivated by D88183, this seeks to clarify the current loop nomenclature with added illustrations, examples for possibly unexpected situations (infinite loops not part of the "parent" loop, logical loops sharing the same header, ...), and clarification on what other sources may consider a loop. The current document also has multiple errors that are fixed here. Some selected errors: * Loops a defined as strongly-connected components. A component a partition of all nodes, i.e. a subloop can never be a component. That is, the document as it currently is only covers top-level loops, even it also uses the term SCC for subloops. * "a block can be the header of two separate loops at the same time" (it is considered a single loop by LoopInfo) * "execute before some interesting event happens" (some interesting event is not well-defined) Reviewed By: baziotis, Whitney Differential Revision: https://reviews.llvm.org/D88408
-
Wenlei He authored
As was brought up in D87169 by @craig.topper we shouldn't map llvm.sqrt to svml since there is a faster native instruction. https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sqrt_p&expand=5824,5823,5356,5823,5825,5365,5356 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D88620
-
Joseph Huber authored
Summary: This patch adds an error to Clang that detects if OpenMP offloading is used between two architectures with incompatible pointer sizes. This ensures that the data mapping can be done correctly and solves an issue in code generation generating the wrong size pointer. This patch adds a new lit substitution, %omp_powerpc_triple that, if the system is 32-bit or 64-bit, sets the powerpc triple accordingly. This was required to fix some OpenMP tests that automatically populated the target architecture. Reviewers: jdoerfert Subscribers: cfe-commits guansong sstefan1 yaxunl delcypher Tags: OpenMP clang LLVM Differential Revision: https://reviews.llvm.org/D88594
-
Joachim Protze authored
The worker thread can start execution of the task before creation of the second task Fixes the spurious failure reported in https://reviews.llvm.org/D61657
-
Jonas Paulsson authored
Support VRI, VRR, VRS, VRV, VRX, VSI instruction formats with the .insn directive. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D88357
-
Sam Tebbs authored
This folds a select_cc or select(set_cc) of a max or min vector reduction with a scalar value into a VMAXV or VMINV. Differential Revision: https://reviews.llvm.org/D87836 -
Nicolas Vasilache authored
This canonicalization is the counterpart of MemRefCastOp -> LinalgOp but on tensors. This is needed to properly canonicalize post linalg tiling on tensors. Differential Revision: https://reviews.llvm.org/D88729
-
Florian Hahn authored
Update the code responsible for deleting VPBBs and recipes to properly update users and release operands. This is another preparation for D84680 & following patches towards enabling modeling def-use chains in VPlan.
-
Simon Pilgrim authored
[Parser] ParseMicrosoftAsmStatement - Replace bit '|' operator with logical '||' operator. (PR47071) Fixes static analysis warning.
-
Haojian Wu authored
This will be used in rename for doing basic name validation. Differential Revision: https://reviews.llvm.org/D88810
-
David Green authored
This just reruns the update script to add the new [[LOOP0:!llvm.loop !.*]] checks to remove them from other diffs.
-
Simon Pilgrim authored
Fixes OSS Fuzz #26135
-
Gabor Marton authored
Differential Revision: https://reviews.llvm.org/D88665
-
Carl Ritson authored
-
Dmitry Preobrazhensky authored
This change implements generation of a function which may be used by a backend to check if a given instruction is supported for a specific subtarget. Reviewers: sdesmalen Differential Revision: https://reviews.llvm.org/D88214
-
Haojian Wu authored
-
Haojian Wu authored
We should not capture the type if the function return type is undeduced. Reviewed By: adamcz Differential Revision: https://reviews.llvm.org/D87350
-
David Spickett authored
This reverts commit c65627a1. The test immediately after the new invalid symbol test was failing on Windows. This was because when we called VirtualQueryEx to get the region info for 0x0, even if it succeeded we would call GetLastError. Which must have picked up the last error that was set while trying to lookup "not_an_address". Which happened to be 2. ("The system cannot find the file specified.") To fix this only call GetLastError when we know VirtualQueryEx has failed. (when it returns 0, which we were also checking for anyway) Also convert memory region to an early return style to make the logic clearer. Reviewed By: labath, stella.stamenova Differential Revision: https://reviews.llvm.org/D88229
-
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
-