Skip to content

Commit b284917

Browse files
EdCauntmloubout
authored andcommitted
compiler: Add missing CXX and CXXOmp DataManagers and Orchestrators
1 parent ab2a796 commit b284917

3 files changed

Lines changed: 28 additions & 8 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: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
__all__ = ['SimdOmpizer', 'Ompizer', 'OmpIteration', 'OmpRegion',
2424
'DeviceOmpizer', 'DeviceOmpIteration', 'DeviceOmpDataManager',
25-
'OmpDataManager', 'OmpOrchestrator', 'DeviceOmpOrchestrator']
25+
'OmpDataManager', 'OmpOrchestrator', 'DeviceOmpOrchestrator',
26+
'CXXOmpDataManager', 'CXXOmpOrchestrator']
2627

2728

2829
class OmpRegion(ParallelBlock):
@@ -257,6 +258,10 @@ class OmpDataManager(DataManager):
257258
langbb = OmpBB
258259

259260

261+
class CXXOmpDataManager(DataManager):
262+
langbb = CXXOmpBB
263+
264+
260265
class DeviceOmpDataManager(DeviceAwareDataManager):
261266
langbb = DeviceOmpBB
262267

@@ -265,5 +270,9 @@ class OmpOrchestrator(Orchestrator):
265270
langbb = OmpBB
266271

267272

273+
class CXXOmpOrchestrator(Orchestrator):
274+
langbb = CXXOmpBB
275+
276+
268277
class DeviceOmpOrchestrator(Orchestrator):
269278
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)