Skip to content

Commit c7d038c

Browse files
committed
Verilog: rename convert_type method to elaborate_type
This renames the method that elaborates types, given that it follows the elaboration procedure in the Verilog standard.
1 parent 35e5313 commit c7d038c

File tree

5 files changed

+25
-24
lines changed

5 files changed

+25
-24
lines changed

src/verilog/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ SRC = aval_bval_encoding.cpp \
22
expr2verilog.cpp \
33
sva_expr.cpp \
44
verilog_elaborate.cpp \
5+
verilog_elaborate_type.cpp \
56
verilog_expr.cpp \
67
verilog_generate.cpp \
78
verilog_interfaces.cpp \
@@ -20,7 +21,6 @@ SRC = aval_bval_encoding.cpp \
2021
verilog_typecheck.cpp \
2122
verilog_typecheck_base.cpp \
2223
verilog_typecheck_expr.cpp \
23-
verilog_typecheck_type.cpp \
2424
verilog_y.tab.cpp \
2525
vtype.cpp
2626

src/verilog/verilog_elaborate.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ void verilog_typecheckt::collect_port_symbols(const verilog_declt &decl)
3434
else
3535
{
3636
// add the symbol
37-
typet type = convert_type(declarator.merged_type(decl.type()));
37+
typet type = elaborate_type(declarator.merged_type(decl.type()));
3838

3939
symbolt new_symbol{identifier, type, mode};
4040

@@ -245,7 +245,7 @@ void verilog_typecheckt::collect_symbols(const verilog_declt &decl)
245245

246246
symbol.base_name = declarator.base_name();
247247
symbol.location = declarator.source_location();
248-
symbol.type = convert_type(declarator.merged_type(decl.type()));
248+
symbol.type = elaborate_type(declarator.merged_type(decl.type()));
249249

250250
if(symbol.base_name.empty())
251251
{
@@ -330,7 +330,7 @@ void verilog_typecheckt::collect_symbols(const verilog_declt &decl)
330330
<< "empty symbol name";
331331
}
332332

333-
symbol.type = convert_type(declarator.merged_type(decl.type()));
333+
symbol.type = elaborate_type(declarator.merged_type(decl.type()));
334334
symbol.name = hierarchical_identifier(symbol.base_name);
335335
symbol.pretty_name = strip_verilog_prefix(symbol.name);
336336

@@ -409,7 +409,7 @@ void verilog_typecheckt::collect_symbols(const verilog_declt &decl)
409409

410410
symbol.base_name = declarator.base_name();
411411
symbol.location = declarator.source_location();
412-
symbol.type = convert_type(declarator.merged_type(decl.type()));
412+
symbol.type = elaborate_type(declarator.merged_type(decl.type()));
413413

414414
if(symbol.base_name.empty())
415415
{
@@ -470,7 +470,7 @@ void verilog_typecheckt::collect_symbols(const verilog_declt &decl)
470470

471471
symbol.base_name = declarator.base_name();
472472
symbol.location = declarator.source_location();
473-
symbol.type = convert_type(declarator.merged_type(decl.type()));
473+
symbol.type = elaborate_type(declarator.merged_type(decl.type()));
474474

475475
if(symbol.base_name.empty())
476476
{
@@ -524,7 +524,7 @@ void verilog_typecheckt::collect_symbols(const verilog_declt &decl)
524524
typet return_type;
525525

526526
if(decl_class == ID_function)
527-
return_type = convert_type(decl.type());
527+
return_type = elaborate_type(decl.type());
528528
else
529529
return_type = empty_typet();
530530

@@ -941,7 +941,7 @@ void verilog_typecheckt::elaborate_symbol_rec(irep_idt identifier)
941941
{
942942
// No, elaborate the type.
943943
auto elaborated_type =
944-
convert_type(to_type_with_subtype(symbol.type).subtype());
944+
elaborate_type(to_type_with_subtype(symbol.type).subtype());
945945
symbol.type = elaborated_type;
946946

947947
// Now elaborate the value, possibly recursively, if any.

src/verilog/verilog_typecheck_type.cpp renamed to src/verilog/verilog_elaborate_type.cpp

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ array_typet verilog_typecheck_exprt::convert_unpacked_array_type(
6969
}
7070

7171
// recursively convert element_type
72-
typet element_type = convert_type(src.subtype());
72+
typet element_type = elaborate_type(src.subtype());
7373

7474
const exprt final_size_expr = from_integer(size, integer_typet());
7575
auto result = array_typet{element_type, final_size_expr};
@@ -81,7 +81,7 @@ array_typet verilog_typecheck_exprt::convert_unpacked_array_type(
8181

8282
/*******************************************************************\
8383
84-
Function: verilog_typecheck_exprt::convert_type
84+
Function: verilog_typecheck_exprt::elaborate_type
8585
8686
Inputs:
8787
@@ -91,11 +91,11 @@ Function: verilog_typecheck_exprt::convert_type
9191
9292
\*******************************************************************/
9393

94-
typet verilog_typecheck_exprt::convert_type(const typet &src)
94+
typet verilog_typecheck_exprt::elaborate_type(const typet &src)
9595
{
9696
const auto &source_location = src.source_location();
9797

98-
if(src.is_nil() || src.id()==ID_reg)
98+
if(src.is_nil() || src.id() == ID_reg)
9999
{
100100
// it's just a bit
101101
return bool_typet().with_source_location(source_location);
@@ -170,15 +170,15 @@ typet verilog_typecheck_exprt::convert_type(const typet &src)
170170
// The default base type is 'int'.
171171
auto &enum_type = to_verilog_enum_type(src);
172172
auto result = enum_type.has_base_type()
173-
? convert_type(enum_type.base_type())
173+
? elaborate_type(enum_type.base_type())
174174
: signedbv_typet(32);
175175
result.set(ID_C_verilog_type, ID_verilog_enum);
176176
result.set(ID_C_identifier, enum_type.identifier());
177177
return result.with_source_location(source_location);
178178
}
179179
else if(src.id() == ID_verilog_packed_array)
180180
{
181-
const exprt &range=static_cast<const exprt &>(src.find(ID_range));
181+
const exprt &range = static_cast<const exprt &>(src.find(ID_range));
182182

183183
mp_integer msb, lsb;
184184
convert_range(range, msb, lsb);
@@ -201,7 +201,8 @@ typet verilog_typecheck_exprt::convert_type(const typet &src)
201201
{
202202
// we have a bit-vector type, not an array
203203

204-
bitvector_typet dest(subtype.id()==ID_signed?ID_signedbv:ID_unsignedbv);
204+
bitvector_typet dest(
205+
subtype.id() == ID_signed ? ID_signedbv : ID_unsignedbv);
205206

206207
dest.add_source_location() = source_location;
207208
dest.set_width(width.to_ulong());
@@ -214,8 +215,8 @@ typet verilog_typecheck_exprt::convert_type(const typet &src)
214215
{
215216
// We have a multi-dimensional packed array,
216217
// and do a recursive call.
217-
const exprt size=from_integer(width, integer_typet());
218-
typet s=convert_type(subtype);
218+
const exprt size = from_integer(width, integer_typet());
219+
typet s = elaborate_type(subtype);
219220

220221
array_typet result(s, size);
221222
result.add_source_location() = source_location;
@@ -239,12 +240,12 @@ typet verilog_typecheck_exprt::convert_type(const typet &src)
239240
return expr.type().with_source_location(source_location);
240241
}
241242
else
242-
return convert_type(type_reference.type_op());
243+
return elaborate_type(type_reference.type_op());
243244
}
244245
else if(src.id() == ID_to_be_elaborated)
245246
{
246247
// recursive call
247-
return convert_type(to_to_be_elaborated_type(src).subtype());
248+
return elaborate_type(to_to_be_elaborated_type(src).subtype());
248249
}
249250
else if(src.id() == ID_struct || src.id() == ID_union)
250251
{
@@ -259,7 +260,7 @@ typet verilog_typecheck_exprt::convert_type(const typet &src)
259260
declaration.id() == ID_decl, "struct type must have declarations");
260261

261262
// Convert the type
262-
auto type = convert_type(declaration_expr.type());
263+
auto type = elaborate_type(declaration_expr.type());
263264

264265
// Convert the declarators
265266
for(auto &declarator_expr : declaration_expr.operands())

src/verilog/verilog_typecheck_expr.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -916,7 +916,7 @@ exprt verilog_typecheck_exprt::convert_nullary_expr(nullary_exprt expr)
916916
else if(expr.id() == ID_type)
917917
{
918918
// Used, e.g., for $bits
919-
expr.type() = convert_type(expr.type());
919+
expr.type() = elaborate_type(expr.type());
920920
return std::move(expr);
921921
}
922922
else
@@ -2432,13 +2432,13 @@ exprt verilog_typecheck_exprt::convert_unary_expr(unary_exprt expr)
24322432
// SystemVerilog has got type'(expr). This is an explicit
24332433
// type cast.
24342434
convert_expr(expr.op());
2435-
auto new_type = convert_type(expr.type());
2435+
auto new_type = elaborate_type(expr.type());
24362436
return typecast_exprt{expr.op(), new_type}.with_source_location(expr);
24372437
}
24382438
else if(expr.id() == ID_verilog_implicit_typecast)
24392439
{
24402440
// We generate implict casts during elaboration.
2441-
expr.type() = convert_type(expr.type());
2441+
expr.type() = elaborate_type(expr.type());
24422442
convert_expr(expr.op());
24432443
expr.id(ID_typecast);
24442444
}

src/verilog/verilog_typecheck_expr.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ class verilog_typecheck_exprt:public verilog_typecheck_baset
6060

6161
void propagate_type(exprt &expr, const typet &type);
6262

63-
typet convert_type(const typet &);
63+
typet elaborate_type(const typet &);
6464
typet convert_enum(const class verilog_enum_typet &);
6565
array_typet convert_unpacked_array_type(const type_with_subtypet &);
6666

0 commit comments

Comments
 (0)