Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:54

0001 //===-- ObjectFileInterface.h - MU interface utils for objects --*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 //
0009 // Utilities for building MaterializationUnit::Interface objects from
0010 // object files.
0011 //
0012 //===----------------------------------------------------------------------===//
0013 
0014 #ifndef LLVM_EXECUTIONENGINE_ORC_OBJECTFILEINTERFACE_H
0015 #define LLVM_EXECUTIONENGINE_ORC_OBJECTFILEINTERFACE_H
0016 
0017 #include "llvm/ExecutionEngine/Orc/Core.h"
0018 #include "llvm/Support/MemoryBuffer.h"
0019 
0020 namespace llvm {
0021 namespace orc {
0022 
0023 /// Adds an initializer symbol to the given MU interface.
0024 /// The init symbol's name is guaranteed to be unique within I, and will be of
0025 /// the form $.<ObjFileName>.__inits.<N>, where N is some integer.
0026 void addInitSymbol(MaterializationUnit::Interface &I, ExecutionSession &ES,
0027                    StringRef ObjFileName);
0028 
0029 /// Returns a MaterializationUnit::Interface for the object file contained in
0030 /// the given buffer, or an error if the buffer does not contain a valid object
0031 /// file.
0032 Expected<MaterializationUnit::Interface>
0033 getObjectFileInterface(ExecutionSession &ES, MemoryBufferRef ObjBuffer);
0034 
0035 } // End namespace orc
0036 } // End namespace llvm
0037 
0038 #endif // LLVM_EXECUTIONENGINE_ORC_OBJECTFILEINTERFACE_H