-
Notifications
You must be signed in to change notification settings - Fork 756
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
LLVM and LLVM-SPIRV-Translator pulldown #1796
Merged
vladimirlaz
merged 775 commits into
intel:sycl
from
vladimirlaz:private/vlazarev/llvmspirv_pulldown
Jun 4, 2020
Merged
LLVM and LLVM-SPIRV-Translator pulldown #1796
vladimirlaz
merged 775 commits into
intel:sycl
from
vladimirlaz:private/vlazarev/llvmspirv_pulldown
Jun 4, 2020
Conversation
This file contains 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
…r involved Summary: Further develop the buffer size argumentum constraint so it can handle sizes that we can get by multiplying two variables. Reviewers: Szelethus, NoQ, steakhal Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77148
Replace calls to getNumElements() with getElementCount() in order to avoid warnings for scalable vectors. The warnings were discovered by this existing test: test/CodeGen/AArch64/sve-gep.ll Differential revision: https://reviews.llvm.org/D80782
cmake configure fails when it tries to setup target for llvm_vcsrevision_h This happens only when source is checked out using repo in a read only filesystem, because cmake tries to create `.git/logs/HEAD` file. This patch: 1. Recovers from failure gracefully. 2. Ensures that VCSRevision.h is successfully created and updated in above scenarios. Differential Revision: https://reviews.llvm.org/D79400
Summary: Once we found a matching FunctionDecl for the given summary then we validate the given constraints against that FunctionDecl. E.g. we validate that a NotNull constraint is applied only on arguments that have pointer types. This is needed because when we matched the signature of the summary we were working with incomplete function types, i.e. some intricate type could have been marked as `Irrelevant` in the signature. Reviewers: NoQ, Szelethus, balazske Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77658
Summary: unittests/AST/Language.h defines some helpers that we would like to reuse in other tests, for example, in tests for syntax trees. Reviewers: sammccall Reviewed By: sammccall Subscribers: mgorny, martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80792
Summary: Diagnostic is emitted if some declaration of unsupported type declaration is used inside device code. Memcpy operations for structs containing member with unsupported type are allowed. Fixed crash on attempt to emit diagnostic outside of the functions. The approach is generalized between SYCL and OpenMP. CUDA/OMP deferred diagnostic interface is going to be used for SYCL device. Reviewers: rsmith, rjmccall, ABataev, erichkeane, bader, jdoerfert, aaron.ballman Reviewed By: jdoerfert Subscribers: guansong, sstefan1, yaxunl, mgorny, bader, ebevhan, Anastasia, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74387
As LLVM has moved from SVN to git, there is no need to keep SVN related code. Also, this code piece was never used. Differential Revision: https://reviews.llvm.org/D79400
…ription SUMMARY: when there are two symbol has the same address. llvm-objdump -D -symbol-description will select symbol based on the following rule: 1. using Label first if there is a Label symbol. 2. If there is not Label, using a symbol which has Storage Mapping class. 3. if more than one symbol has storage mapping class, put the TC0 has the low priority, for other storage mapping class , compare based on the value. Reviewers: James Henderson ,hubert.reinterpretcast, Differential Revision: https://reviews.llvm.org/D78387
These patterns for i8 and i16 VMLA's were missing. They end up from legalized vector.reduce.add.v8i16 and vector.reduce.add.v16i8, and although the instruction works differently (the mul and add are performed in a higher precision), I believe it is OK because only an i8/i16 are demanded from them, and so the results will be the same. At least, they pass any testing I can think to run on them. There are some tests that end up looking worse, but are quite artificial due to passing half vector types through a call boundary. I would not expect the vmull to realistically come up like that, and a vmlava is likely better a lot of the time. Differential Revision: https://reviews.llvm.org/D80524
The ARM specific code was trying to determine endianness using the `__LITTLE_ENDIAN__` macro which is not guaranteed to be defined. When not defined, it makes libunwind to build the big-endian code even when the compiler builds for a little-endian target. This change allows building libunwind with the `musl-gcc` toolchain which does not define `__LITTLE_ENDIAN__`. Use `__BYTE_ORDER__` instead. Patch by Idan Freiberg!
…nstalled One can have multiple simulator runtimes installed, supporting various generations of OSs. The logic in TestAppleSimulatorOSType might select a rnutime older than the one targeted by the current tools, preventing the executable from running. This commit changes the test to look for the most recent runtime available instead.
The two "2sin" test cases were identical to the "sin_2x" test cases just above.
Summary: In this patch I am trying to get rid of the `Irrelevant` types from the signatures of the functions from the standard C library. For that I've introduced `lookupType()` to be able to lookup arbitrary types in the global scope. This makes it possible to define the signatures precisely. Note 1) `fread`'s signature is now fixed to have the proper `FILE *restrict` type when C99 is the language. Note 2) There are still existing `Irrelevant` types, but they are all from POSIX. I am planning to address those together with the missing POSIX functions (in D79433). Reviewers: xazax.hun, NoQ, Szelethus, balazske Subscribers: whisperity, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80016
Make sure we only ask for the number of elements after we've bailed out for scalable vectors. Differential revision: https://reviews.llvm.org/D80632
Errors spotted with use of: https://reviews.llvm.org/D68233
Errors spotted with use of: https://reviews.llvm.org/D68233
Errors spotted with use of: https://reviews.llvm.org/D68233
This matcher was always returning true for the different results of a same instruction. Differential Revision:
Errors spotted with use of: https://reviews.llvm.org/D68233
optimizations As discussed in the thread http://lists.llvm.org/pipermail/llvm-dev/2020-May/141838.html, some bit field access width can be reduced by ReduceLoadOpStoreWidth, some can't. If two accesses are very close, and the first access width is reduced, the second is not. Then the wide load of second access will be stalled for long time. This patch add command line options to guard ReduceLoadOpStoreWidth and ShrinkLoadReplaceStoreWithStore, so users can use them to disable these store width reduction optimizations. Differential Revision: https://reviews.llvm.org/D80745
Don't run tests that use thread sanitizer inside an address-sanitized LLDB. The tests don't support that configuration. Incidentally they were skipped on green dragon for a different reason, so this hasn't come up there before.
Don't run tests that use undefined behavior sanitizer inside an address-sanitized LLDB. The tests don't support that configuration. Incidentally they were skipped on green dragon for a different reason, so this hasn't come up there before.
This add constant folding for all the integer vector reduce intrinsics, providing that the argument is a constant vector. zeroinitializer always produces 0 for all intrinsics, and other values can be handled with APInt operators. Differential Revision: https://reviews.llvm.org/D80516
Align attributes are now visible.
Align attributes are now visible.
Reviewers: bollu, efriedma, david-arm, fpetrogalli, gchatelet Reviewed By: fpetrogalli Subscribers: tschuett, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80341
Since on AIX, our strategy is to not use -u to suppress any undefined symbols, we need to emit .extern for the symbols with AvailableExternally linkage. Differential Revision: https://reviews.llvm.org/D80642
)" Signed-off-by: Andrew Savonichev <[email protected]>
Added support for `SPV_KHR_float_controls` extension to SPIR-V generator part Fixed not emitting required extensions for capabilities
* Refined condition for CapabilityVector16 * Removed redundant assert from SPIRVVectorShuffle This assert is redundant because the allowed size of Components is checked by Type. Moreover it can interfere with capabilities allowing non-standart sizes. * Added required capabilities for ExecutionModeSubgroupSize * Added missing float control capabilities to SPIRVIsValidEnum.h
Clang, due to some ABI constraints needs to generate llvm.trap intrinsics. According to the LangRef documentation a trap instruction is lowered to a target's trap instruction or to an abort() function if the target doesn't have a trap instruction. SPIRV has neither a trap nor an abort instruction and no current opcode has the semantics of an abort/trap. Currently the IR to SPIRV translator is crashing when it finds an llvm.trap intrinsic. The solution will require some thoughts on the SPIRV side to decide how to implement an abort instruction. This patch changes the translator so it doesn't crash. This will be revised when a decision is taken. NOTE: clang could eventually not generate an llvm.trap instruction in the current case (non-base destructor of an abstract class needs to be emmitted) but keep in mind that clang might generate an llvm.trap intrinsic some other ways and we might stumble into this issue again. An alternative to this, could be to add an LLVM pass that will get rid of the llvm.trap intrisincs in the code before the SPIRV translator. But having the translator solve this issue is a preferred solution.
Update after LLVM commit llvm/llvm-project@d20bf5a "[DebugInfo] Upgrade DISubrange to support Fortran dynamic arrays" Signed-off-by: Alexey Sotkin <[email protected]>
Fznamznon
reviewed
Jun 3, 2020
AlexeySotkin
previously approved these changes
Jun 3, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
llvm-spirv part looks good to me. Thanks!
Disable check for SYCL CUDA BE until FP16 support is properly reported there (issue#1799)
816febf
to
a4f4fa9
Compare
Fznamznon
approved these changes
Jun 3, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a4f4fa9 looks ok.
jsji
pushed a commit
that referenced
this pull request
Jun 27, 2024
It was implemented via new decoration, which is not correct. Instead it should be Function Parameter Attribute decoration. In this commit starts fixing this in step-by-step manner. Signed-off-by: Sidorov, Dmitry <[email protected]> Co-authored-by: Maksimova, Viktoria <[email protected]> Original commit: KhronosGroup/SPIRV-LLVM-Translator@0db0f98bfab5b25
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: 89d48cc
LLVM-SPIRV-Translator: KhronosGroup/SPIRV-LLVM-Translator@0d1a32e