-
Notifications
You must be signed in to change notification settings - Fork 787
LLVM and SPIRV-LLVM-Translator pulldown (WW48) #2813
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
Fix typo in log messages Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D91492
Matrix types in memory are represented as arrays, but accessed through vector pointers, with the alignment specified on the access operation. For inline assembly, update pointer arguments to use vector pointers. Otherwise there will be a mis-match if the matrix is also an input-argument which is represented as vector. Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D91631
…ked.gather Instead of the first load. That works when vectorizing contiguous loads, but not for gathers. Fixes a miscompile introduced in fcad8d3.
Baremetal toolchain is not adding sysroot/lib to the library search path. This is forcing the user to do it manually. This commit fixes this shortcoming by adding the sysroot/lib to library search path if sysroot is not empty. Reviewed By: jroelofs Differential Revision: https://reviews.llvm.org/D91559
The default content of translation unit varies too much between platforms.
This patch adds support for combining a VPST with a dangling VCMP from a previous VPT block. Differential Revision: https://reviews.llvm.org/D90935
I noticed that Process is inheriting from UserID to store its PID value. This patch replaces this with a dedicated field in the Process class. This is NFC, but has some small effects on the code using Process: * `GetID()` now returns a `lldb::pid_t` like all other process code instead of `lldb::user_id_t`. Both are typedefs for `uint64_t`, so no change in behaviour. * The equality operators defined for UserID no longer accept Process instances. * Removes the inherited method `Process::Clear()` which didn't actually clear anything beside the PID value. We maybe should also remove the getters/setters to `S/GetPID` or something like that. I can update all the code for that in a follow-up NFC commit. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D91699
The SystemZISD::IABS node is no longer needed since ISD::ABS can be used instead. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D91697
to be consistent witih other code actions. Reviewed By: adamcz Differential Revision: https://reviews.llvm.org/D91694
This patch generalizes the extraction of a constraint for a given condition. It allows decompose to return a vector of c * X pairs, which allows de-composing multiple instructions in the future. It also adds more clarifying comments.
Differential Revision: https://reviews.llvm.org/D91705
…nt exprs. Fix a crash when evaluating a constexpr function which contains recovery-exprs. https://bugs.llvm.org/show_bug.cgi?id=46837 Would be nice to have constant expression evaluator support general template value-dependent expressions, but it requires more work. This patch is a good start I think, to handle the error-only value-dependent expressions. Differential Revision: https://reviews.llvm.org/D84637
…idiom As Wei Mi is reporting in post-commit review: https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20201116/853479.html teaching -reassociate about add-like-or's (70472f3) results in breaking apart load widening patterns, and reassociating them. While that's great, it prevents the actual load widening in backend, and that is not good. We should have load widening in middle-end, but for now we should at least not regress the naive patterns..
…o be part of load-combining idiom As Wei Mi is reporting in post-commit review https://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20201116/853479.html teaching -reassociate about add-like-or's (70472f3) results in breaking apart load widening patterns, and reassociating them. For now, simply exclude any such `or` that appears to be a root of load widening idiom from the or->add transformation. Note that the heuristic is greedy, it doesn't ensure that loads can *actually* be widened into a single load.
We have workarounds for two different cases where vccz can get out of sync with the value in vcc. This fixes them in two ways: 1. Fix the case where the def of vcc was in a previous basic block, by pessimistically assuming that vccz might be incorrect at a basic block boundary. 2. Fix the handling of pre-existing waitcnt instructions by calling generateWaitcntInstBefore before examining ScoreBrackets to determine whether there's an outstanding smem read operation. Differential Revision: https://reviews.llvm.org/D91636
…lobal struct. The compiler should treat array subscript with base pointer as a first pointer in complex data, it is used only for member expression with base pointer. Differential Revision: https://reviews.llvm.org/D91660
Patch by: @laytonio (Layton Kifer) Differential Revision: https://reviews.llvm.org/D91671
Support more instructions in SpeculativeExecution pass: - ExtractValue - InsertValue - Trunc - Freeze Differential Revision: https://reviews.llvm.org/D91688
Xref layer changes for textdocument/implementation (https://microsoft.github.io/language-server-protocol/specification#textDocument_implementation) This currently shows all functions (implementations) that overrides a virtual function. Differential Revision: https://reviews.llvm.org/D91702
Differential Revision: https://reviews.llvm.org/D91160
Fixes test failures when building just `check-lld` in a clean build dir.
Adding features in OpenMP 5.1 specification, as documented in feature change history, to the 5.1 table. I alphabetized the rows of the table according to the category. For deprecating master construct, I just used 'other' as the category. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D90802
This patch creates a SystemZ folder in clang/test/CodeGen to contain systemz-related lit tests. Reviewed By: muiez Differential Revision: https://reviews.llvm.org/D91628
We're just performing a null pointer check, we don't need the actual variable.
…s. NFCI. Consistently use SUnit *SU (or drop the argname entirely if not used like the other HazardRecognizer methods). Silences cppcheck warnings.
During the initial Solaris sanitizer port, I missed to enable the `sanitizer_common` and `ubsan_minimal` testsuites. This patch fixes this, correcting a few unportabilities: - `Posix/getpass.cpp` failed to link since Solaris lacks `libutil`. Omitting the library lets the test `PASS`, but I thought adding `%libutil` along the lines of `%librt` to be overkill. - One subtest of `Posix/getpw_getgr.cpp` is disabled because Solaris `getpwent_r` has a different signature than expected. - `/dev/null` is a symlink on Solaris. - XPG7 specifies that `uname` returns a non-negative value on success. Tested on `amd64-pc-solaris2.11` and `sparcv9-sun-solaris2.11`. Differential Revision: https://reviews.llvm.org/D91606
…; NFC See discussion in D90554. This is a partial un-revert of 32dd587. I'm adding back the baseline tests first, so we don't have to back-track as much in case there are still problems.
This patch implements out of line atomics for LSE deployment mechanism. Details how it works can be found in llvm/docs/Atomics.rst Options -moutline-atomics and -mno-outline-atomics to enable and disable it were added to clang driver. This is clang and llvm part of out-of-line atomics interface, library part is already supported by libgcc. Compiler-rt support is provided in separate patch. Differential Revision: https://reviews.llvm.org/D91157
This checks to see if the loop will likely become a tail predicated loop and disables wls loop generation if so, as the likelihood for reverting is currently too high. These should be fairly rare situations anyway due to the way iterations and element counts are used during lowering. Just not trying can alter how SCEV's are materialized however, leading to different codegen. It also adds a option to disable all while low overhead loops, for debugging. Differential Revision: https://reviews.llvm.org/D91663
If a virtual method is marked as call_super, the override method must call it, simpler feature like @callsuper in Android Java.
Just something I forgot when I added the R82. Need to have a look at crypto and fusing, but will do that as a follow up. Differential Revision: https://reviews.llvm.org/D91848
wchar_t can be signed (thus hasSignedIntegerRepresentation() returns true), but it doesn't have an unsigned type, which would lead to a crash when trying to get it. With this fix, we special-case WideChar types in the pointer assignment code. Differential Revision: https://reviews.llvm.org/D91625
…cilitate subsequent reporters of changes to the IR in the new pass manager. Summary: [NFC intended] Refactor the code for printChanged for reuse and to facilitate subsequent reporters of changes to the IR in the new pass manager. Create abstract template base classes for common functionality and give classes more appropriate names. The base classes handle all of the determination of when a function or pass is "interesting" and should be reported or filtered out. They have pure virtual functions which are called when a change by a pass has been recognized so the derived class need only provide the overrides to present the information about the changing IR. There are at least 2 more change reporters to come (which were presented in my tutorial at the 2020 llvm developer's meeting) that derive from these classes. Respond to review comments: move function out of line, remove inline keyword, remove unneeded qualifiers, simplify comparison. Author: Jamie Schmeiser <[email protected]> Reviewed By: aeubanks (Arthur Eubanks), madhur13490 (Madhur Amilkanthwar) Differential Revision: https://reviews.llvm.org/D87000
…string-init. std::string_view("") produces a string_view instance that compares equal to std::string_view(), but requires more complex initialization (storing the address of the string literal, rather than zeroing). Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D91009
The constrained intrinsics have metadata arguments, so the tests here were crashing as noted in D90554 (and that was reverted even though this bug exists independently of that change).
…ng new pass manager and fix LICM bug. Summary: Expand existing loopsink testing to also test loopsinking using new pass manager. Enable memoryssa for loopsink with new pass manager. This combination exposed a bug that was previously fixed for loopsink without memoryssa. When sinking an instruction into a loop, the source block may not be part of the loop but still needs to be checked for pointer invalidation. This is the fix for bugzilla #39695 (PR 54659) expanded to also work with memoryssa. Respond to review comments. Enable Memory SSA in legacy Loop Sink pass under EnableMSSALoopDependency option control. Update tests accordingly. Respond to review comments. Add options controlling whether memoryssa is used for loop sink, defaulting to off. Expand testing based on these options. Respond to review comments. Properly indicated preserved analyses. This relanding addresses a compile-time performance problem by moving test for profile data earlier to avoid unnecessary computations. Author: Jamie Schmeiser <[email protected]> Reviewed By: asbirlea (Alina Sbirlea) Differential Revision: https://reviews.llvm.org/D90249
Expand test for PR47269 to better demonstrate changes introduced by D90445.
Also added diffing of a few more math functions. Combining the diff check for all of these functions helps us meet the OSS fuzz bar of a minimum of 100 program edges. Reviewed By: lntue Differential Revision: https://reviews.llvm.org/D91817
This is similar to the existing alloca and program address spaces (D37052) and should be used when creating/accessing global variables. We need this in our CHERI fork of LLVM to place all globals in address space 200. This ensures that values are accessed using CHERI load/store instructions instead of the normal MIPS/RISC-V ones. The problem this is trying to fix is that most of the time the type of globals is created using a simple PointerType::getUnqual() (or ::get() with the default address-space value of 0). This does not work for us and we get assertion/compilation/instruction selection failures whenever a new call is added that uses the default value of zero. In our fork we have removed the default parameter value of zero for most address space arguments and use DL.getProgramAddressSpace() or DL.getGlobalsAddressSpace() whenever possible. If this change is accepted, I will upstream follow-up patches to use DL.getGlobalsAddressSpace() instead of relying on the default value of 0 for PointerType::get(), etc. This patch and the follow-up changes will not have any functional changes for existing backends with the default globals address space of zero. A follow-up commit will change the default globals address space for AMDGPU to 1. Reviewed By: dylanmckay Differential Revision: https://reviews.llvm.org/D70947
This will ensure that passes that add new global variables will create them in address space 1 once the passes have been updated to no longer default to the implicit address space zero. This also changes AutoUpgrade.cpp to add -G1 to the DataLayout if it wasn't already to present to ensure bitcode backwards compatibility. Reviewed by: arsenm Differential Revision: https://reviews.llvm.org/D84345
CONFLICT (content): Merge conflict in clang/lib/CodeGen/CGClass.cpp
/summary:run |
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@51e09e1
SPIRV-LLVM-Translator: no new changes. Last commit KhronosGroup/SPIRV-LLVM-Translator@a825cdb