@@ -64,6 +64,7 @@ typedef struct _elab_ctx {
64
64
hash_t * generics ;
65
65
jit_t * jit ;
66
66
unit_registry_t * registry ;
67
+ mir_context_t * mir ;
67
68
lower_unit_t * lowered ;
68
69
cover_data_t * cover ;
69
70
sdf_file_t * sdf ;
@@ -264,7 +265,7 @@ static mod_cache_t *elab_cached_module(vlog_node_t mod, const elab_ctx_t *ctx)
264
265
if (mc == NULL ) {
265
266
mc = xcalloc (sizeof (mod_cache_t ));
266
267
mc -> module = mod ;
267
- mc -> shape = vlog_lower (ctx -> registry , mod );
268
+ mc -> shape = vlog_lower (ctx -> registry , ctx -> mir , mod );
268
269
269
270
mc -> block = tree_new (T_BLOCK );
270
271
tree_set_loc (mc -> block , vlog_loc (mod ));
@@ -1315,6 +1316,7 @@ static void elab_inherit_context(elab_ctx_t *ctx, const elab_ctx_t *parent)
1315
1316
ctx -> parent = parent ;
1316
1317
ctx -> jit = parent -> jit ;
1317
1318
ctx -> registry = parent -> registry ;
1319
+ ctx -> mir = parent -> mir ;
1318
1320
ctx -> root = parent -> root ;
1319
1321
ctx -> dotted = ctx -> dotted ?: parent -> dotted ;
1320
1322
ctx -> inst_name = ctx -> inst_name ?: parent -> inst_name ;
@@ -2218,8 +2220,8 @@ static void elab_verilog_root_cb(void *arg)
2218
2220
elab_verilog_module (NULL , vlog_ident2 (mc -> module ), mc , ctx );
2219
2221
}
2220
2222
2221
- tree_t elab (object_t * top , jit_t * jit , unit_registry_t * ur , cover_data_t * cover ,
2222
- sdf_file_t * sdf , rt_model_t * m )
2223
+ tree_t elab (object_t * top , jit_t * jit , unit_registry_t * ur , mir_context_t * mc ,
2224
+ cover_data_t * cover , sdf_file_t * sdf , rt_model_t * m )
2223
2225
{
2224
2226
make_new_arena ();
2225
2227
@@ -2251,6 +2253,7 @@ tree_t elab(object_t *top, jit_t *jit, unit_registry_t *ur, cover_data_t *cover,
2251
2253
.jit = jit ,
2252
2254
.sdf = sdf ,
2253
2255
.registry = ur ,
2256
+ .mir = mc ,
2254
2257
.modcache = hash_new (16 ),
2255
2258
.dotted = lib_name (work ),
2256
2259
.model = m ,
0 commit comments