diff options
Diffstat (limited to 'src/ir/cost.h')
-rw-r--r-- | src/ir/cost.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ir/cost.h b/src/ir/cost.h index 63424c8b3..e3e6aebf3 100644 --- a/src/ir/cost.h +++ b/src/ir/cost.h @@ -606,6 +606,13 @@ struct CostAnalyzer : public OverriddenVisitor<CostAnalyzer, CostType> { CostType visitArrayNew(ArrayNew* curr) { return 4 + visit(curr->rtt) + visit(curr->size) + maybeVisit(curr->init); } + CostType visitArrayInit(ArrayInit* curr) { + CostType ret = 4 + visit(curr->rtt); + for (auto* child : curr->values) { + ret += visit(child); + } + return ret; + } CostType visitArrayGet(ArrayGet* curr) { return 1 + nullCheckCost(curr->ref) + visit(curr->ref) + visit(curr->index); } |