Skip to content

Commit 57e7b2c

Browse files
committed
Bitreverse expression: use let expression in lowering
If a back-end isn't sharing aware, repeated occurrence of the operand-to-reverse could be costly.
1 parent 6076dbc commit 57e7b2c

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/util/bitvector_expr.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,9 @@ exprt bitreverse_exprt::lower() const
150150
exprt::operandst result_bits;
151151
result_bits.reserve(int_width);
152152

153-
const exprt operand = op();
153+
const symbol_exprt to_reverse("to_reverse", op().type());
154154
for(std::size_t i = 0; i < int_width; ++i)
155-
result_bits.push_back(extractbit_exprt{operand, i});
155+
result_bits.push_back(extractbit_exprt{to_reverse, i});
156156

157-
return concatenation_exprt{result_bits, type()};
157+
return let_exprt{to_reverse, op(), concatenation_exprt{result_bits, type()}};
158158
}

0 commit comments

Comments
 (0)