[all-commits] [llvm/llvm-project] 63bdca: [mlir][sparse] Moving `delete coo` into codegen in...
wren romano via All-commits
all-commits at lists.llvm.org
Fri Apr 1 11:09:06 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 63bdcaf92a5ed5dc8c9bdc0ea2d1a13b8ddb3c68
https://github.com/llvm/llvm-project/commit/63bdcaf92a5ed5dc8c9bdc0ea2d1a13b8ddb3c68
Author: wren romano <2998727+wrengr at users.noreply.github.com>
Date: 2022-04-01 (Fri, 01 Apr 2022)
Changed paths:
M mlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
M mlir/lib/ExecutionEngine/SparseTensorUtils.cpp
M mlir/test/Dialect/SparseTensor/conversion.mlir
Log Message:
-----------
[mlir][sparse] Moving `delete coo` into codegen instead of runtime library
Prior to this change there were a number of places where the allocation and deallocation of SparseTensorCOO objects were not cleanly paired, leading to inconsistencies regarding whether each function released its tensor/coo arguments or not, as well as making it easy to run afoul of memory leaks, use-after-free, or double-free errors. This change cleans up the codegen vs runtime boundary to resolve those issues. Now, the only time the runtime library frees an object is either (a) because it's a function explicitly designed to do so, or (b) because the allocated object is entirely local to the function and would be a memory leak if not released. Thus, now the codegen takes complete responsibility for releasing any objects it caused to be allocated.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D122435
More information about the All-commits
mailing list