forked from OSchip/llvm-project
Revert "Fix namespace for MLIR Async Runtime"
This reverts commit b7d80058ff
.
The mlir-windows buildbot is broken.
This commit is contained in:
parent
bab7486416
commit
29fffff8d3
|
@ -16,10 +16,21 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#ifndef MLIR_ASYNCRUNTIME_EXPORT
|
||||
#ifdef mlir_async_runtime_EXPORTS
|
||||
// We are building this library
|
||||
#define MLIR_ASYNCRUNTIME_EXPORT __declspec(dllexport)
|
||||
#define MLIR_ASYNCRUNTIME_DEFINE_FUNCTIONS
|
||||
#else
|
||||
// We are using this library
|
||||
#define MLIR_ASYNCRUNTIME_EXPORT __declspec(dllimport)
|
||||
#endif // mlir_async_runtime_EXPORTS
|
||||
#endif // MLIR_ASYNCRUNTIME_EXPORT
|
||||
#else
|
||||
#define MLIR_ASYNCRUNTIME_EXPORT
|
||||
#define MLIR_ASYNCRUNTIME_DEFINE_FUNCTIONS
|
||||
#endif // _WIN32
|
||||
|
||||
namespace mlir {
|
||||
namespace runtime {
|
||||
|
@ -51,67 +62,78 @@ using CoroResume = void (*)(void *); // coroutine resume function
|
|||
using RefCountedObjPtr = void *;
|
||||
|
||||
// Adds references to reference counted runtime object.
|
||||
extern "C" void mlirAsyncRuntimeAddRef(RefCountedObjPtr, int32_t);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAddRef(RefCountedObjPtr, int32_t);
|
||||
|
||||
// Drops references from reference counted runtime object.
|
||||
extern "C" void mlirAsyncRuntimeDropRef(RefCountedObjPtr, int32_t);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeDropRef(RefCountedObjPtr, int32_t);
|
||||
|
||||
// Create a new `async.token` in not-ready state.
|
||||
extern "C" AsyncToken *mlirAsyncRuntimeCreateToken();
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT AsyncToken *mlirAsyncRuntimeCreateToken();
|
||||
|
||||
// Create a new `async.value` in not-ready state. Size parameter specifies the
|
||||
// number of bytes that will be allocated for the async value storage. Storage
|
||||
// is owned by the `async.value` and deallocated when the async value is
|
||||
// destructed (reference count drops to zero).
|
||||
extern "C" AsyncValue *mlirAsyncRuntimeCreateValue(int32_t);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT AsyncValue *
|
||||
mlirAsyncRuntimeCreateValue(int32_t);
|
||||
|
||||
// Create a new `async.group` in empty state.
|
||||
extern "C" AsyncGroup *mlirAsyncRuntimeCreateGroup();
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT AsyncGroup *mlirAsyncRuntimeCreateGroup();
|
||||
|
||||
extern "C" int64_t mlirAsyncRuntimeAddTokenToGroup(AsyncToken *, AsyncGroup *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT int64_t
|
||||
mlirAsyncRuntimeAddTokenToGroup(AsyncToken *, AsyncGroup *);
|
||||
|
||||
// Switches `async.token` to ready state and runs all awaiters.
|
||||
extern "C" void mlirAsyncRuntimeEmplaceToken(AsyncToken *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeEmplaceToken(AsyncToken *);
|
||||
|
||||
// Switches `async.value` to ready state and runs all awaiters.
|
||||
extern "C" void mlirAsyncRuntimeEmplaceValue(AsyncValue *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeEmplaceValue(AsyncValue *);
|
||||
|
||||
// Blocks the caller thread until the token becomes ready.
|
||||
extern "C" void mlirAsyncRuntimeAwaitToken(AsyncToken *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitToken(AsyncToken *);
|
||||
|
||||
// Blocks the caller thread until the value becomes ready.
|
||||
extern "C" void mlirAsyncRuntimeAwaitValue(AsyncValue *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitValue(AsyncValue *);
|
||||
|
||||
// Blocks the caller thread until the elements in the group become ready.
|
||||
extern "C" void mlirAsyncRuntimeAwaitAllInGroup(AsyncGroup *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitAllInGroup(AsyncGroup *);
|
||||
|
||||
// Returns a pointer to the storage owned by the async value.
|
||||
extern "C" ValueStorage mlirAsyncRuntimeGetValueStorage(AsyncValue *);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT ValueStorage
|
||||
mlirAsyncRuntimeGetValueStorage(AsyncValue *);
|
||||
|
||||
// Executes the task (coro handle + resume function) in one of the threads
|
||||
// managed by the runtime.
|
||||
extern "C" void mlirAsyncRuntimeExecute(CoroHandle, CoroResume);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void mlirAsyncRuntimeExecute(CoroHandle,
|
||||
CoroResume);
|
||||
|
||||
// Executes the task (coro handle + resume function) in one of the threads
|
||||
// managed by the runtime after the token becomes ready.
|
||||
extern "C" void mlirAsyncRuntimeAwaitTokenAndExecute(AsyncToken *, CoroHandle,
|
||||
CoroResume);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitTokenAndExecute(AsyncToken *, CoroHandle, CoroResume);
|
||||
|
||||
// Executes the task (coro handle + resume function) in one of the threads
|
||||
// managed by the runtime after the value becomes ready.
|
||||
extern "C" void mlirAsyncRuntimeAwaitValueAndExecute(AsyncValue *, CoroHandle,
|
||||
CoroResume);
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitValueAndExecute(AsyncValue *, CoroHandle, CoroResume);
|
||||
|
||||
// Executes the task (coro handle + resume function) in one of the threads
|
||||
// managed by the runtime after the all members of the group become ready.
|
||||
extern "C" void
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void
|
||||
mlirAsyncRuntimeAwaitAllInGroupAndExecute(AsyncGroup *, CoroHandle, CoroResume);
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Small async runtime support library for testing.
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
extern "C" void mlirAsyncRuntimePrintCurrentThreadId();
|
||||
extern "C" MLIR_ASYNCRUNTIME_EXPORT void mlirAsyncRuntimePrintCurrentThreadId();
|
||||
|
||||
} // namespace runtime
|
||||
} // namespace mlir
|
||||
|
|
|
@ -182,6 +182,8 @@ struct AsyncGroup : public RefCounted {
|
|||
std::vector<std::function<void()>> awaiters;
|
||||
};
|
||||
|
||||
} // namespace runtime
|
||||
} // namespace mlir
|
||||
|
||||
// Adds references to reference counted runtime object.
|
||||
extern "C" void mlirAsyncRuntimeAddRef(RefCountedObjPtr ptr, int32_t count) {
|
||||
|
@ -367,11 +369,8 @@ extern "C" void mlirAsyncRuntimePrintCurrentThreadId() {
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
// Export symbols for the MLIR runner integration. All other symbols are hidden.
|
||||
#ifdef _WIN32
|
||||
#define API __declspec(dllexport)
|
||||
#else
|
||||
#ifndef _WIN32
|
||||
#define API __attribute__((visibility("default")))
|
||||
#endif
|
||||
|
||||
extern "C" API void __mlir_runner_init(llvm::StringMap<void *> &exportSymbols) {
|
||||
auto exportSymbol = [&](llvm::StringRef name, auto ptr) {
|
||||
|
@ -417,7 +416,6 @@ extern "C" API void __mlir_runner_init(llvm::StringMap<void *> &exportSymbols) {
|
|||
|
||||
extern "C" API void __mlir_runner_destroy() { resetDefaultAsyncRuntime(); }
|
||||
|
||||
} // namespace runtime
|
||||
} // namespace mlir
|
||||
#endif // _WIN32
|
||||
|
||||
#endif // MLIR_ASYNCRUNTIME_DEFINE_FUNCTIONS
|
||||
|
|
Loading…
Reference in New Issue