Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
llvmjit_module.h
Go to the documentation of this file.
1/*
2 * Copyright 2025 Stanford University, NVIDIA Corporation
3 * SPDX-License-Identifier: Apache-2.0
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef LLVMJIT_MODULE_H
19#define LLVMJIT_MODULE_H
20
21// NOTE: let's try to keep LLVM include files/etc. out of here, because they bring
22// a bunch of C++11 baggage
23
24#include "realm/module.h"
25
26#include <string>
27
28namespace Realm {
29 namespace LLVMJit {
30
31 class LLVMJitInternal;
32
33 // our interface to the rest of the runtime
34 class LLVMJitModule : public Module {
35 protected:
37
38 public:
39 virtual ~LLVMJitModule(void);
40
42
43 static Module *create_module(RuntimeImpl *runtime);
44
45 // do any general initialization - this is called after all configuration is
46 // complete
47 virtual void initialize(RuntimeImpl *runtime);
48
49 // create any memories provided by this module (default == do nothing)
50 // virtual void create_memories(RuntimeImpl *runtime);
51
52 // create any processors provided by the module (default == do nothing)
53 // virtual void create_processors(RuntimeImpl *runtime);
54
55 // create any DMA channels provided by the module (default == do nothing)
56 // virtual void create_dma_channels(RuntimeImpl *runtime);
57
58 // create any code translators provided by the module (default == do nothing)
59 virtual void create_code_translators(RuntimeImpl *runtime);
60
61 // clean up any common resources created by the module - this will be called
62 // after all memories/processors/etc. have been shut down and destroyed
63 virtual void cleanup(void);
64
65 public:
67 };
68
69 }; // namespace LLVMJit
70
71}; // namespace Realm
72
73#endif
Definition llvmjit_internal.h:35
Definition llvmjit_module.h:34
LLVMJitInternal * internal
Definition llvmjit_module.h:66
static ModuleConfig * create_module_config(RuntimeImpl *runtime)
virtual void initialize(RuntimeImpl *runtime)
virtual void create_code_translators(RuntimeImpl *runtime)
static Module * create_module(RuntimeImpl *runtime)
virtual void cleanup(void)
Definition module_config.h:32
Definition module.h:42
Definition runtime_impl.h:264
Definition activemsg.h:38