diff options
Diffstat (limited to 'include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h')
| -rw-r--r-- | include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h | 32 | 
1 files changed, 15 insertions, 17 deletions
diff --git a/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h b/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h index 173c106cd3ec..c41c1233c0d9 100644 --- a/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h +++ b/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h @@ -15,20 +15,22 @@  #define LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H  #include "llvm/ExecutionEngine/JITSymbol.h" +#include <algorithm> +#include <string>  namespace llvm {  namespace orc {  /// @brief Object mutating layer.  /// -///   This layer accepts sets of ObjectFiles (via addObjectSet). It +///   This layer accepts sets of ObjectFiles (via addObject). It  /// immediately applies the user supplied functor to each object, then adds  /// the set of transformed objects to the layer below.  template <typename BaseLayerT, typename TransformFtor>  class ObjectTransformLayer {  public:    /// @brief Handle to a set of added objects. -  typedef typename BaseLayerT::ObjSetHandleT ObjSetHandleT; +  using ObjHandleT = typename BaseLayerT::ObjHandleT;    /// @brief Construct an ObjectTransformLayer with the given BaseLayer    ObjectTransformLayer(BaseLayerT &BaseLayer, @@ -40,20 +42,16 @@ public:    ///        memory manager and symbol resolver.    ///    /// @return A handle for the added objects. -  template <typename ObjSetT, typename MemoryManagerPtrT, +  template <typename ObjPtrT, typename MemoryManagerPtrT,              typename SymbolResolverPtrT> -  ObjSetHandleT addObjectSet(ObjSetT Objects, MemoryManagerPtrT MemMgr, -                             SymbolResolverPtrT Resolver) { - -    for (auto I = Objects.begin(), E = Objects.end(); I != E; ++I) -      *I = Transform(std::move(*I)); - -    return BaseLayer.addObjectSet(std::move(Objects), std::move(MemMgr), -                                  std::move(Resolver)); +  ObjHandleT addObject(ObjPtrT Obj, MemoryManagerPtrT MemMgr, +                       SymbolResolverPtrT Resolver) { +    return BaseLayer.addObject(Transform(std::move(Obj)), std::move(MemMgr), +                               std::move(Resolver));    }    /// @brief Remove the object set associated with the handle H. -  void removeObjectSet(ObjSetHandleT H) { BaseLayer.removeObjectSet(H); } +  void removeObject(ObjHandleT H) { BaseLayer.removeObject(H); }    /// @brief Search for the given named symbol.    /// @param Name The name of the symbol to search for. @@ -71,7 +69,7 @@ public:    /// @param ExportedSymbolsOnly If true, search only for exported symbols.    /// @return A handle for the given named symbol, if it is found in the    ///         given object set. -  JITSymbol findSymbolIn(ObjSetHandleT H, const std::string &Name, +  JITSymbol findSymbolIn(ObjHandleT H, const std::string &Name,                           bool ExportedSymbolsOnly) {      return BaseLayer.findSymbolIn(H, Name, ExportedSymbolsOnly);    } @@ -79,10 +77,10 @@ public:    /// @brief Immediately emit and finalize the object set represented by the    ///        given handle.    /// @param H Handle for object set to emit/finalize. -  void emitAndFinalize(ObjSetHandleT H) { BaseLayer.emitAndFinalize(H); } +  void emitAndFinalize(ObjHandleT H) { BaseLayer.emitAndFinalize(H); }    /// @brief Map section addresses for the objects associated with the handle H. -  void mapSectionAddress(ObjSetHandleT H, const void *LocalAddress, +  void mapSectionAddress(ObjHandleT H, const void *LocalAddress,                           JITTargetAddress TargetAddr) {      BaseLayer.mapSectionAddress(H, LocalAddress, TargetAddr);    } @@ -98,7 +96,7 @@ private:    TransformFtor Transform;  }; -} // End namespace orc. -} // End namespace llvm. +} // end namespace orc +} // end namespace llvm  #endif // LLVM_EXECUTIONENGINE_ORC_OBJECTTRANSFORMLAYER_H  | 
