Skip to content

Commit ba08056

Browse files
committed
coverage: Remove the expression simplifier from CoverageCounters
These simplifications are now handled by the transcribe step.
1 parent d7090f3 commit ba08056

File tree

1 file changed

+4
-51
lines changed

1 file changed

+4
-51
lines changed

compiler/rustc_mir_transform/src/coverage/counters.rs

+4-51
Original file line numberDiff line numberDiff line change
@@ -102,57 +102,10 @@ impl CoverageCounters {
102102

103103
fn make_expression(&mut self, lhs: BcbCounter, op: Op, rhs: BcbCounter) -> BcbCounter {
104104
let new_expr = BcbExpression { lhs, op, rhs };
105-
*self
106-
.expressions_memo
107-
.entry(new_expr)
108-
.or_insert_with(|| Self::make_expression_inner(&mut self.expressions, new_expr))
109-
}
110-
111-
/// This is an associated function so that we can call it while borrowing
112-
/// `&mut self.expressions_memo`.
113-
fn make_expression_inner(
114-
expressions: &mut IndexVec<ExpressionId, BcbExpression>,
115-
new_expr: BcbExpression,
116-
) -> BcbCounter {
117-
// Simplify expressions using basic algebra.
118-
//
119-
// Some of these cases might not actually occur in practice, depending
120-
// on the details of how the instrumentor builds expressions.
121-
let BcbExpression { lhs, op, rhs } = new_expr;
122-
123-
if let BcbCounter::Expression { id } = lhs {
124-
let lhs_expr = &expressions[id];
125-
126-
// Simplify `(a - b) + b` to `a`.
127-
if lhs_expr.op == Op::Subtract && op == Op::Add && lhs_expr.rhs == rhs {
128-
return lhs_expr.lhs;
129-
}
130-
// Simplify `(a + b) - b` to `a`.
131-
if lhs_expr.op == Op::Add && op == Op::Subtract && lhs_expr.rhs == rhs {
132-
return lhs_expr.lhs;
133-
}
134-
// Simplify `(a + b) - a` to `b`.
135-
if lhs_expr.op == Op::Add && op == Op::Subtract && lhs_expr.lhs == rhs {
136-
return lhs_expr.rhs;
137-
}
138-
}
139-
140-
if let BcbCounter::Expression { id } = rhs {
141-
let rhs_expr = &expressions[id];
142-
143-
// Simplify `a + (b - a)` to `b`.
144-
if op == Op::Add && rhs_expr.op == Op::Subtract && lhs == rhs_expr.rhs {
145-
return rhs_expr.lhs;
146-
}
147-
// Simplify `a - (a - b)` to `b`.
148-
if op == Op::Subtract && rhs_expr.op == Op::Subtract && lhs == rhs_expr.lhs {
149-
return rhs_expr.rhs;
150-
}
151-
}
152-
153-
// Simplification failed, so actually create the new expression.
154-
let id = expressions.push(new_expr);
155-
BcbCounter::Expression { id }
105+
*self.expressions_memo.entry(new_expr).or_insert_with(|| {
106+
let id = self.expressions.push(new_expr);
107+
BcbCounter::Expression { id }
108+
})
156109
}
157110

158111
/// Creates a counter that is the sum of the given counters.

0 commit comments

Comments
 (0)