Skip to content

Commit e41511b

Browse files
authored
Merge pull request #368 from diffblue/remove-binary_to_hex
Verilog: remove binary_to_hex
2 parents 0bc98d2 + 1620110 commit e41511b

File tree

2 files changed

+5
-45
lines changed

2 files changed

+5
-45
lines changed

src/util/ebmc_util.h

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -57,44 +57,4 @@ inline void cnf_gate_and(cnft &cnf, literalt a, literalt b, literalt o) {
5757
cnf.lcnf(lits);
5858
}
5959

60-
inline std::optional<std::pair<std::string, std::size_t>>
61-
b2h_conversion_specs(const exprt &expr)
62-
{
63-
if (expr.id() == ID_constant) {
64-
auto &constant_expr = to_constant_expr(expr);
65-
const typet &type = constant_expr.type();
66-
if (type.id() == ID_unsignedbv || type.id() == ID_signedbv) {
67-
const std::size_t &width = to_bitvector_type(type).get_width();
68-
const std::string value = id2string(constant_expr.get_value());
69-
if (value.size() == width &&
70-
std::all_of(value.begin(), value.end(),
71-
[](char c) { return (c == '0' || c == '1'); })) {
72-
return std::make_pair(value, width);
73-
}
74-
}
75-
}
76-
77-
return {};
78-
}
79-
80-
inline void binary_to_hex_reinterpret(exprt &expr) {
81-
auto conversion_specs = b2h_conversion_specs(expr);
82-
if (conversion_specs.has_value()) {
83-
expr.set(ID_value, integer2bvrep(string2integer(conversion_specs->first, 2),
84-
conversion_specs->second));
85-
}
86-
}
87-
88-
inline exprt binary_to_hex(const exprt &expr) {
89-
auto conversion_specs = b2h_conversion_specs(expr);
90-
if (conversion_specs.has_value()) {
91-
return constant_exprt{
92-
integer2bvrep(string2integer(conversion_specs->first, 2),
93-
conversion_specs->second),
94-
expr.type()};
95-
}
96-
97-
return expr;
98-
}
99-
10060
#endif // HW_CBMC_UTIL_EBMC_UTIL_H

src/verilog/verilog_synthesis.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1902,7 +1902,8 @@ exprt verilog_synthesist::case_comparison(
19021902
new_pattern_value[i]=='x')
19031903
new_pattern_value[i]='0';
19041904

1905-
constant_exprt new_pattern{new_pattern_value, new_type};
1905+
auto new_pattern =
1906+
from_integer(string2integer(new_pattern_value, 2), new_type);
19061907

19071908
std::string new_mask_value=
19081909
id2string(to_constant_expr(tmp).get_value());
@@ -1916,12 +1917,11 @@ exprt verilog_synthesist::case_comparison(
19161917
else
19171918
new_mask_value[i]='1';
19181919

1919-
constant_exprt new_mask{new_mask_value, new_type};
1920+
auto new_mask = from_integer(string2integer(new_mask_value, 2), new_type);
19201921

1921-
exprt bitand_expr =
1922-
bitand_exprt{new_case_operand, binary_to_hex(new_mask)};
1922+
exprt bitand_expr = bitand_exprt{new_case_operand, new_mask};
19231923

1924-
return equal_exprt{bitand_expr, binary_to_hex(new_pattern)};
1924+
return equal_exprt{bitand_expr, new_pattern};
19251925
}
19261926
}
19271927

0 commit comments

Comments
 (0)