-
Notifications
You must be signed in to change notification settings - Fork 787
LLVM and SPIRV-LLVM-Translator pulldown (WW20) #6109
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This patch fixes the string to long double tests for systems that use long double is double, and don't support uint128. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D124803
The printf implmentation is made up of three main pieces, the parser, the converter, and the writer. This patch adds the implementation for the writer, as well as the function for writing to a string, along with tests. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D124421
Per feedback on D123086 after submit. Also added a test for vec_malloc et al attribute inference to show it's doing the right thing. The new tests exposed a defect, corrected by adding vec_free to the list of free functions in MemoryBuiltins.cpp, which had been overlooked all the way back in D94710, over a year ago. Differential Revision: https://reviews.llvm.org/D124859
After cd0a588, unittest would run in shard mode where many tests share a single process. Need to clear some global state to make the test results stable. Reviewed By: thetruestblue, rsundahl Differential Revision: https://reviews.llvm.org/D124591
Also adds conversions for those ops to math + arith. Differential Revision: https://reviews.llvm.org/D124773
This adds a setting (`target.max-children-depth`) that will provide a default value for the `--depth` flag used by `expression` and `frame variable`. The new setting uses the same default that's currently fixed in source: `UINT32_MAX`. This provides two purposes: 1. Allowing downstream forks to provide a customized default. 2. Allowing users to set their own default. Following `target.max-children-count`, a warning is emitted when the max depth is reached. The warning lets users know which flags or settings they can customize. This warning is shown only when the limit is the default value. rdar://87466495 Differential Revision: https://reviews.llvm.org/D123954
If a randomized structure has an initializer with a dedicated initializer in it, the field initialzed by that dedicated initializer may end up at the end of the RecordDecl. This however may skip the random layout initization check. struct t { int a, b, c, d, e; } x = { .a = 2, 4, 5, 6 }; Let's say that "a" is lands as the last field after randomization. The call to CheckDesignatedInitializer sets the iterator to the end of the initializer list. During the next iteration of the initializer list check, it detects that and fails to issue the error about initializing a randomized struct with non-designated initializer. Instead, it issues an error about "excess elements in struct initializer", which is confusing under these circumstances. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D124694
This patch implements a standard GLR parsing algorithm, the core piece of the pseudoparser. - it parses preprocessed C++ code, currently it supports correct code only and parse them as a translation-unit; - it produces a forest which stores all possible trees in an efficient manner (only a single node being build for per (SymbolID, Token Range)); no disambiguation yet; Reland with a fix for g++'s -fpermissive error on previous declaration `GSS& GSS;`. Differential Revision: https://reviews.llvm.org/D121150
Differential Revision: https://reviews.llvm.org/D124818
Differential Revision: https://reviews.llvm.org/D124861
PseudoObjectExpr is only used for ObjC properties and subscripts. For now, these assumptions are generally correct, but that's not part of the design of PseudoObjectExpr. No functionality change intended.
Fix one test (enum.c) in ExtractAPI to use %clang_cc1 and -verify instead of calling the full driver and FileCheck. This is an example for my comment from https://reviews.llvm.org/D121873. Differential Revision: https://reviews.llvm.org/D124634
Address X86 tests failures on AArch64 builder: https://lab.llvm.org/staging/#/builders/211/builds/82 Inputs fail to cross-compile due to a missing header: ``` /usr/include/stdio.h:27:10: fatal error: 'bits/libc-header-start.h' file not found #include <bits/libc-header-start.h> ``` As inputs are linked with `-nostdlib` anyway, don't include stdio.h. Reviewed By: yota9 Differential Revision: https://reviews.llvm.org/D124863
This reverts commit 88b6d32.
This patch tries to fix sporadic test failure after the change https://reviews.llvm.org/D122107. Made the test wait until every thread has at least one loop iteration. Differential Revision: https://reviews.llvm.org/D124812
If alignment specified with align clause is less than natural alignment for list item type, the alignment should be set to the natural alignment. See OMP5.1 specification, page 185, lines 7-10 Differential Revision: https://reviews.llvm.org/D124676
This is an intrinsic version of the existing fold for binops. As a first step, I only allowed min/max, but the code is set up to make adding more intrinsics easy (with more or less than 2 arguments). This (and possible follow-ups) are discussed in issue #46238.
Differential Revision: https://reviews.llvm.org/D124831
Adding lowering for Unary and Binary required several changes due to their unique nature of containing custom code for different "regions" of the sparse structure being operated on. Along with a Kind, a pointer to the Operation is passed along to be merged once the lattice structure is figured out. The original operation is maintained, as it is required for subsequent lattice decisions. However, sparse_tensor.binary has some branches are considered as fully handled and therefore are marked with as kBinaryBranch to distinguish them. A unique aspect of the custom code is that sometimes the desired result is no result at all -- i.e. a user wants overlapping sparse entries to become empty in the output. The solution to this is to return an uninitialized Value(), which is checked and handled elsewhere in the code and results in nothing being written to the output tensor for that case. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D123057
There are only a couple of warnings when compiling with VS on Windows. This fixes the last remaining warnings so that we can enable LLVM_ENABLE_WERROR on the mlir windows bot. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D124862
The assertion is to check we always get backedge taken count (`BECount`) of zero when the exit condition is in select form (`isa<BinaryOperation>(ExitCond)`) and the exit limit for the first operand is zero `EL0.ExactNotTaken->isZero()`). However the assertion is checking that the exit condition is NOT in select form. Removing the the whole assertion since we now handle select form in ScalarEvolution::getSequentialMinMaxExpr. Reviewed By: reames, nikic Differential Revision: https://reviews.llvm.org/D122835
This will enable our usual set of element types in external environments, such as PyTACO support. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D124875
This gets identify_magic working correctly for DXContainer files
Fixes #55129
…::lookup. Clients don't care about linkage, and ExecutorAddr is much more ergonomic.
When picking the UnwindPlan row to use to backtrace, off of the zeroth frame, decrement the return pc so we're in the address range of the call instruction. If this is a noretrun function call, the instruction at the "return address" is likely an entirely different basic block with possibly very different unwind rules, and this can cause the backtrace to be incorrect. Differential Revision: https://reviews.llvm.org/D124957 rdar://84651805
…ns ExecutorAddr This was changed in 16dcbb5
The ShouldShiftBeAdded lambda checks if extra space should be added before the wrapped part of a braced list. If the first element of the list is wrapped, no extra space should be added. Fixes #55161. Differential Revision: https://reviews.llvm.org/D124956
This is the easiest tranche of changes: where the pointer element type is usually retrieved by looking a little further afield for the element type, or via scavenging from sret/byval parameters. Original commit: KhronosGroup/SPIRV-LLVM-Translator@33012ca
LLVM commit c99424f ("[IR] Deprecate Type::getPointerElementType() (NFC)", 2022-04-20) caused out-of-tree builds to fail (as these use `-Werror`). Replacing all `Type::getPointerElementType` calls is a longer term effort so turn deprecation errors back into warnings to resume out-of-tree builds. Original commit: KhronosGroup/SPIRV-LLVM-Translator@55d1de8
Most of this tranche of calls were being used to disambiguate between different built-ins that share the same or similar names. The exception is the change in visitCallSPIRVPipeBuiltin, which is a convoluted way of adding a cast to i8 addrspace(4)* if not already i8 addrspace(4)*, so it is instead rewritten to check if a cast needs to be added without querying getPointerElementType. Original commit: KhronosGroup/SPIRV-LLVM-Translator@f727f4d
Return back additional switch for test, that was introduced in intel#5900
/summary:run |
It looks good from the SPIRV side. I will check from the DPCPP tools perspective soon. Thanks. |
Thanks @asudarsa. I don't expect actual reviews in these pulldown PRs as these are usually hundreds of changes coming from upstream projects (llvm or spirv), they've been reviewed and merged there and we just picking these up as is. |
Remaining testing issues were fixed already. |
/merge |
Tue 10 May 2022 09:05:42 PM UTC --- Start to merge the commit into sycl branch. It will take several minutes. |
Tue 10 May 2022 09:09:31 PM UTC --- Merge the branch in this PR to base automatically. Will close the PR later. |
@pvchupin, this PR broke the build on Windows platform.
|
I believe this will be fixed by - #6143 |
LLVM: llvm/llvm-project@8b626a2
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@f727f4d