-
Notifications
You must be signed in to change notification settings - Fork 777
LLVM and SPIRV-LLVM-Translator pulldown (WW33) #4300
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
Using REG_SEQUENCE produces better code than INSERT_SUBREG, we can omit one move instruction in many cases. Fixes: SWDEV-298028 Differential Revision: https://reviews.llvm.org/D107602
Allows us to avoid awkward type breakdowns on types like s88, like the other commits. Differential Revision: https://reviews.llvm.org/D107587
Before D45736, getc_unlocked was available by default, but turned off for non-Cygwin/non-MinGW Windows. D45736 then added 9 more unlocked functions, which were unavailable by default, but it also: * left getc_unlocked enabled by default, * removed the disabling line for Windows, and * added code to enable getc_unlocked for GNU, Android, and OSX. For consistency, make getc_unlocked unavailable by default. Maybe this was the intent of D45736 anyway. Reviewed By: MaskRay, efriedma Differential Revision: https://reviews.llvm.org/D107527
This patch adds a new method SubSurface to the Surface class. The method returns another surface that is a subset of this surface. This is important to further abstract away drawing from the ncurses objects. For instance, fields could previously be drawn on subpads only but can now be drawn on any surface. This is needed to create the file search dialogs and similar functionalities. There is an opportunity to refactor window drawing in general using surfaces, but we shall consider this separately later. Reviewed By: clayborg Differential Revision: https://reviews.llvm.org/D107182
One performance issue happened in profile generation and it turned out the line 525 loop is the bottleneck. Moving the code outside of loop scope can fix this issue. The run time is improved from 30+mins to ~30s. Reviewed By: hoy, wenlei Differential Revision: https://reviews.llvm.org/D107529
Implementation copied almost verbatim from ValueTracking. Differential revision: https://reviews.llvm.org/D107606
…le register on failure. In some cases, like with inserts, we may have a matching size register already, but still decide to try to look further. This change adds a CurrentBest register to the value finder state, and any time a method fails to make progress, returns that register (which may just be an empty Register). To facilitate this, add a new entry point to the findValueFromDef() function which initializes this state. Also fix the build vector finder to return the current build_vector if all sources are being requested. Differential Revision: https://reviews.llvm.org/D107017
This reverts commit ce6eb4f. It's broken on the windows bots: https://reviews.llvm.org/D107606#2930121
Fixes issue where late materialized constants can be more strictly aligned then their containing csect. Differential Revision: https://reviews.llvm.org/D103103
Similar to other cleanup commits which widen instructions before clamping during legalization. Purpose of this is to avoid weird type breakdowns. In terms of G_IMPLICIT_DEF, this simplifies legalization for other instructions. The legalizer has to emit G_IMPLICIT_DEF to legalize certain instructions, so this can help with emitting merges elsewhere. Differential Revision: https://reviews.llvm.org/D107604
Similar cleanup to G_EXTRACT (51bd4e8). Also swap the order of clamp/widen to avoid unnecessary complex merges. Add a bunch of missing testcases to legalize-inserts while we're at it. Differential Revision: https://reviews.llvm.org/D107601
Tested with gcc-10. Other compilers may generate additional warnings. This does not fix all warnings. There are a few extra ones in LLVMCore and MLIR. * `OpEmitter::getAttrNameIndex`: -Wunused-function (function is private and not used anywhere) * `PrintOpPass` copy constructor: -Wextra ("Base class should be explicitly initialized in the copy constructor") * `LegalizeForLLVMExport.cpp`: -Woverflow (overflow is expected, silence warning by making the cast explicit) Differential Revision: https://reviews.llvm.org/D107525
On AVR, '.ctors' is used, not '.init_array'. Make this the default unless specifically overridden by driver argument. This matches gcc, and it matches the behavior in (e.g.) the NetBSD driver (for certain OS variants). Reviewed by: MaskRay Differential Revision: https://reviews.llvm.org/D107610
Temporarily revert this patch to unbreak the bots/builds until we can understand what was intended; is_pad() call isn't defined. This reverts commit 2b89f40.
Makes it easier to see type mismatch from failure locally. Differential Revision: https://reviews.llvm.org/D107288
https://reviews.llvm.org/D100478 refactoring added a copy/paste error for v8i16 patterns. Reviewed By: #powerpc, shchenz Differential Revision: https://reviews.llvm.org/D107609
This implements LanaiTargetLowering::CanLowerReturn, thereby ensuring all return values conform to the RetCC and get sret-demoted as necessary. A regression test is also added that exercises this functionality. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D107086
The intent of the negative #{{.*}} checks is to verify that the line declaring/defining a function has no attribute, but they could restrict later function declarations instead. The 2008-09-02-FunctionNotes.ll check had allowed @fn3 to have an attribute, because there is only a single "define void @fn3()" in the output. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107614
For a very large module, __llvm_gcov_reset can become very large. __llvm_gcov_reset previously emitted stores to a bunch of globals in one huge basic block. MemCpyOpt would turn many of these stores into memsets, and updating MemorySSA would be extremely slow. Verified that this makes the compile time of certain files go down drastically (20min -> 5min). Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107538
Include windows.h with an all lowercase filename; Windows SDK headers aren't self consistent so they can't be used in an entirely case sensitive setting, and mingw headers use all lowercase names for such headers. This fixes building after 881faf4.
…ouble POC ``` // main.c #include <stdio.h> #include <altivec.h> extern vector double foo(vector int s); int main() { vector int s = {0, 1, 0, 4}; vector double vd; vd = foo(s); printf("%lf %lf\n", vd[0], vd[1]); return 0; } // poc.c vector double foo(vector int s) { int x1 = s[1]; int x3 = s[3]; double d1 = x1; double d3 = x3; vector double x = { d1, d3 }; return x; } ``` Compiled with `poc.c main.c -mcpu=pwr8 -O3` on BE machine. Current clang gives ``` 4.000000 1.000000 ``` while xlc gives ``` 1.000000 4.000000 ``` Xlc's output should be correct. Reviewed By: shchenz, #powerpc Differential Revision: https://reviews.llvm.org/D107428
I just hit a nasty bug when writing a unit test after calling MF->getFrameInfo() without declaring the variable as a reference. Deleting the copy-constructor also showed a place in the ARM backend which was doing the same thing, albeit it didn't impact correctness there from the looks of it.
CastOp::areCastCompatible does not check whether casts are definitely compatible. When going from dynamic to static offset or stride, the canonicalization cannot know whether it is really cast compatible. In that case, it can only canonicalize to an alloc plus copy. Differential Revision: https://reviews.llvm.org/D107545
This patch add R_RISCV_HI20, R_RISCV_LO12 and R_RISCV_CALL relocation test Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D107327
Now the recursive functions may get specialized many times when `func-specialization-max-iters` increases. See discussion in https://reviews.llvm.org/D106426 for details.
…d is a splat value Move the last{a,b} operation to the vector operand of the binary instruction if the binop's operand is a splat value. This essentially converts the binop to a scalar operation. Example: // If x and/or y is a splat value: lastX (binop (x, y)) --> binop(lastX(x), lastX(y)) Differential Revision: https://reviews.llvm.org/D106932 Change-Id: I93ff5302f9a7972405ee0d3854cf115f072e99c0
Replace vector unpack operation with a scalar extend operation. unpack(splat(X)) --> splat(extend(X)) If we have both, unpkhi and unpklo, for the same vector then we may save a register in some cases, e.g: Hi = unpkhi (splat(X)) Lo = unpklo(splat(X)) --> Hi = Lo = splat(extend(X)) Differential Revision: https://reviews.llvm.org/D106929 Change-Id: I77c5c201131e3a50de1cdccbdcf84420f5b2244b
That's not necessary anymore, since we always build the dylib with C++11 capabilities nowadays. Differential Revision: https://reviews.llvm.org/D107772
Differential Revision: https://reviews.llvm.org/D107096
This patch allows target specific addr space in target builtins for HIP. It inserts implicit addr space cast for non-generic pointer to generic pointer in general, and inserts implicit addr space cast for generic to non-generic for target builtin arguments only. It is NFC for non-HIP languages. Differential Revision: https://reviews.llvm.org/D102405
Code added by D106688 has a problem. It passes the option -bxyz to the system linker as -b xyz xyz (duplication of the string 'xyz' is incorrect). This patch fixes that oversight. Reviewed by: hubert.reinterpretcast, jsji Differential Revision: https://reviews.llvm.org/D107786
This is in preparation of a larger refactoring that makes the changes in D107221 obsolete. Differential Revision: https://reviews.llvm.org/D107724
The following constructor call (and others) used to be ambiguous: ``` FlatAffineConstraints constraints(0, 0, 0); ``` Differential Revision: https://reviews.llvm.org/D107726
Reviewed By: benshi001, mhjacobson Differential Revision: https://reviews.llvm.org/D107797
It's possible that the underscore-delimited postfix is not empty when we do this check in `SPIRVToOCLBase::visitCallInst`. Should return false instead of returning an assertion failure. Signed-off-by: Yilong Guo <yilong.guo@intel.com> Original commit: KhronosGroup/SPIRV-LLVM-Translator@31ed43e
Update after LLVM commit 75aa3d5 ("Add a DIExpression const-folder to prevent silly expressions.", 2021-08-05). Original commit: KhronosGroup/SPIRV-LLVM-Translator@248ca68
It is translated to a function with unmangled name __spirv_BuildNDRange_{1|2|3}D with struct return parameter and array arguments, since translator only translates it properly to SPIR-V with this signature. _ND postfix is requred because array arguments are mangled in the same way, so if there was no postfix, translator would produce functions with same name for different dimensions. Original commit: KhronosGroup/SPIRV-LLVM-Translator@a6ca745
/summary:run |
cdfe4ed
to
5c4c4c6
Compare
Jenkins/Summary was restarted excidentaly (than killed to save CI resources): correct link is: http://llvm-ci.intel.com:8080/job/SYCL_CI/job/intel/job/Summary_Triggered_By_Comment/585/display/redirect |
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@b978df4af4c8
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@a6ca745