-
Notifications
You must be signed in to change notification settings - Fork 795
LLVM and SPIRV-LLVM-Translator pulldown #1432
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
vladimirlaz
merged 610 commits into
intel:sycl
from
vladimirlaz:private/vlazarev/llvmspirv_pulldown
Apr 2, 2020
Merged
LLVM and SPIRV-LLVM-Translator pulldown #1432
vladimirlaz
merged 610 commits into
intel:sycl
from
vladimirlaz:private/vlazarev/llvmspirv_pulldown
Apr 2, 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
If the section headers have been removed by a tool such as llvm-objcopy or llvm-strip, previously llvm-readobj/llvm-readelf would not dump the dynamic symbols when --dyn-symbols was specified. However, the nchain value of the DT_HASH data specifies the number of dynamic symbols, so if it is present, we can use that. This patch implements this behaviour. Fixes https://bugs.llvm.org/show_bug.cgi?id=45089. Reviewed by: grimar, MaskRay Differential Revision: https://reviews.llvm.org/D76352
Summary: This is 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 Reviewers: courbet Subscribers: dylanmckay, sdardis, nemanjai, hiraditya, kbarton, asb, rbar, johnrusso, simoncook, sabuasal, niosHD, jrtc27, MaskRay, zzheng, edward-jones, atanasyan, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, Jim, lenary, s.egerton, pzheng, sameer.abuasal, apazos, luismarques, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76551
Summary: This is 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 Reviewers: courbet Subscribers: hiraditya, rogfer01, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76542
Replace single-lane (W... form) vector "multiply and add" and "multiply and subtract" instructions with equivalent floating point instructions whenever possible in SystemZShortenInst. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D76370
This makes it possible for plugin attributes to actually do something, and also removes a lot of boilerplate for simple attributes in SemaDeclAttr.cpp. Differential Revision: https://reviews.llvm.org/D31342
Summary: Align sequential generic type constraints on a type. Indent sequential generic type constraints on different types as continuations. Do not allow '(' and '<' within a generic type constraint to open new scopes. Reviewers: krasimir Subscribers: cfe-commits, MyDeveloperDay Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D76597
Summary: Previously if a type was accessed with a qualifier, RenamerClangTidy wouldn't rename the TypeLoc, this patch addresses this shortfall by trying to find the Unqualified TypeLoc first. Also fixed a broken test case that was dependent on this broken behaviour. Example: ``` struct a{}; void foo(const a&); void foo(a&); void foo(a); void foo(a&&); void foo(const a); ``` exec `-checks=readability-identifier-naming --config="{CheckOptions: [{key: readability-identifier-naming.StructCase, value: CamelCase}]}" -fix` Current Behaviour: ``` struct A{}; void foo(const a&); void foo(A&); void foo(A); void foo(A&&); void foo(const a); ``` Proposed new behaviour: ``` struct A{}; void foo(const A&); void foo(A&); void foo(A); void foo(A&&); void foo(const A); ``` Reviewers: aaron.ballman, gribozavr2, alexfh Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76549
We have some long-standing missing shuffle optimizations that could use this transform via VectorCombine now: https://bugs.llvm.org/show_bug.cgi?id=35454 (and we still don't get that case in the backend either) This function is apparently templated because there's existing code in IR that treats mask values as unsigned and backend code that treats masks values as signed. The mask values are not endian-dependent (as shown by the existing bitcast transform from DAGCombiner). Differential Revision: https://reviews.llvm.org/D76508
CONFLICT (content): Merge conflict in clang/lib/Sema/SemaDeclAttr.cpp
Implement the DWARF register mapping described in llvm/docs/AMDGPUUsage.rst. This enables generating appropriate DWARF register numbers for wave64 and wave32 modes.
… expressions Summary: LLDB keeps statistics of how many expression evaluations are 'successful' and 'failed' which are updated after each expression evaluation (assuming statistics are enabled). From what I understand the idea is that this could be used to define how well LLDB's expression evaluator is working. Currently all expressions are considered successful unless the user passes an explicit positive element counting to the expression command (with the `-Z` flag) and then passes an expression that successfully evaluates to a type that doesn't support element counting. Expressions that fail to parse, execute or any other outcome are considered successful at the moment which means we nearly always have a 100% expression evaluation success rate. This patch makes that expressions that fail to parse or execute to count as failed expressions. We can't know whether the expression failed because of an user error of because LLDB couldn't correctly parse/compile it, but I would argue that this is still an improvement. Assuming that the percentage of valid user expressions stays mostly constant over time (which seems like a reasonable assumption), then this way we can still see if we are doing relatively better/worse from release to release. Reviewers: davide, aprantl, JDevlieghere Reviewed By: aprantl Subscribers: abidh Differential Revision: https://reviews.llvm.org/D76280
…and `std::next()` Whenever the analyzer budget runs out just at the point where `std::advance()`, `std::prev()` or `std::next()` is invoked the function are not inlined. This results in strange behavior such as `std::prev(v.end())` equals `v.end()`. To prevent this model these functions if they were not inlined. It may also happend that although `std::advance()` is inlined but a function it calls inside (e.g. `__advance()` in some implementations) is not. This case is also handled in this patch. Differential Revision: https://reviews.llvm.org/D76361
Summary: Flag '= {' as a braced init list when parsing C# code. Reviewers: krasimir Reviewed By: krasimir Subscribers: cfe-commits, MyDeveloperDay Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D75760
Tweak D76568 so we only combine if it will remove the bit-twiddling. Suggested by @spatel
We've been meaning to remove those targets for a while, and the fix is simple enough cause they're all just aliases to other targets. There's no doubt this commit will break some CI systems, however the fix is trivial. Differential Revision: https://reviews.llvm.org/D76104
…t.env-vars Summary: The TargetProperties constructor invokes a series of callbacks to prime the properties from the default ones. The one callback in charge of updating the inferior environment was commented out because it crashed. The reason for the crash is that TargetProperties is a parent class of Target and the callbacks were invoked using a Target that was not fully initialized. This patch moves the initial callback invocations to a separate function that can be called at the end the Target constructor, thus preventing the crash. One existing test had to be modified, because the initialization of the environment properties now take place at the time the target is created, not at the first use of the environment (usually launch time). The added test checks that the LaunchInfo object returned by the target has been primed with the values from the settings. Reviewers: jingham, labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D76009
Summary: When no arguments or environment is provided to SBTarget::LaunchSimple, make it use the values surrently set in the target properties. You can get the current behavior back by passing an empty array instead. It seems like using the target defaults is a much more intuitive behavior for those APIs. It's unllikely that anyone passed NULL/None to this API after having set properties in order to explicitely ignore them. One direct application of this change is within the testsuite. We have plenty of tests calling LaunchSimple and passing None as environment. If you passed --inferior-env to dotest.py to, for example, set (DY)LD_LIBRARY_PATH, it wouldn't be taken into account. Reviewers: jingham, labath, #libc_abi! Subscribers: libcxx-commits, lldb-commits Tags: #lldb, #libc_abi Differential Revision: https://reviews.llvm.org/D76045
Summary: The interactions between the environment settings (`target.env-vars`, `target.inherit-env`) and the inferior life-cycle are non-obvious today. For example, if `target.inherit-env` is set, the `target.env-vars` setting will be augmented with the contents of the host environment the first time the launch environment is queried (usually at launch). After that point, toggling `target.inherit-env` will have no effect as there's no tracking of what comes from the host and what is a user setting. This patch computes the environment every time it is queried rather than updating the contents of the `target.env-vars` property. This means that toggling the `target.inherit-env` property later will now have the intended effect. This patch also adds a `target.unset-env-vars` settings that one can use to remove variables from the launch environment. Using this, you can inherit all but a few of the host environment. The way the launch environment is constructed is: 1/ if `target.inherit-env` is set, then read the host environment into the launch environment. 2/ Remove for the environment the variables listed in `target.unset-env`. 3/ Augment the launch environment with the contents of `target.env-vars`. This overrides any common values with the host environment. The one functional difference here that could be seen as a regression is that `target.env-vars` will not contain the inferior environment after launch. The patch implements a better alternative in the `target show-launch-environment` command which will return the environment computed through the above rules. Reviewers: labath, jingham Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D76470
This reverts commit f383fb4. It looks like several of our build bots are still using the legacy target names, so we'll change those before we commit this change again.
Not all of these legalize correctly yet.
Summary: Add new generic MIR opcodes G_SADDSAT etc. Add support in IRTranslator for translating the saturating add/subtract intrinsics to the new opcodes. Reviewers: aemerson, dsanders, paquette, arsenm Subscribers: jvesely, wdng, nhaehnle, rovka, hiraditya, volkan, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76600
Summary: Copy of https://reviews.llvm.org/D72446, submitting with Ilya's permission. Only used to assign roles to child nodes for now. This is more efficient than doing range-based queries. In the future, will be exposed in the public API of syntax trees. Reviewers: gribozavr2 Reviewed By: gribozavr2 Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76355
It could happen that we delete the first function in the SCC in the future so we should be careful accessing `Functions` after the manifest stage.
We special cased must-tail calls all over the place because they cannot be modified as other calls can be. However, we already centralized the modification API so we can centralize the handling as well. This simplifies the code and allows to remove must-tail calls completely.
Summary: Implements the following intrinsics for contiguous loads & stores: - @llvm.aarch64.sve.ld1 - @llvm.aarch64.sve.st1 Reviewers: sdesmalen, andwar, efriedma, cameron.mcinally, dancgr, rengolin Reviewed By: cameron.mcinally Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D76688
… shared version is present Summary: This is essentially D71894, but for libc++. This is needed for running libc++ tests over SSH. Reviewers: EricWF, ldionne, phosek, mehdi_amini, mclow.lists, jroelofs, bcraig, #libc Reviewed By: ldionne, phosek, #libc Subscribers: mgorny, christof, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72687
lldbassert is the macro that takes care of passing along line/file/function to the lldb_assert function. Let's call that instead of manually calling the function.
In order to support non-user-named kernels, SYCL needs some way in the integration headers to name the kernel object themselves. Initially, the design considered just RTTI naming of the lambdas, this results in a quite unstable situation in light of some device/host macros. Additionally, this ends up needing to use RTTI, which is a burden on the implementation and typically unsupported. Instead, we've introduced a builtin, __builtin_unique_stable_name, which takes a type or expression, and results in a constexpr constant character array that uniquely represents the type (or type of the expression) being passed to it. The implementation accomplishes that simply by using a slightly modified version of the Itanium Mangling. The one exception is when mangling lambdas, instead of appending the index of the lambda in the function, it appends the macro-expansion back-trace of the lambda itself in the form LINE->COL[~LINE->COL...]. Differential Revision: https://reviews.llvm.org/D76620
CONFLICT (content): Merge conflict in clang/lib/Sema/SemaDecl.cpp CONFLICT (content): Merge conflict in clang/lib/Sema/Sema.cpp
CONFLICT (content): Merge conflict in clang/docs/LanguageExtensions.rst
CONFLICT (content): Merge conflict in clang/include/clang/Basic/DiagnosticIDs.h
CONFLICT (content): Merge conflict in clang/lib/Driver/Compilation.cpp
CONFLICT (add/add): Merge conflict in clang/test/CodeGenSYCL/unique-stable-name.cpp CONFLICT (content): Merge conflict in clang/lib/Sema/SemaTemplateInstantiate.cpp CONFLICT (content): Merge conflict in clang/lib/Sema/SemaExpr.cpp CONFLICT (content): Merge conflict in clang/lib/Parse/ParseTentative.cpp CONFLICT (content): Merge conflict in clang/lib/AST/ItaniumMangle.cpp CONFLICT (content): Merge conflict in clang/lib/AST/Expr.cpp CONFLICT (content): Merge conflict in clang/include/clang/Sema/Sema.h CONFLICT (content): Merge conflict in clang/include/clang/Basic/TokenKinds.def CONFLICT (content): Merge conflict in clang/include/clang/AST/Mangle.h CONFLICT (content): Merge conflict in clang/include/clang/AST/Expr.h
…llvmspirv_pulldown
* Rewrite test code to use separate function for each memory attribute * Add more test cases for attributes * Add additional info about source code, compiler and compilation command Signed-off-by: Mikhail Lychkov <[email protected]>
Signed-off-by: Arvind Sudarsanam <[email protected]>
Here is implementation of command-line option which will allow to represent unknown llvm intrinsics as external function call in SPIR-V Signed-off-by: Ilya Mashkov <[email protected]>
The GenKernelArgNameMD field would be left uninitialized when calling the default constructor.
Specification can be found here: KhronosGroup/SPIRV-Registry#62 As per revision C -> revision E transition in the spec, patch introduces translation of the following loop controls: * PipelineDisableINTEL * LoopCoalesceINTEL * MaxInterleavingINTEL * SpeculatedIterationsINTEL Signed-off-by: Viktoria Maksimova <[email protected]>
Signed-off-by: Viktoria Maksimova <[email protected]>
Signed-off-by: Viktoria Maksimova <[email protected]>
Signed-off-by: Vladimir Lazarev <[email protected]>
@vladimirlaz, please, fix regressions in LIT tests. |
Signed-off-by: Vladimir Lazarev <[email protected]>
aelovikov-intel
pushed a commit
to aelovikov-intel/llvm
that referenced
this pull request
Feb 23, 2023
Some tests in SYCL/Matrix verify their results but only use the results to print "passed" or "failed". A subset of these tests have checks for "passed" in the output, but does not use FileCheck to govern the check. This commit changes these tests to return a non-zero value in the main function if the result verification failed. This allows the test system to correctly identify tests that fail this verification. Signed-off-by: Larsen, Steffen <[email protected]>
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: b5a034e
SPIRV-LLVM-Translator: cb3be862