Preprocessor: never set an equal node as a temporary term
parent
7eff7c40c6
commit
49389592e7
|
@ -2120,10 +2120,12 @@ BinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If the node has already been encountered, increment its ref count
|
/* If the node has already been encountered, increment its ref count
|
||||||
// and declare it as a temporary term if it is too costly
|
and declare it as a temporary term if it is too costly (except if it is
|
||||||
|
an equal node: we don't want them as temporary terms) */
|
||||||
reference_count[this2]++;
|
reference_count[this2]++;
|
||||||
if (reference_count[this2] * cost(temporary_terms, is_matlab) > MIN_COST(is_matlab))
|
if (reference_count[this2] * cost(temporary_terms, is_matlab) > MIN_COST(is_matlab)
|
||||||
|
&& op_code != oEqual)
|
||||||
temporary_terms.insert(this2);
|
temporary_terms.insert(this2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2148,7 +2150,8 @@ BinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
reference_count[this2]++;
|
reference_count[this2]++;
|
||||||
if (reference_count[this2] * cost(temporary_terms, false) > MIN_COST_C)
|
if (reference_count[this2] * cost(temporary_terms, false) > MIN_COST_C
|
||||||
|
&& op_code != oEqual)
|
||||||
{
|
{
|
||||||
temporary_terms.insert(this2);
|
temporary_terms.insert(this2);
|
||||||
v_temporary_terms[first_occurence[this2].first][first_occurence[this2].second].insert(this2);
|
v_temporary_terms[first_occurence[this2].first][first_occurence[this2].second].insert(this2);
|
||||||
|
|
Loading…
Reference in New Issue