-
Notifications
You must be signed in to change notification settings - Fork 787
LLVM and SPIRV-LLVM-Translator pulldown (WW34) #4344
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
Some files still contained the old University of Illinois Open Source Licence header. This patch replaces that with the Apache 2 with LLVM Exception licence. Differential Revision: https://reviews.llvm.org/D107528
We were calling find and then using operator[]. Instead keep the iterator from find and use it to get the value. Just happened to notice while investigating how we decide what extends to use between basic blocks.
To avoid simplification with wrong constants we need to make sure we know that we won't perform specific optimizations based on the users request. The non-SPMDzation and non-CustomStateMachine flags did only prevent the final transformation but allowed to value simplification to go ahead. Differential Revision: https://reviews.llvm.org/D107862
The bulk of the changes come from attributes but only the @phi_store function is effectively added.
AAPointerInfoFloating needs to visit all uses and some multiple times if we go through PHI nodes. Attributor::checkForAllUses keeps a visited set so we don't recurs endlessly. We now allow recursion for non-phi uses so we track all pointer offsets via PHI nodes properly without endless recursion. This replaces the first attempt D107579. Differential Revision: https://reviews.llvm.org/D107798
PHI nodes are not pass through but change their value, we have to account for that to avoid missing stores. Follow up for D107798 to fix PR51249 for good. Differential Revision: https://reviews.llvm.org/D107808
This function aligns an affine map (and operands) with given dims and syms SSA values. This is useful in conjunction with `FlatAffineConstraints::addLowerOrUpperBound`, which requires the `boundMap` to be aligned with the constraint set's dims and syms. Differential Revision: https://reviews.llvm.org/D107728
Failed for some reason, potentially because of the inner type declaration in combination with the `using`. This might help. Failure: https://lab.llvm.org/buildbot/#/builders/127/builds/15432
This function overload is similar to the existing `FlatAffineConstraints::addLowerOrUpperBound`. It constrains a dimension based on an affine map. However, in contrast to the other overloading, it does not attempt to align dimensions/symbols of the affine map with the dimensions/symbols of the constraint set. Instead, dimensions/symbols are expected to already be aligned. Differential Revision: https://reviews.llvm.org/D107727
This reverts commit 6660cec since it was superseded by https://reviews.llvm.org/D98061.
When none of the translation units in the binary have been instrumented we shouldn't need to link the profile runtime. However, because we pass -u__llvm_profile_runtime on Linux and Fuchsia, the runtime would still be pulled in and incur some overhead. On Fuchsia which uses runtime counter relocation, it also means that we cannot reference the bias variable unconditionally. This change modifies the InstrProfiling pass to pull in the profile runtime only when needed by declaring the __llvm_profile_runtime symbol in the translation unit only when needed. For now we restrict this only for Fuchsia, but this can be later expanded to other platforms. This approach was already used prior to 9a041a7, but we changed it to always generate the __llvm_profile_runtime due to a TAPI limitation, but that limitation may no longer apply, and it certainly doesn't apply on platforms like Fuchsia. Differential Revision: https://reviews.llvm.org/D98061
…perBound Reimplement this function in terms of the function variant without Value semantics. Differential Revision: https://reviews.llvm.org/D107729
When enable CSPGO for ThinLTO, there are profile cfg mismatch warnings that will cause lld-link errors (with /WX). To disable it we have to use an internal "/mllvm:-no-pgo-warn-mismatch" option. In contrast clang uses option ”-Wno-backend-plugin“ to avoid such warnings and gcc has an explicit "-Wno-coverage-mismatch" option. Add this "lto-pgo-warn-mismatch" option to lld to help turn on/off the profile mismatch warnings explicitly when build with ThinLTO and CSPGO. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D104431
… NFC. Reviewed By: niravd Differential Revision: https://reviews.llvm.org/D107845
Reimplement this function in terms of `composeMatchingMap`. Also fix a bug in `composeMatchingMap` where local dims of `this` could be missing in `localCst`. Differential Revision: https://reviews.llvm.org/D107813
…neExprs Remove code duplication in `addLowerOrUpperBound` and `composeMatchingMap`. Differential Revision: https://reviews.llvm.org/D107814
The introduction of `SHF_GNU_RETAIN` has caused massive problems on Solaris. Initially, as reported in Bug 49437, it caused dozens of testsuite failures on both sparc and x86. The objects were marked as `ELFOSABI_NONE`, but `SHF_GNU_RETAIN` is a GNU extension. In the native Solaris ABI, that flag (in the range for OS-specific values) is `SHF_SUNW_ABSENT` with a completely different semantics, which confuses Solaris `ld` very much. Later, the objects became (correctly) marked `ELFOSABI_GNU`, which Solaris `ld` doesn't support, causing it to SEGV and break the build. The linker is currently being hardened to not accept non-native OS ABIs to avoid this. The need for linker support is already documented in `clang/include/clang/Basic/AttrDocs.td`, but not currently checked. This patch avoids all this by not emitting `SHF_GNU_RETAIN` on Solaris at all. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86_64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D107747
The ptrue and ptrues instructions are legal in streaming mode, missed in D106272. The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06/SVE-Instructions Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D107807
This reverts commit 2f946ea.
This reverts commit edaffeb.
Moving Itanium and ArmEHABI specific implementations to dedicated files. This is a NFC patch. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D106461
_Unwind_ForcedUnwind is not mandated by the EHABI but for compatibilty reasons adding so the interface to higher layers would be the same. Dropping EHABI specific _Unwind_Stop_Fn definition since it is not defined by EHABI. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D89570
-Wunused-but-set-variable triggers a warning even the block of code is effectively dead. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107835
Reported on D107745 Reported-by: Wolfgang Pieb (wolfgangp) Reviewed By: melver Differential Revision: https://reviews.llvm.org/D107881
This reverts commit 0cfb00a.
This broke https://lab.llvm.org/buildbot/#/builders/37/builds/6016/steps/10/logs/stdio Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D107864
We are running into more and more cases where the liveouts of low overhead loops do not validate. Add some extra debug messages to make it clearer why.
These are lowered, matching SDAG behaviour. (See llvm/test/CodeGen/AArch64/ssub_sat.ll and llvm/test/CodeGen/AArch64/sadd_sat.ll) These fall back ~159 times on a build of clang with GISel enabled. Differential Revision: https://reviews.llvm.org/D107777
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D107469
This covers the SSE and AVX/AVX2 headers. AVX512 has a lot more macros due to rounding mode. Fixes part of PR51324. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D107843
This broke https://lab.llvm.org/buildbot/#/builders/37/builds/6061/steps/32/logs/stdio Reviewed By: dvyukov Differential Revision: https://reviews.llvm.org/D108042
Remove default case when all the enum values are covered in switch statements.
This change fixes the gcc warning on copy constructor in IFSStub.cpp file. Differential Revision: https://reviews.llvm.org/D108000
…e type. It is possible to generate the llvm.fmuladd.ppcf128 intrinsic, and there is no actual FMA instruction that corresponds to this intrinsic call for ppcf128. Thus, this intrinsic needs to remain as a call as it cannot be lowered to any instruction, which also means we need to disable CTR loop generation for fma involving the ppcf128 type. This patch accomplishes this behaviour. Differential Revision: https://reviews.llvm.org/D107914
Avoid doing the detection work inside the constructor. In addition to polymorphism being unintuitive in constructors and other design problems such as if an exception is thrown, the ScopDetection class is usable without detection in the sense of "no Scop found" or "function skipped".
To conform to function naming convention: camelCase and start with a verb.
It's the same as AttributeList::hasParamAttr().
This is a patch to update tests in scope of patch intel#3929 that removes sycldevice triple environment component, so this triple should be also removed from tests. Original commit: KhronosGroup/SPIRV-LLVM-Translator@36ee44b
This is a workaround to fix translation of linkage type of "llvm.used" and "llvm.compiler.used" global variables that should be "appending" instead of "export". Original commit: KhronosGroup/SPIRV-LLVM-Translator@22629a0
/summary:run |
Properly generate the testing predicate for whether a given attribute can be applied with the given language options. This is needed because of the split compilation model used by SYCL, where some attribute diagnostics are elided in host vs device mode to avoid duplications. This fixes clang/test/SemaSYCL/reqd-sub-group-size-host.cpp and clang/test/SemaSYCL/spurious-host-warning.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@a0c42ca56c2e
SPIRV-LLVM-Translator: KhronosGroup/SPIRV-LLVM-Translator@22629a0