def __init__(self, exprs):
"""
Initialize a Scope, which represents a group of :class:`Access` objects
extracted from some expressions ``exprs``. The expressions are to be
provided as they appear in program order.
"""
exprs = as_tuple(exprs)
assert all(isinstance(i, Eq) for i in exprs)
self.reads = {}
self.writes = {}
for i, e in enumerate(exprs):
# reads
for j in retrieve_indexed(e.rhs):
v = self.reads.setdefault(j.base.function, [])
mode = 'R' if not q_inc(e) else 'RI'
v.append(TimedAccess(j, mode, i))
# write
if e.lhs.is_Indexed:
v = self.writes.setdefault(e.lhs.base.function, [])
mode = 'W' if not q_inc(e) else 'WI'
v.append(TimedAccess(e.lhs, mode, i))
评论列表
文章目录