-
Notifications
You must be signed in to change notification settings - Fork 787
LLVM and SPIRV-LLVM-Translator pulldown #2048
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
bader
merged 118 commits into
intel:sycl
from
AlexeySachkov:private/asachkov/llvmspirv-pulldown
Jul 7, 2020
Merged
LLVM and SPIRV-LLVM-Translator pulldown #2048
bader
merged 118 commits into
intel:sycl
from
AlexeySachkov:private/asachkov/llvmspirv-pulldown
Jul 7, 2020
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
Reviewers: hokein, sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82701
This test largely predates MLIR testing guidelines. Update it to match the guidelines. In particular, avoid pattern-matching SSA value names, avoid unnecessary CHECK-NEXT, relax assumptions about the form of SSA names. Value-returning operations are still matched agaist _any_ name in order to check that the operation indeed produces values. Differential Revision: https://reviews.llvm.org/D82656
…r message The error message in the `std.constant` verifier for function-typed constants had the name of the undefined function hardcoded to `bar`. Report the actual name instead. Differential Revision: https://reviews.llvm.org/D82666
Before this patch, the diagnostic message is printed to `errs()` directly, which makes it difficult to use `FailedWithMessage()` in unit testing. In this patch, we add a custom error handler for YAMLParser, which helps collect diagnostic messages and make it easy to use `FailedWithMessage()` to check error messages. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D82630
Added some sanity checks to figure out the cause of a (seemingly unrelated) test failure on mac. These can be removed should no issues arise on that platform again.
When the shape is derived from a tensor argument the shape extent can be derived directly from that tensor with `std.dim`. This lowering pattern circumvents the necessity to materialize the shape in memory. Differential Revision: https://reviews.llvm.org/D82644
…ible When the origin of a shape is an extent tensor the operation `get_extent` can be lowered directly to `extract_element`. This choice circumvents the necessity to materialize the shape in memory. Differential Revision: https://reviews.llvm.org/D82645
This reverts commit 37cc4fa. More investigation needed
`ShAmt / 8` can be a non power of two, this can lead to an invalid alignment. context: https://reviews.llvm.org/D41350#inline-749165 Differential Revision: https://reviews.llvm.org/D82565
SHT_GROUP sections contain a reference to a symbol indicating their "signature" symbol. The symbol table containing this symbol is referred to by the group section's sh_link field. If llvm-objcopy is instructed to remove the symbol table, it will emit an error. This fixes https://bugs.llvm.org/show_bug.cgi?id=46153. Reviewed By: jhenderson, Higuoxing Differential Revision: https://reviews.llvm.org/D82274
…tion pointers `llvm.mlir.constant` was originally introduced as an LLVM dialect counterpart to `std.constant`. As such, it was supporting "function pointer" constants derived from the symbol name. This is different from `std.constant` that allows for creation of a "function" constant since MLIR, unlike LLVM IR, supports this. Later, `llvm.mlir.addressof` was introduced as an Op that obtains a constant pointer to a global in the LLVM dialect. It naturally extends to functions (in LLVM IR, functions are globals) and should be used for defining "function pointer" values instead. Fixes PR46344. Differential Revision: https://reviews.llvm.org/D82667
…le (reland) Summary: The patch makes the index type lowering of the GPU to NVVM/ROCDL conversion configurable. It introduces a pass option that controls the bitwidth used when lowering index computations and uses the LowerToLLVMOptions structure to control the Standard to LLVM lowering. This commit fixes a use-after-free bug introduced by the reverted commit d10b1a3. It implements the following changes: - Added a getDefaultOptions method to the LowerToLLVMOptions struct that returns a reference to statically allocated default options. - Use the getDefaultOptions method to provide default LowerToLLVMOptions (instead of an initializer list). - Added comments to clarify the required lifetime of the LowerToLLVMOptions Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D82475
Summary: These tests show a bug: post-order traversal introduces an extra call to WalkUp*, that is not present in pre-order traversal. I'm fixing this bug in a follow-up commit. Reviewers: ymandel, eduucaldas Reviewed By: ymandel, eduucaldas Subscribers: gribozavr2, mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82485
Reviewed by: runlieb Differential Revision: https://reviews.llvm.org/D82452
Pre-commit for D82257, this adds a DemandedElts arg to ShrinkDemandedConstant/targetShrinkDemandedConstant which will allow future patches to (optionally) add vector support.
…tests Summary: Previously, AST Matchers tests were using a custom way to run a test with a specific C++ standard version. I'm migrating them to a shared infrastructure to specify a Clang target from libClangTesting. I'm also changing tests for AST Matchers to run in multiple language standards versions, and under multiple triples that have different behavior with regards to templates. To keep the size of the patch manageable, in this patch I'm only migrating one file to get the process started and get feedback on this approach. One caveat is that increasing the number of test configuration does significantly increase the runtime of AST Matchers tests. On my machine, the test runtime increases from 2.0 to 6.0s. I think it is worth the improved test coverage. Reviewers: jdoerfert, ymandel Reviewed By: ymandel Subscribers: gribozavr2, jfb, sstefan1, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D82179
Summary: performPostLD1Combine will introduce either a LD1LANEpost or LD1DUPpost node, which will cause selection failure if the return type is a scalable vector. Reviewers: sdesmalen, c-rhodes, efriedma Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82670
Reviewers: sdesmalen, kmclaughlin, efriedma, david-arm, fpetrogalli Reviewed By: sdesmalen, fpetrogalli Differential Revision: https://reviews.llvm.org/D82391
…pcodes If a constant is only allsignbits in the demanded/active bits, then sign extend it to an allsignbits bool pattern for OR/XOR ops. This also requires SimplifyDemandedBits XOR handling to be modified to call ShrinkDemandedConstant on any (non-NOT) XOR pattern to account for non-splat cases. Next step towards fixing PR45808 - with this patch we now get a <-1,-1,0,0> v4i64 constant instead of <1,1,0,0>. Differential Revision: https://reviews.llvm.org/D82257
This patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Differential Revision: https://reviews.llvm.org/D82752
This patch is part of a series to introduce an Alignment type. See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this patch for the introduction of the type: https://reviews.llvm.org/D64790 Differential Revision: https://reviews.llvm.org/D82743
Commit a945037 moved the printing of the "PLEASE submit a bug report" message to the crash handler, but that means we don't print it when forcing a crash using FORCE_CLANG_DIAGNOSTICS_CRASH. Fix this by adding a function to get the bug report message and printing it when forcing a crash. Differential Revision: https://reviews.llvm.org/D81672
This patch makes access to `this` as a `T` uniform accross the file. Differential Revision: https://reviews.llvm.org/D82648
This patch proposes a naming convention for operations that take a general predicate (and are thus predicated) that specifies what happens to the false lanes. Currently the _PRED suffix is used, which doesn't really say much other than that it takes a predicate. In some instances this means it has merging predication and in other cases it means zeroing-predication. This patch also changes the order of operands to AArch64ISD::DUP_MERGE_PASSTHRU, to pass the predicate as the first operand, which is in line with all other predicates nodes. It takes the passthru value as an explicit passthru value, which is always passed as the last operand. Reviewers: paulwalker-arm, cameron.mcinally, eli.friedman, dancgr, efriedma Reviewed By: paulwalker-arm Tags: #llvm Differential Revision: https://reviews.llvm.org/D81850
It simplifies getting generic argument types from intrinsics. Differential Revision: https://reviews.llvm.org/D81084
Context: -------- There are places in LLVM where we need to pack typed fields into opaque values. For instance, the `XXXInst` classes in `llvm/include/llvm/IR/Instructions.h` that extract informations from `Value::SubclassData` via `getSubclassDataFromInstruction()`. The bit twiddling is done manually: this impairs readability and prevent consistent handling of out of range values (e.g. https://github.com/llvm/llvm-project/blob/435b458ad0a4630e6126246a6865748104ccad06/llvm/include/llvm/IR/Instructions.h#L564) More importantly, the bit pattern is scattered throughout the implementation making it hard to pack additionnal fields or check for overlapping bits. Design decisions: ----------------- The Bitfield structs are to be declared together so it is clear which bits are used or not. The code is designed with simplicity in mind, hence a few limitations: - Storage is limited to a single integer, - Enum values have to be `unsigned`, - Storage type has to be `unsigned`, - There are no automatic detection of overlapping fields (packed bitfield declaration should help though), - The interface is C like so `storage` needs to be passed in everytime (code is simpler and lifetime considerations more obvious) RFC: http://lists.llvm.org/pipermail/llvm-dev/2020-June/142196.html Differential Revision: https://reviews.llvm.org/D81580
Differential review: https://reviews.llvm.org/D82790
Current Affine comparison builders, which use operator overload, default to signed comparison. This creates the possibility of misuse of these builders and potential correctness issues when dealing with unsigned integers. This change makes the distinction between signed and unsigned comparison builders and forces the caller to make a choice between the two. Differential Revision: https://reviews.llvm.org/D82323
instead of postfix-expressions, and improve error recovery for postfix operators after unary-expressions. This covers nullptr, __null, and some calls to type traits with special parsing rules. We would previously not parse a postfix-expression suffix for these expressions, so would reject expressions such as __is_trivial(int)["foo"]. For the case where a postfix-expression suffix is *not* permitted after a unary-expression (for example, after a new-expression or sizeof expression), produce a diagnostic if one appears there anyway. That's always ill-formed, but previously produced very bad diagnostics.
Summary: add_unittest was checking that the result of get_target_property was not "NOTFOUND", but despite what the documentation says, get_target_property returns <the var>-NOTFOUND on failure. Reviewers: efriedma, thakis, serge-sans-paille, chandlerc Reviewed By: serge-sans-paille Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81762
- Also adopt variadic llvm::isa<> in more places. - Fixes https://bugs.llvm.org/show_bug.cgi?id=46445 Differential Revision: https://reviews.llvm.org/D82769
The `-fuse-ld=lld` check might succeed because there's a system lld, but that lld may be out-of-date which would cause any tests that attempt to use for LTO fail. This was observed on some of the bots. Differential Revision: https://reviews.llvm.org/D81629
Reviewers: efriedma, pcc, gchatelet, kmclaughlin, sdesmalen Reviewed By: sdesmalen Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D82241
In XCode 12, ld64 got support for @files, in addition to the old -filelist mechanism. Response files allow passing all command-line arguments to the linker via a file, rather than just filenames, and is therefore preferred. Because of the way response-file support is currently implemented as part of the Tool class in Clang, this change requires an ugly backdoor function to access Args. A follow-up commit fixes this, but I've ordered this change first, for easier backportability. I've added no tests here, because unfortunately, there don't appear to be _any_ response-file emission automated tests, and I don't see an obvious way to add them. I've tested that this change works as expected locally. Differential Revision: https://reviews.llvm.org/D82777
specified at Command creation, rather than as part of the Tool. This resolves the hack I just added to allow Darwin toolchain to vary its level of support based on `-mlinker-version=`. The change preserves the _current_ settings for response-file support. Some tools look likely to be declaring that they don't support response files in error, however I kept them as-is in order for this change to be a simple refactoring. Differential Revision: https://reviews.llvm.org/D82782
CONFLICT (content): Merge conflict in clang/lib/Driver/ToolChains/Clang.cpp
Updated RUN line to avoid leaving temporary files in source tree after launching clang LIT tests
…llows to use UniformConstant and CrossWorkgroup storage classes for VectorCompute globals
Patch fixes github issue: KhronosGroup/SPIRV-LLVM-Translator#496
Remove any remaining references to LLVM SVN/trunk and update any links that were still pointing to the old LLVM split repository mirrors. Elaborate on tags and how they match up with LLVM. Line-wrap the affected paragraphs to 80 characters.
* Fix incorrect usage of StringRef `setName' function invalidates the name returned by `getName', so `InstName' is invalid. Since `takeName' is called later, we can avoid this renaming altogether. Signed-off-by: Andrew Savonichev <[email protected]>
bb-sycl
pushed a commit
that referenced
this pull request
Apr 13, 2021
Currently the ARM backend only accpets constant expressions as the immediate operand in load and store instructions. This allows the result of symbolic expressions to be used in memory instructions. For example, 0: .space 2048 strb r2, [r0, #(.-0b)] would be assembled into the following instructions. strb r2, [r0, #2048] This only adds support to ldr, ldrb, str, and strb in arm mode to address the build failure of Linux kernel for now, but should facilitate adding support to similar instructions in the future if the need arises. Link: ClangBuiltLinux/linux#1329 Reviewed By: peter.smith, nickdesaulniers Differential Revision: https://reviews.llvm.org/D98916
kbenzie
pushed a commit
to kbenzie/intel-llvm
that referenced
this pull request
Feb 17, 2025
Use reference counting on factories
Chenyang-L
pushed a commit
that referenced
this pull request
Feb 18, 2025
Use reference counting on factories
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@4772b99
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@1dfdb91