From 6c34da5c124b49f0a96f8ff318b29640bf697f5f Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 3 Sep 2015 14:25:06 +0200 Subject: [PATCH] raise cost of oPowerDeriv to always create a temporary variable if it has been encountered at least twice --- preprocessor/ExprNode.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/preprocessor/ExprNode.cc b/preprocessor/ExprNode.cc index a0b50e54c..c10a49002 100644 --- a/preprocessor/ExprNode.cc +++ b/preprocessor/ExprNode.cc @@ -2750,7 +2750,7 @@ BinaryOpNode::cost(const temporary_terms_t &temporary_terms, bool is_matlab) con return cost + 990; case oPower: case oPowerDeriv: - return cost + 1160; + return cost + (MIN_COST_MATLAB/2+1); case oEqual: return cost; } @@ -2775,8 +2775,9 @@ BinaryOpNode::cost(const temporary_terms_t &temporary_terms, bool is_matlab) con case oDivide: return cost + 15; case oPower: - case oPowerDeriv: return cost + 520; + case oPowerDeriv: + return cost + (MIN_COST_C/2+1);; case oEqual: return cost; }