-
Notifications
You must be signed in to change notification settings - Fork 787
LLVM and SPIRV-LLVM-Translator pulldown (WW28) #4054
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add definitions for Hexagon, Hexagon circular/bit-reverse and HVX intrinsics.
Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D105103
This patch changes return type of tryCandidate from void to bool: 1. Methods in some targets already follow this convention. 2. This would help if some target wants to re-use generic code. 3. It looks more intuitive if these try-method returns the same type. We may need to change return type of them from bool to some enum further, to make it less confusing. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D103951
…y 'IsFullLTO' I.e. it will be `false` for thin lto.
While on regular Linux system (Fedora 34 GA, not updated): * thread #1, name = '1', stop reason = hit program assert frame #0: 0x00007ffff7e242a2 libc.so.6`raise + 322 frame #1: 0x00007ffff7e0d8a4 libc.so.6`abort + 278 frame #2: 0x00007ffff7e0d789 libc.so.6`__assert_fail_base.cold + 15 frame #3: 0x00007ffff7e1ca16 libc.so.6`__assert_fail + 70 * frame intel#4: 0x00000000004011bd 1`main at assert.c:7:3 On Fedora 35 pre-release one gets: * thread #1, name = '1', stop reason = signal SIGABRT * frame #0: 0x00007ffff7e48ee3 libc.so.6`pthread_kill@GLIBC_2.2.5 + 67 frame #1: 0x00007ffff7dfb986 libc.so.6`raise + 22 frame #2: 0x00007ffff7de5806 libc.so.6`abort + 230 frame #3: 0x00007ffff7de571b libc.so.6`__assert_fail_base.cold + 15 frame intel#4: 0x00007ffff7df4646 libc.so.6`__assert_fail + 70 frame intel#5: 0x00000000004011bd 1`main at assert.c:7:3 I did not write a testcase as one needs the specific glibc. An artificial test would just copy the changed source. Reviewed By: mib Differential Revision: https://reviews.llvm.org/D105133
Add helpers to facilitate adding arguments and results to operations that implement the `FunctionLike` trait. These operations already have a convenient argument and result *erasure* mechanism, but a corresopnding utility for insertion is missing. This introduces such a utility.
Move the OpDSL doc to a linalg sub folder and updated the integration in the main linalg documentation. Differential Revision: https://reviews.llvm.org/D105188
Differential Revision: https://reviews.llvm.org/D104229
Adds support for both synchronous and asynchronous calls to wrapper functions using SPS (Simple Packed Serialization). Also adds support for wrapping functions on the JIT side in SPS-based wrappers that can be called from the executor. These new methods simplify calls between the JIT and Executor, and will be used in upcoming ORC runtime patches to enable communication between ORC and the runtime.
This patch has not been reviewed and was commited by accident. This reverts commit 788a5d4.
Previously `LValueToRValueBitCast`s were modeled in the same way how a regular `BitCast` was. However, this should not produce an l-value. Modeling bitcasts accurately is tricky, so it's probably better to model this expression by binding a fresh conjured value. The following code should not result in a diagnostic: ```lang=C++ __attribute__((always_inline)) static inline constexpr unsigned int_castf32_u32(float __A) { return __builtin_bit_cast(unsigned int, __A); // no-warning } ``` Previously, it reported `Address of stack memory associated with local variable '__A' returned to caller [core.StackAddressEscape]`. Differential Revision: https://reviews.llvm.org/D105017 Reviewed by: NoQ, vsavchenko
It seems like ExprEngine::handleLVectorSplat() was used at only 2 places. It might be better to directly inline them for readability. It seems like these cases were not covered by tests according to my coverage measurement, so I'm adding tests as well, demonstrating that no behavior changed. Besides that, I'm handling CK_MatrixCast similarly to how the rest of the unhandled casts are evaluated. Differential Revision: https://reviews.llvm.org/D105125 Reviewed by: NoQ
https://bugs.llvm.org/show_bug.cgi?id=50727 When processing C# Lambda expression in the indentation can goes a little wrong, resulting the the closing } being at the wrong indentation level and meaning the remaining part of the file is incorrectly indented. This can be a fairly common pattern for when C# wants to peform a UI action from a thread, and it wants to invoke that action on the main thread Reviewed By: exv, jbcoe Differential Revision: https://reviews.llvm.org/D104388
Since I had some fun understanding how to properly use llvm::Expected<T> I added some code examples that I would have liked to see when learning to use it. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D105014
This extends the effects of [[ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1825r0.html | P1825 ]] to all C++ standards from C++11 up to C++20. According to Motion 23 from Cologne 2019, P1825R0 was accepted as a Defect Report, so we retroactively apply this all the way back to C++11. Note that we also remove implicit moves from C++98 as an extension altogether, since the expanded first overload resolution from P1825 can cause some meaning changes in C++98. For example it can change which copy constructor is picked when both const and non-const ones are available. This also rips out warn_return_std_move since there are no cases where it would be worthwhile to suggest it. This also fixes a bug with bailing into the second overload resolution when encountering a non-rvref qualified conversion operator. This was unnoticed until now, so two new test cases cover these. Signed-off-by: Matheus Izvekov <[email protected]> Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D104500
Very late in compilation, backends like X86 will perform optimisations like this: $cx = MOV16rm $rax, ... -> $rcx = MOV64rm $rax, ... Widening the load from 16 bits to 64 bits. SEeing how the lower 16 bits remain the same, this doesn't affect execution. However, any debug instruction reference to the defined operand now refers to a 64 bit value, nto a 16 bit one, which might be unexpected. Elsewhere in codegen, there's often this pattern: CALL64pcrel32 @foo, implicit-def $rax %0:gr64 = COPY $rax %1:gr32 = COPY %0.sub_32bit Where we want to refer to the definition of $eax by the call, but don't want to refer the copies (they don't define values in the way LiveDebugValues sees it). To solve this, add a subregister field to the existing "substitutions" facility, so that we can describe a field within a larger value definition. I would imagine that this would be used most often when a value is widened, and we need to refer to the original, narrower definition. Differential Revision: https://reviews.llvm.org/D88891
Cross function boundary bufferization support is added. This is enabled by cross-function boundary alias analysis, for which the bufferization process is extended: it can now modify the BufferizationAliasInfo as new ops are introduced. A number of simplifying assumptions are made: 1. by default we bufferize to the most dynamic strided memref type, further memref::CastOp canonicalizations are expected to clean up the IR. 2. in the current implementation, the stride information is always erased at function boundaries. A subsequent pass will be required to analyze the meet of all call ops to a function and decide whether more static buffer types can be used. This will potentially clone functions when it is deemed profitable to do so (e.g. when the stride-1 dimension may vary). 3. external function always bufferize to the most dynamic strided memref version. This may require special annotations for specifying that particular operands of top-level functions have contiguous buffer layout. An alternative to point 3. would be to support tensor layout annotations, which is currently not supported in MLIR. Differential revision: https://reviews.llvm.org/D104873
…ersion before legalized types. Move the (SSE-only) generic, legalized type conversion matching after the specific,custom conversion cases, allowing us to properly provide cost overrides. The next step will be to clean up some of the weird existing costs and then to enable AVX+ legalized costs, which will let us strip out a lot of the cost tables entries.
This seems to have been forgotten. The result was the title of pages like https://llvm.org/docs/ReleaseNotes.html Was: <title>LLVM 13.0.0 Release Notes &intel#8212; LLVM 12 documentation</title> Reviewed By: tstellar Differential Revision: https://reviews.llvm.org/D105189
Since gather lowering can now lower to nodes that may need expansion via the vector legalizer, do MGATHER lowering via vector legalizer. Additionally, as part of adding passthru support for fixed typed gathers, fix passthru support for scalable types. Depends on D104910 Differential Revision: https://reviews.llvm.org/D104217
…itTensor and tensor::CastOp (11/n) Also add an integration test that connects all the dots end to end, including with cast to unranked tensor for external library calls. Differential Revision: https://reviews.llvm.org/D105106
Bring spirv.hpp in sync with ddf3230 ("Merge pull request intel#222 from kpet/github-actions", 2021-06-30) from github.com/KhronosGroup/SPIRV-Headers . This brings the SPV_KHR_bit_instructions and SPV_INTEL_debug_module extension enum values. Drop the internal enum value of the latter. Original commit: KhronosGroup/SPIRV-LLVM-Translator@da11807
/summary:run |
e5d4899
to
ddc8a13
Compare
/summary:run |
8f2a314
to
e31cd0e
Compare
/summary:run |
e85ebef
to
45fe6d2
Compare
/summary:run |
Aligned the test checks after 3eb2158
45fe6d2
to
418a6d6
Compare
/summary:run |
/summary:run |
This PR should be merged together with intel/llvm-test-suite#349 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LLVM: llvm/llvm-project@bcaf57cae82500f
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@da11807