Skip to content

Commit f3d7aca

Browse files
committed
compiler: Fixup efunc abstraction w ComponentAccess
1 parent 4c9e5c2 commit f3d7aca

2 files changed

Lines changed: 19 additions & 2 deletions

File tree

devito/ir/iet/nodes.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,16 @@ def ccode(self):
102102

103103
@property
104104
def view(self):
105-
"""A representation of the IET rooted in ``self``."""
105+
"""A high-level representation of the IET rooted in `self`."""
106106
from devito.ir.iet.visitors import printAST
107107
return printAST(self)
108108

109+
@property
110+
def view_cir(self):
111+
from devito.ir.iet.visitors import CGen
112+
from devito.passes.iet.languages.CIR import CIRPrinter
113+
return str(CGen(printer=CIRPrinter).visit(self))
114+
109115
@property
110116
def children(self):
111117
"""Return the traversable children."""
@@ -148,7 +154,7 @@ def writes(self):
148154
return ()
149155

150156
def _signature_items(self):
151-
return (str(self),)
157+
return (self.view_cir,)
152158

153159

154160
class ExprStmt:

devito/passes/iet/languages/CIR.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from .C import CPrinter
2+
3+
4+
class CIRPrinter(CPrinter):
5+
6+
"""
7+
A smarter printer for IETs undergoing lowering.
8+
"""
9+
10+
def _print_ComponentAccess(self, expr):
11+
return f"{self._print(expr.base)}.<{expr.sindex},{expr.function.ncomp}>"

0 commit comments

Comments
 (0)