[llvm] 349e5bd - [ORC] Update mapper deinitialize functions to deinitialize in reverse order.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 8 11:00:29 PDT 2022


I know it's tedious, but any chance this can be tested?

On Tue, Aug 30, 2022 at 1:18 PM Lang Hames via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
>
> Author: Lang Hames
> Date: 2022-08-30T13:17:44-07:00
> New Revision: 349e5bd24e72ebc568c0d171cc9f3aca2674a1db
>
> URL: https://github.com/llvm/llvm-project/commit/349e5bd24e72ebc568c0d171cc9f3aca2674a1db
> DIFF: https://github.com/llvm/llvm-project/commit/349e5bd24e72ebc568c0d171cc9f3aca2674a1db.diff
>
> LOG: [ORC] Update mapper deinitialize functions to deinitialize in reverse order.
>
> This updates the ExecutorSharedMemoryMapperService::deinitialize and
> InProcessMemoryMapper::deinitialize methods to deinitialize in reverse order,
> bringing them into alignment with the behavior of
> InProcessMemoryManager::deallocate and SimpleExecutorMemoryManager::deallocate.
> Reverse deinitialization is required because later allocations can depend on
> earlier ones.
>
> This fixes failures in the ORC runtime test suite.
>
> Added:
>
>
> Modified:
>     llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp
>     llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp
>
> Removed:
>
>
>
> ################################################################################
> diff  --git a/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp b/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp
> index 115289d1c056c..384b5ae14e21d 100644
> --- a/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp
> +++ b/llvm/lib/ExecutionEngine/Orc/MemoryMapper.cpp
> @@ -110,7 +110,7 @@ void InProcessMemoryMapper::deinitialize(
>    {
>      std::lock_guard<std::mutex> Lock(Mutex);
>
> -    for (auto Base : Bases) {
> +    for (auto Base : llvm::reverse(Bases)) {
>
>        if (Error Err = shared::runDeallocActions(
>                Allocations[Base].DeinitializationActions)) {
>
> diff  --git a/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp b/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp
> index 23bf5a3f0349d..a8d5dc5a94e42 100644
> --- a/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp
> +++ b/llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorSharedMemoryMapperService.cpp
> @@ -192,7 +192,7 @@ Error ExecutorSharedMemoryMapperService::deinitialize(
>    {
>      std::lock_guard<std::mutex> Lock(Mutex);
>
> -    for (auto Base : Bases) {
> +    for (auto Base : llvm::reverse(Bases)) {
>        if (Error Err = shared::runDeallocActions(
>                Allocations[Base].DeinitializationActions)) {
>          AllErr = joinErrors(std::move(AllErr), std::move(Err));
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list