[all-commits] [llvm/llvm-project] c154cd: [Orc] Fix tracking of pending debug objects in Deb...
Stefan Gränitz via All-commits
all-commits at lists.llvm.org
Mon Mar 22 09:48:12 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c154cddabd71bb8a1c8ea79848bc42f984bd1150
https://github.com/llvm/llvm-project/commit/c154cddabd71bb8a1c8ea79848bc42f984bd1150
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2021-03-22 (Mon, 22 Mar 2021)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h
M llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp
Log Message:
-----------
[Orc] Fix tracking of pending debug objects in DebugObjectManagerPlugin
There can be multiple MaterializationResponsibilitys in-flight for a single ResourceKey. Hence, pending debug objects must be tracked by MaterializationResponsibility and not by ResourceKey.
Differential Revision: https://reviews.llvm.org/D98785
Commit: cbcc1c9f87080779bf138259a9177e8f2fe674c7
https://github.com/llvm/llvm-project/commit/cbcc1c9f87080779bf138259a9177e8f2fe674c7
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2021-03-22 (Mon, 22 Mar 2021)
Changed paths:
M llvm/lib/ExecutionEngine/Orc/DebugObjectManagerPlugin.cpp
Log Message:
-----------
[Orc] Make usage of ResourceKeys thread-safe in DebugObjectManagerPlugin
Don't leak ResourceKeys from MaterializationResponsibility::withResourceKeyDo() in notifyEmitted().
Also make some improvements in the overall implementation.
Differential Revision: https://reviews.llvm.org/D98863
Commit: 50e499a56d66d8041d39ef1f8047533d50c2d165
https://github.com/llvm/llvm-project/commit/50e499a56d66d8041d39ef1f8047533d50c2d165
Author: Stefan Gränitz <stefan.graenitz at gmail.com>
Date: 2021-03-22 (Mon, 22 Mar 2021)
Changed paths:
M llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h
Log Message:
-----------
[Orc] Fix copy elision warning in RPCUtils
The `callB()` template function always moved errors on return, because in the majority of cases its return type is an `Expected<T>` and the error must be moved into the implicit ctor.
For the special case of a `void` result, however, the `ResultTraits` class is specialized and the return type is a raw `Error`. Some build bots complain, that in favor of NRVO errors should not be moved in this case.
```
llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1513:27:
llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1519:27:
llvm/include/llvm/ExecutionEngine/Orc/Shared/RPCUtils.h:1526:29:
warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move]
```
The warning is reasonable from a type-system point of view. For performance it's entirely insignificant.
Differential Revision: https://reviews.llvm.org/D98947
Compare: https://github.com/llvm/llvm-project/compare/d4648eeaa270...50e499a56d66
More information about the All-commits
mailing list