|
17 | 17 | from devito.symbolics import FieldFromComposite, FieldFromPointer, IndexedPointer, search |
18 | 18 | from devito.tools import DAG, as_tuple, filter_ordered, sorted_priority, timed_pass |
19 | 19 | from devito.types import ( |
20 | | - Array, Bundle, ComponentAccess, CompositeObject, IncrDimension, Indirection, Lock, |
21 | | - ModuloDimension, NPThreads, NThreadsBase, Pointer, SharedData, Symbol, Temp, |
22 | | - ThreadArray, Wildcard |
| 20 | + Array, Bundle, ComponentAccess, CompositeObject, FunctionMap, IncrDimension, |
| 21 | + Indirection, ModuloDimension, NPThreads, NThreadsBase, Pointer, SharedData, |
| 22 | + Symbol, Temp, ThreadArray, Wildcard |
23 | 23 | ) |
24 | 24 | from devito.types.args import ArgProvider |
25 | 25 | from devito.types.dense import DiscreteFunction |
@@ -550,12 +550,19 @@ def _(i, mapper, sregistry): |
550 | 550 |
|
551 | 551 | @abstract_object.register(Array) |
552 | 552 | def _(i, mapper, sregistry): |
553 | | - if isinstance(i, Lock): |
554 | | - name = sregistry.make_name(prefix='lock') |
| 553 | + name = sregistry.make_name(prefix=i._symbol_prefix) |
| 554 | + |
| 555 | + if i.initvalue is not None: |
| 556 | + initvalue = [] |
| 557 | + for v in i.initvalue: |
| 558 | + try: |
| 559 | + initvalue.append(v.xreplace(mapper)) |
| 560 | + except AttributeError: |
| 561 | + initvalue.append(v) |
555 | 562 | else: |
556 | | - name = sregistry.make_name(prefix='a') |
| 563 | + initvalue = None |
557 | 564 |
|
558 | | - v = i._rebuild(name=name, alias=True) |
| 565 | + v = i._rebuild(name=name, initvalue=initvalue, alias=True) |
559 | 566 |
|
560 | 567 | mapper.update({ |
561 | 568 | i: v, |
@@ -662,6 +669,16 @@ def _(i, mapper, sregistry): |
662 | 669 | mapper[i] = i._rebuild(name=sregistry.make_name(prefix='ptr')) |
663 | 670 |
|
664 | 671 |
|
| 672 | +@abstract_object.register(FunctionMap) |
| 673 | +def _(i, mapper, sregistry): |
| 674 | + name = sregistry.make_name(prefix=i._symbol_prefix) |
| 675 | + tensor = mapper.get(i.tensor, i.tensor) |
| 676 | + |
| 677 | + v = i._rebuild(name, tensor) |
| 678 | + |
| 679 | + mapper[i] = v |
| 680 | + |
| 681 | + |
665 | 682 | @abstract_object.register(NPThreads) |
666 | 683 | def _(i, mapper, sregistry): |
667 | 684 | mapper[i] = i._rebuild(name=sregistry.make_name(prefix='npthreads')) |
|
0 commit comments