|
10 | 10 |
|
11 | 11 | from cuda.tile._ir.type import TupleTy, TokenTy |
12 | 12 | from cuda.tile._memory_model import MemoryOrder |
13 | | -from cuda.tile._exception import Loc |
| 13 | +from cuda.tile._exception import Loc, TileInternalError |
14 | 14 | from cuda.tile._ir.ir import Function, Block, IRContext, Var, Operation |
15 | 15 | from cuda.tile._ir.ops import ( |
16 | 16 | Assign, Break, BuildTuple, CarriedVariables, Continue, EndBranch, IfElse, |
@@ -150,15 +150,16 @@ def get_memory_effects(cur_op): |
150 | 150 |
|
151 | 151 | if isinstance(cur_op, LoadMemoryOperation): |
152 | 152 | effect = MemoryEffect.LOAD |
153 | | - else: |
154 | | - assert isinstance(cur_op, StoreMemoryOperation) |
| 153 | + elif isinstance(cur_op, StoreMemoryOperation): |
155 | 154 | effect = MemoryEffect.STORE |
| 155 | + else: |
| 156 | + raise TileInternalError(f"Unexpected MemoryOperation type: {type(cur_op)}") |
156 | 157 |
|
157 | 158 | has_acquire_order = False |
158 | 159 | if isinstance(cur_op, (TileAtomicCAS, TileAtomicRMW)): |
159 | | - has_acquire_order = memory_order_has_acquire(op.memory_order) |
| 160 | + has_acquire_order = memory_order_has_acquire(cur_op.memory_order) |
160 | 161 |
|
161 | | - return MemoryEffects({alias_result[_get_input_var(op).name]: effect}, has_acquire_order) |
| 162 | + return MemoryEffects({alias_result[_get_input_var(cur_op).name]: effect}, has_acquire_order) |
162 | 163 |
|
163 | 164 | blk_mem_effects = EMPTY_MEMORY_EFFECTS |
164 | 165 | for op in block.operations: |
|
0 commit comments