forked from ROCm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 2
Pull Trunk #1
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
Pull Trunk #1
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
".", possibly followed by an exponent, is a valid REAL input value (meaning zero). Differential Revision: https://reviews.llvm.org/D124279
The builtin predicate handling has a strange behavior where the code assumes that a PatFrag is a stack of PatFrags, and each level adds at most one predicate. I don't think this particularly makes sense, especially without a diagnostic to ensure you aren't trying to set multiple at once. This wasn't followed for address spaces and alignment, which could potentially fall through to report no builtin predicate was added. Just switch these to follow the existing convention for now.
We only need to insert a Freeze instruction if any of the conditions may be poison. Similar checks are already done in the other places SimpleLoopUnswitch creates Freeze instruction. Reviewed By: aeubanks, efriedma Differential Revision: https://reviews.llvm.org/D124259
Applied clang-tidy modernize-use-override over LLDB and added it to the LLDB .clang-tidy config. Differential Revision: https://reviews.llvm.org/D123340
Add an additional test for D123473.
This patch is a continuation of https://reviews.llvm.org/D123353. Not only kernels in anonymous namespace, but also template kernels with template arguments in anonymous namespace need to be externalized. To be more generic, this patch checks the linkage of a kernel assuming the kernel does not have __global__ attribute. If the linkage is internal then clang will externalize it. This patch also fixes the postfix for externalized symbol since nvptx does not allow '.' in symbol name. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D124189 Fixes: #54560
This patch changes the printf parser tests to use a more robust matcher. This allows for better debugging of parsing issues. This does not affect the actual printf code at all, only the tests. Reviewed By: sivachandra, lntue Differential Revision: https://reviews.llvm.org/D124130
Currently, the sequence of Transform dialect operations only supports a single use of each operand (verified by the `transform.sequence` operation). This was originally motivated by the need to guard against accessing a payload IR operation associated with a transform IR value after this operation has likely been rewritten by a transformation. However, not all Transform dialect operations rewrite payload IR, in particular the "navigation" operation such as `transform.pdl_match` do not. Introduce memory effects to the Transform dialect operations to describe their effect on the payload IR and the mapping between payload IR opreations and transform IR values. Use these effects to replace the single-use rule, allowing repeated reads and disallowing use-after-free, where operations with the "free" effect are considered to "consume" the transform IR value and rewrite the corresponding payload IR operations). As an additional improvement, this enables code motion transformation on the transform IR itself. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D124181
This matches the behavior prior to b0e2ffe. Fixes: #55046 Differential Revision: https://reviews.llvm.org/D120682
The PrintfMatcher depends on printf which is in stdio. Stdio is currently fullbuild only, but the matcher wasn't, causing failing builds when fullbuild was off. This patch adds the fullbuild condition to the PrintfMatcher cmake. Differential Revision: https://reviews.llvm.org/D124304
…ion algorithm. Test case to show not quite optimal SLP vectorization. Reviewed By: Vasileios Porpodas (vporpo) Differential Revision: https://reviews.llvm.org/D124293
This change fixes `CollapsedLayoutMap` for cases where the collapsed dims are size 1. The cases where inner most dims are size 1 and noncontiguous can be represented by the strided form and therefore can be allowed. For such cases, the new stride should be of the next entry in an association whose dimension is not size 1. If the next entry is dynamic, it's not possible to decide which stride to use at compilation time and the stride is set to dynamic. Differential Revision: https://reviews.llvm.org/D124137
…fter compilation when using new OpenMP driver The root cause of this is, in `NVPTX::Assembler::ConstructJob`, the output file name might not match the `Output`'s file name passed into the function because `CudaToolChain::getInputFilename` is a specialized version. That means the real output file is not added to the temp files list, which will be all removed in the d'tor of `Compilation`. In order to "fix" it, in the function `NVPTX::OpenMPLinker::ConstructJob`, before calling `clang-nvlink-wrapper`, the function calls `getToolChain().getInputFilename(II)` to get the right output file name for each input, and add it to temp file, and then they can be removed w/o any issue. However, this whole logic doesn't work when using the new OpenMP driver because `NVPTX::OpenMPLinker::ConstructJob` is not called at all, which causing the issue that the cubin file generated in each single unit compilation is out of track. In this patch, we add the real output file into temp files if its name doesn't match `Output`. We add it when the file is an output instead of doing it when it is an input, like what we did in `NVPTX::OpenMPLinker::ConstructJob`, which makes more sense. Reviewed By: jhuber6 Differential Revision: https://reviews.llvm.org/D124253
Using opaque pointers in function signatures leads to an attempt to recursively convert all types, including sub types in LLVM types. In the case of LLVM pointers, it may not have a subtype aka element type if it is opaque which would then lead to a null pointer dereference. Differential Revision: https://reviews.llvm.org/D124291
…on-default address space As a fallback mechanism, if no entry was supplied for a given address space, the size or alignment for a pointer type with the default address space is returned instead. This code currently crashes with opaque pointers, as it tries to construct a typed pointer type from the opaque pointer type, leading to a null pointer dereference when fetching the element type. This patch fixes the issue by handling the opaque pointer cases explicitly. Differential Revision: https://reviews.llvm.org/D124290
This was promoting an unset max call frame size to a max call frame size of 0.
By default -fsanitize=address already compiles with this check, why not use it. For compatibly it can be disabled with env ASAN_OPTIONS=detect_stack_use_after_return=0. Reviewed By: eugenis, kda, #sanitizers, hans Differential Revision: https://reviews.llvm.org/D124057
…ibraries When hwloc is used and is installed outside of the default paths, the omp CMake target needs to provide the needed include path thru the CMake target by adding it with target_include_directories to it, so libompd gets it as well when it defines it's cmake target using target_link_libraries. As suggested in D122667 Reviewed By: ye-luo Differential Revision: https://reviews.llvm.org/D123888
…ero length array. Consider checking whether a pointer has been mapped can be achieved via omp_get_mapped_ptr. omp_target_is_present is more needed to check whether the storage being pointed is mapped. This restore the old behavior of omp_target_is_present before D123093 Fixes #54899 Reviewed By: jdenny Differential Revision: https://reviews.llvm.org/D123891
… of splat loads for AArch64" This reverts commit 7052a0a.
MisExpect diagnostics should not prevent compilation from succeeding, and the assertion is insufficient to prevent division by zero in release builds. This patch addresses that by replacing the assert with an early return. Additionally, it disables MisExpect diagnostics when using sample profiling, since this is the only known case where this error has manifested. Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D124302
Blanks are allowed in more places than I allowed for, and "NAN(foobar)" is allowed to have any parenthesis-balanced characters in parentheses. Update: Fix up old sanity test, then avoid usage of "limit" when null. Differential Revision: https://reviews.llvm.org/D124294
Otherwise they fires for every single file which includes the header, which is very noisy when building. Reviewed By: MaskRay, peter.smith Differential Revision: https://reviews.llvm.org/D124041
We were previously not correctly wrapping symbols that were only produced during LTO codegen and unreferenced before then, or symbols only referenced from such symbols. The root cause was that we weren't marking the wrapped symbol as used if we only saw the use after LTO codegen, leading to the failed wrapping. Fix this by explicitly tracking whether a symbol will become referenced after wrapping is done. We can use this property to tell LTO to preserve such symbols, instead of overload isUsedInRegularObj for this purpose. Since we're no longer setting isUsedInRegularObj for all symbols which will be wrapped, its value at the time of performing the wrapping in the symbol table will accurately reflect whether the symbol was actually used in an object (including in an LTO-generated object), and we can propagate that value to the wrapped symbol and thereby ensure we wrap correctly. This incorrect wrapping was the only scenario I was aware of where we produced an invalid PLT relocation, which D123985 started diagnosing, and with it fixed, we lose the test for that diagnosis. I think it's worth keeping the diagnosis though, in case we run into other issues in the future which would be caught by it. Fixes PR50675. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D124056
Modernize-macro-to-enum shouldn't try to convert macros to enums when they are defined inside a declaration or definition, only when the macros are defined at the top level. Since preprocessing is disconnected from AST traversal, match nodes in the AST and then invalidate source ranges spanning AST nodes before issuing diagnostics. ClangTidyCheck::onEndOfTranslationUnit is called before PPCallbacks::EndOfMainFile, so defer final diagnostics to the PPCallbacks implementation. Differential Revision: https://reviews.llvm.org/D124066 Fixes #54883
We were previously only omitting the original of a wrapped symbol if it was not used by an object file and undefined. We can tighten the second condition to drop any symbol that isn't defined instead, which lets us drop a previous check (added in https://reviews.llvm.org/D118756) that was only covering some such symbols. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D124065
Ew.d and Dw.d output edit descriptors should respect limitations from the standard on the value of a kP scale factor with respect to the digit count (d), at least for values of k other than zero. Differential Revision: https://reviews.llvm.org/D124300
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.
Merge Trunk into my repo