- Sep 27, 2023
-
-
Owen Pan authored
Fixed #67407.
-
Jakub Kuderski authored
- Now that the KHR coop matrix implementation is robust, switch the gpu conversion pass to default to it. - Use a populate function for MMA to coop matrix type conversions. This makes the API surface area smaller.
-
Owen Pan authored
Fixes #66857.
-
Joseph Huber authored
Summary: Currently, we use the RPC server to respond to different ports which each contain a request from some client thread wishing to do work on the server. This scan starts at zero and continues until its checked all ports at which point it resets. If we find an active port, we service it and then restart the search. This is bad for two reasons. First, it means that we will always bias the lower ports. If a thread grabs a high port it will be stuck for a very long time until all the other work is done. Second, it means that the `handle_server` function can technically run indefinitely as long as the client is always pushing new work. Because the OpenMP implementation uses the user thread to service the kernel, this means that it could be stalled with another asyncrhonous device's kernels. This patch addresses this by making the server restart at the next port over. This means we will always do a full scan of the ports before quitting.
-
Joseph Huber authored
Summary: The RPC server is responsible for providing host services from the GPU. Generally, the client running on the GPU will spin in place until the host checks the server. Inside the runtime, we elected to have the user thread do this checking while it would be otherwise waiting for the kernel to finish. However, for Nvidia this caused problems when offloading to a target region that requires a copy back. This is caused by the implementation of `dataRetrieve` on Nvidia. We initialize an asynchronous copy-back on the same stream that the kernel is running on. This creates an implicit sync on the kernel to finish before we issue the D2H copy, which we then wait on. This implicit sync happens inside of the CUDA runtime. This is problematic when running the RPC server because we need someone to check the RPC server. If no one checks the RPC server then the kernel will never finish, meaning that the memcpy will never be issued and the program hangs. This patch adds an explicit check for unfinished work on the stream and waits for it to complete.
-
Yinying Li authored
For all the mlir tests (except for roundtrip_coding.mlir), change the check test to use general form of encoding `#sparse_tensor.encoding<{{{.*}}}>` instead of actual encoding such as `#sparse_tensor.encoding<{ lvlTypes = [ "compressed", "singleton" ] }>`. -
Alex Langford authored
To make DWARFDebugAbbrev more amenable to error-handling, I would like to change the return type of DWARFDebugAbbrev::parse from `void` to `Error`. Users of DWARFDebugAbbrev can consume the error if they want to use all the valid DWARF that was parsed (without worrying about the malformed DWARF) or stop when the parse fails if the use case needs to be strict. This also will bring the LLVM DWARFDebugAbbrev interface closer to LLDB's which opens up the opportunity for LLDB adopt the LLVM implementation with minimal changes.
-
MaheshRavishankar authored
[mlir][TilingInterface] NFC code changes separated out from introduction of `scf::tileUsingSCFForallop`. (#67081) This patch contains NFC changes that are precursor to the introduction of `scf::tileUsingSCFForallOp` method introduced in https://github.com/llvm/llvm-project/pull/67083.
-
Valentin Clement (バレンタイン クレメン) authored
Same change than #67368 but for the reduction recipe.
-
Aart Bik authored
Makes outer level dense, so we get the common block-column index way of storing blocks. Also gives an example of a dim2lvl/lvl2dim map.
-
Piotr Zegar authored
Removing leftover AST dump() from a llvmlibc/ImplementationInNamespaceCheck.cpp
-
Joseph Huber authored
Summary: This enum previously manually specified the value. This just made it unnecessarily difficult to add new ones without changing everything. This patch also makes it compatible with C by removing the `:` annotation and instead using the `LAST` method.
-
Vitaly Buka authored
I am not sure why it's done this way, but it's the same from the first commit, with no explanation.
-
Nico Weber authored
Ports https://reviews.llvm.org/D106293 to bitcode, or https://github.com/llvm/llvm-project/commit/bd448f01a6 from ELF to MachO. See also #59162 for some vaguely related discussion.
-
Joseph Huber authored
Summary: This variable needs a reserved name starting with `__`. It was mistakenly changed with a mass replace. It happened to work because the tests still picked up the associated symbol, but it just became a bad name because it's not reserved anymore.
-
Vladislav Dzhidzhoev authored
RFC https://discourse.llvm.org/t/rfc-dwarfdebug-fix-and-improve-handling-imported-entities-types-and-static-local-in-subprogram-and-lexical-block-scopes/68544 Similar to imported declarations, the patch tracks function-local types in DISubprogram's 'retainedNodes' field. DwarfDebug is adjusted in accordance with the aforementioned metadata change and provided a support of function-local types scoped within a lexical block. The patch assumes that DICompileUnit's 'enums field' no longer tracks local types and DwarfDebug would assert if any locally-scoped types get placed there. Reviewed By: jmmartinez Differential Revision: https://reviews.llvm.org/D144006
-
Alexey Bataev authored
scheduling, is previously vectorized. If the main node was vectorized already, but does not require scheduling, we still can try to vectorize it in this new node instead of gathering.
-
Jacques Pienaar authored
This does not decide on any specific bytecode version or structure, but adds the scaffolding to make it easy to add.
-
Craig Topper authored
-
Siva Chandra authored
The name __llvm_libc was mass-replaced with LIBC_NAMESPACE which ended up changing the "__llvm_libc" prefix of the delete operator linkage names to "LIBC_NAMESPACE". This change corrects it by changing the namespace prefix to "__llvm_libc_<version info>".
-
Mehdi Amini authored
This is a follow-up to 8c2bff1a which lazy-initialized the diagnostic and removed the need to dynamically abandon() an InFlightDiagnostic. This further simplifies the code to not needed to return a reference to an InFlightDiagnostic and instead eagerly emit errors. Also use `emitError` as name instead of `getDiag` which seems more explicit and in-line with the common usage.
-
Ramkumar Ramachandra authored
update_analyze_test_checks.py currently outputs a warning when updating a script with the run line: $ opt -passes='print<scalar-evolution>' saying that the script doesn't support its output, when it indeed does, as evidenced by several tests in test/Analysis/ScalarEvolution generated by this script. There is even a test for update_analyze_test_checks that makes sure that SCEV output is supported. Hence, squelch the warning. While at it, rename the update_analyze_test_checks test from basic.ll to a more explicit scev.ll.
-
Craig Topper authored
-
jeanPerier authored
Currently flang-new -g is failing when compiling code containing a call in a macro to a function defined in the same file. The verification added in https://reviews.llvm.org/D157447 is valid, flang lowering was failing to propagate location information in code from macro expansion because GetSourcePositionRange does not work with them (it fails to come with an end location), but we do not need a range for the MLIR location, only the start. Use GetSourcePosition instead that works with code from macro expansion. Note that the source location is the one of the statement where the macro appeared, if needed some FusedLocation could be later built to keep a link to the macro location in the debug info.
-
Nishant Patel authored
This PR is a breakdown of the big PR #65539 which enables intel gpu integration. In this PR we pass count of parameters and size of gpu binary to runtime wrappers since the SyclRuntimeWrappers (which will come in subsequent PR) requires the spirv size for compilation and also the number of parameters to iterate over the params.
-
Aaron Ballman authored
This reverts commit b4435104. This caused too many disruptions in compiler-rt where reserved priorities were being used. Reverting to investigate appropriate solutions.
-
Simon Pilgrim authored
A future patch will use getTargetConstantBitsFromNode inside IsNOT.
-
Siva Chandra authored
A target still depending on the old target has been updated.
-
Vitaly Buka authored
-
Chen Zheng authored
This is found during address sanitizer enablement on AIX. On platforms that has no malloc/free calls before user's malloc/free calls, `__sanitizer_get_current_allocated_bytes()` should return 0. Otherwise the case like `compiler-rt/test/sanitizer_common/TestCases/allocator_interface.cpp` will fail at below scenario: ``` void Test(int size) { auto allocated_bytes_before = __sanitizer_get_current_allocated_bytes(); int *p = (int *)malloc(size); assert(__sanitizer_get_current_allocated_bytes() >= size + allocated_bytes_before); // if allocated_bytes_before is 1, this assert will fail. allocated_bytes_before should be 0 } ``` -
Vitaly Buka authored
-
Valentin Clement (バレンタイン クレメン) authored
Following #66099, the generation of private (and firstprivate) recipe needs to add a declare op. This patch adds the declare op for the case currently supported. This will fix issue #66105.
-
Peiming Liu authored
-
Craig Topper authored
…er of 2. We can use a shift+add/sub for these. This often has same or lower latency than a multiply and may have more execution resources available.
-
Aaron Ballman authored
Functions with these attributes will be automatically called before `main()` or after `main()` exits gracefully, which means the functions should not accept arguments or have a returned value (nothing can provide an argument to the call in these cases, and nothing can use the returned value), nor should they be allowed on a non-static member function or consteval function in C++. We allow 'int' as a return type for the function due to finding a significant amount of historical code using `int(void)` as a signature. Additionally, these reuse the same priority logic as the init_priority attribute which explicitly reserved priorty values <= 100 or > 65535. So we now diagnose use of reserved priorities the same as we do for the init_priority attribute.
-
Douglas Yung authored
-
Arthur Eubanks authored
Error if not used with x86_64. Warn if not used with the medium code model (can update if other code models end up using this). Set TargetMachine option and add module flag.
-
Joseph Huber authored
Summary: This feature is not needed anymore and is replaced by different implementations. The code guarded by this flag also causes us to emit an invalid argument to `-mlink-builtin-bitcode` that will cause errors if ever actually executed. Remove this feature.
-
Jay Foad authored
This demonstrates that gfx1150 does not have FeatureVALUTransUseHazard.
-
Vitaly Buka authored
-