Skip to content

Commit 4b043c3

Browse files
committed
compiler: Add missing CXX and CXXOmp DataManagers and Orchestrators
1 parent 026eaf8 commit 4b043c3

3 files changed

Lines changed: 26 additions & 7 deletions

File tree

devito/passes/iet/languages/CXX.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
from sympy.printing.cxx import CXX11CodePrinter
33

44
from devito.ir import Call, UsingNamespace, BasePrinter
5+
from devito.passes.iet.definitions import DataManager
6+
from devito.passes.iet.orchestration import Orchestrator
57
from devito.passes.iet.langbase import LangBB
68
from devito.symbolics import c_complex, c_double_complex
79
from devito.tools import dtype_to_cstr
810

9-
__all__ = ['CXXBB']
11+
__all__ = ['CXXBB', 'CXXDataManager', 'CXXOrchestrator']
1012

1113

1214
def std_arith(prefix=None):
@@ -88,6 +90,14 @@ class CXXBB(LangBB):
8890
}
8991

9092

93+
class CXXDataManager(DataManager):
94+
langbb = CXXBB
95+
96+
97+
class CXXOrchestrator(Orchestrator):
98+
langbb = CXXBB
99+
100+
91101
class CXXPrinter(BasePrinter, CXX11CodePrinter):
92102

93103
_default_settings = {**BasePrinter._default_settings,

devito/passes/iet/languages/openmp.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,10 @@ class OmpDataManager(DataManager):
257257
langbb = OmpBB
258258

259259

260+
class CXXOmpDataManager(DataManager):
261+
langbb = CXXOmpBB
262+
263+
260264
class DeviceOmpDataManager(DeviceAwareDataManager):
261265
langbb = DeviceOmpBB
262266

@@ -265,5 +269,9 @@ class OmpOrchestrator(Orchestrator):
265269
langbb = OmpBB
266270

267271

272+
class CXXOmpOrchestrator(Orchestrator):
273+
langbb = CXXOmpBB
274+
275+
268276
class DeviceOmpOrchestrator(Orchestrator):
269277
langbb = DeviceOmpBB

devito/passes/iet/languages/targets.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from devito.passes.iet.languages.C import CDataManager, COrchestrator, CPrinter
2-
from devito.passes.iet.languages.CXX import CXXPrinter
2+
from devito.passes.iet.languages.CXX import CXXDataManager, CXXOrchestrator, CXXPrinter
33
from devito.passes.iet.languages.openmp import (SimdOmpizer, Ompizer, DeviceOmpizer,
44
OmpDataManager, DeviceOmpDataManager,
55
OmpOrchestrator, DeviceOmpOrchestrator,
6-
CXXSimdOmpizer, CXXOmpizer)
6+
CXXSimdOmpizer, CXXOmpizer,
7+
CXXOmpDataManager, CXXOmpOrchestrator)
78
from devito.passes.iet.languages.openacc import (DeviceAccizer, DeviceAccDataManager,
89
AccOrchestrator, AccPrinter)
910
from devito.passes.iet.instrument import instrument
@@ -36,8 +37,8 @@ class CTarget(Target):
3637

3738
class CXXTarget(Target):
3839
Parizer = CXXSimdOmpizer
39-
DataManager = CDataManager
40-
Orchestrator = COrchestrator
40+
DataManager = CXXDataManager
41+
Orchestrator = CXXOrchestrator
4142
Printer = CXXPrinter
4243

4344

@@ -53,8 +54,8 @@ class COmpTarget(Target):
5354

5455
class CXXOmpTarget(Target):
5556
Parizer = CXXOmpizer
56-
DataManager = OmpDataManager
57-
Orchestrator = OmpOrchestrator
57+
DataManager = CXXOmpDataManager
58+
Orchestrator = CXXOmpOrchestrator
5859
Printer = CXXPrinter
5960

6061

0 commit comments

Comments
 (0)