-
Notifications
You must be signed in to change notification settings - Fork 772
LLVM and SPIRV-LLVM-Translator pulldown (WW24) #6249
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
Ctlz is an intrinsic in LLVM but does not have equivalent operations in SPIR-V. Including a decomposition gives an alternative path for these platforms. Reviewed By: NatashaKnk Differential Revision: https://reviews.llvm.org/D126261
This reduces the time emitStabs() takes by about 275ms, or 3% of overall linking time for the project I'm on. Although the parent function is run in parallel, it's one of the slowest tasks in that concurrent batch (I have another optimization for another slow task as well). Differential Revision: https://reviews.llvm.org/D126785
Based on review comments in D110499. Depends on D110499 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D125610
…lang/test/Driver/modules.cpp" This reverts commit 35b1cfc as a dependency of D120540.
This reverts commit 738c20e as a dependency of D120540.
This reverts commit a544710. See discussion in D120540. This breaks C++ Clang modules on Darwin and also more than a dozen tests in the LLDB testsuite. I think we need to be more careful to separate out the enabling of Clang C++ modules and C++20 modules. Either by having -fmodules-ts control the HaveModules flag, or by adding a way to explicitly turn them off.
Adds MVT::v128i2, MVT::v64i4, and implied MVT::i2, MVT::i4. Keeps MVT::i2, MVT::i4 lowering actions as `expand`, which should be removed once targets set this explicitly. Adjusts 11 lit tests to reflect slightly different behavior during DAG combine. Differential Revision: https://reviews.llvm.org/D125247
DXContainer files are structured as parts. This patch adds support for parsing out the file part offsets and file part headers. Reviewed By: kuhar Differential Revision: https://reviews.llvm.org/D124804
Additional test cases for D114487.
This reverts commit 430ac5c. Due to failures in Clang tests. Differential Revision: https://reviews.llvm.org/D125247
This patch adds a the first bits of support for a yaml representation of dxcontainer files. Since the YAML representation's primary purpose is testing infrastructure, the yaml representation supports both verbose and a more friendly format by making computable sizes and offsets optional. If provided they are validated to be correct, otherwise they are computed on the fly during emission. As I expand the format I'll be able to make more size fields optional, and I will continue to make the format easier to work with. Depends on D124804 Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D124944
Reviewed By: Amir Differential Revision: https://reviews.llvm.org/D126808
F18 doesn't accept INTEGER operands to the intrinsic LOGICAL operations; some compilers do. This usage is not portable, and not just because it's non-conforming -- the bit representations of LOGICAL also vary between compilers and options. The "MIL-STD" bit intrinsics IAND() & al. have been avaiable since the late 70's and should be used instead. Differential Revision: https://reviews.llvm.org/D126798
This is failing on an arm32 builder, and it is going to take me a while to debug. To not block further progress I'm disabling this test on arm32 configuraitons.
Support the pattern where a test file uses multiple prefixes per run line: one prefix that is unique to the run line, and additional prefixes that are common with other run lines. Decide on a per-function basis which prefix(es) to emit, based on which run lines have the same output. Move the renaming of vregs earlier, so that we can compare the output as it would actually be printed in check lines. Differential Revision: https://reviews.llvm.org/D126411
Replace "cache+" with "ext-tsp" in all BOLT tests Test Plan: ``` ninja check-bolt grep -rnw . -e "cache+" ``` no more tests containing "cache+" "cache+" and "ext-tsp" are aliases Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D126714
Recently the terminology used has been changed from Exit->Exiting in line with common LLVM loop terminology. Update a remaining use of the old terminology.
…:kIndex The trick of using an empty token in the `FOREVERY_O` x-macro relies on preprocessor behavior which is only standard since C99 6.10.3/4 and C++11 N3290 16.3/4 (whereas it was undefined behavior up through C++03 16.3/10). Since the `ExecutionEngine/SparseTensorUtils.cpp` file is required to be compile-able under C++98 compatibility mode (unlike the C++11 used elsewhere in MLIR), we shouldn't rely on that behavior. Also, using a non-empty suffix helps improve uniformity of the API, since all other primary/overhead suffixes are also non-empty. I'm using the suffix `0` since that's the value used by the `SparseTensorEncoding` attribute for indicating the index overhead-type. Depends On D126720 Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D126724
This is failing on an arm32 builder, and it is going to take me a while to debug. To not block further progress I'm disabling this test on arm32 configuraitons.
Now that we have an AllocTensorOp (previously InitTensorOp) in the bufferization dialect, the InitOp in the sparse dialect is no longer needed. Differential Revision: https://reviews.llvm.org/D126180
The option mdefault-visibility-export-mapping is created to allow mapping default visibility to an explicit shared library export (e.g. dllexport). Exactly how and if this is manifested is target dependent (since it depends on how they map dllexport in the IR). Three values are provided for the option: * none: the default and behavior without the option, no additional export linkage information is created. * explicit: add the export for entities with explict default visibility from the source, including RTTI * all: add the export for all entities with default visibility This option is useful for targets which do not export symbols as part of their usual default linkage behaviour (e.g. AIX), such targets traditionally specified such information in external files (e.g. export lists), but this mapping allows them to use the visibility information typically used for this purpose on other (e.g. ELF) platforms. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D126340
We use the `OffloadBinary` to create binary images of offloading files and their corresonding metadata. This patch changes this to inherit from the base `Binary` class. This allows us to create and insepect these more generically. This patch includes all the necessary glue to implement this as a new binary format, along with added the magic bytes we use to distinguish the offloading binary to the `file_magic` implementation. Reviewed By: tra Differential Revision: https://reviews.llvm.org/D126812
This reverts commit fd5a6ce to fix a crash detected by a buildbot https://lab.llvm.org/buildbot/#/builders/179/builds/3805/steps/11/logs/stdio.
I've gotten tired of updating register allocation changes by hand, let's just autogen this even if we have to duplicate it.
…tern. NFCI Previously we had 3 different isel patterns for every scalar load store instruction. This reduces them to a single ComplexPattern that returns the Base and Offset. Or an offset of 0 if there was no offset identified I've done a similar thing for the 2 isel patterns that match add/or with FrameIndex and immediate. Using the offset of 0, I was also able to remove the custom handler for FrameIndex. Happy to split that to another patch. We might be able to enhance in the future to remove the post-isel peephole or the special handling for ADD with constant added by D126576. A nice side effect is that this removes nearly 3000 bytes from the isel table. Differential Revision: https://reviews.llvm.org/D126932
A new "cache-aware" strategy for tail duplication. Differential Revision: https://reviews.llvm.org/D123050
…o::Syntax (NFC) This is setup for allowing hasAttribute to work for plugin-provided attributes Differential Revision: https://reviews.llvm.org/D126902
CONFLICT (content): Merge conflict in clang/lib/Basic/Attributes.cpp Opaque pointers are still temporarily disabled by default, so I've explicitly re-enabled them in llvm-c-test and unit tests.
An LLVM change in the range 1f06398..80b3dcc caused this test to fail. XFAIL the test while investigating. Original commit: KhronosGroup/SPIRV-LLVM-Translator@dbf3aee
* Fix NVPTX backend build issue * Fix few tests by adding -opaque-pointers explicitly. We are behind upstream on opaque pointers enabling and opaque pointers currently OFF. So explicit flag is required.
This is a relatively large change, as the original pass relied on being able to track the initial bitcast <3 x i64>* to <6 x i32>* to know where to start rewriting. Instead, this patch starts at the final invalid extractelement call and works its way backwards as far as necessary to generate correct code. Original commit: KhronosGroup/SPIRV-LLVM-Translator@83b2dfd
OCLTypeToSPIRV is an analysis required by other passes, so we don't need to run it explicitly. Original commit: KhronosGroup/SPIRV-LLVM-Translator@3cbf128
`clang/lib/AST/ItaniumMangle.cpp` doesn't include any `_t` in the mangled name. Original commit: KhronosGroup/SPIRV-LLVM-Translator@d06c923
It seems to be another remnant of earlier versions of dealing with block types, as it is looking for SPIR-V builtins that have function pointer arguments. With blocks now represented as structs, it seems that nothing will trigger this code any more. In any case, with opaque pointers, this code becomes unnecessary (as the bitcasts that would be deleted won't exist anymore). Original commit: KhronosGroup/SPIRV-LLVM-Translator@1341e54
The change in getScalarOrArrayConstantInt() is not actually exercised by the current test suite, and it may be impossible to exercise it given that the caller of the function relies on the parameter being a GEP of array type. However, this change should correctly deduce the type were it a correct call. The call in SPIRVRegularizeLLVM is of course unnecessary with opaque pointers: addrspacecast can never change the pointee type of a pointer type in such scenarios. Original commit: KhronosGroup/SPIRV-LLVM-Translator@4b415cb
LLVMExports.cmake from already installed packages references files from the mlir-tools package. Original commit: KhronosGroup/SPIRV-LLVM-Translator@9de2805
Signed-off-by: Dmitry Sidorov <[email protected]> Original commit: KhronosGroup/SPIRV-LLVM-Translator@22cf0ea
Original commit: KhronosGroup/SPIRV-LLVM-Translator@6db0f31
Original commit: KhronosGroup/SPIRV-LLVM-Translator@24c5671
Testing is clean. "SYCL :: USM/allocator_rebind.cpp" issue is false-positive due to simultaneous changes in compiler (#6191) and llvm-test-suite (intel/llvm-test-suite#1038) done while this testing was in progress, this testing picked up llvm-test-suite change but not the compiler change. |
/merge |
Sat 04 Jun 2022 08:44:43 PM UTC --- Start to merge the commit into sycl branch. It will take several minutes. |
Sat 04 Jun 2022 08:48:25 PM UTC --- Merge the branch in this PR to base automatically. Will close the PR later. |
LLVM: llvm/llvm-project@dd6bcdb
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@24c5671