Index: runtime/vm/flow_graph_optimizer.h |
diff --git a/runtime/vm/flow_graph_optimizer.h b/runtime/vm/flow_graph_optimizer.h |
index 5b05ea737739db1a9cd7d1e58f9f0b48fc9801b4..7f524cc5eb7d83585864665df32c23792249da21 100644 |
--- a/runtime/vm/flow_graph_optimizer.h |
+++ b/runtime/vm/flow_graph_optimizer.h |
@@ -34,6 +34,7 @@ class FlowGraphOptimizer : public FlowGraphVisitor { |
// Merge instructions (only per basic-block). |
void TryOptimizePatterns(); |
+ |
// Returns true if any instructions were canonicalized away. |
bool Canonicalize(); |
@@ -43,6 +44,9 @@ class FlowGraphOptimizer : public FlowGraphVisitor { |
void InferIntRanges(); |
+ // Optimize mint operations using range analysis output. |
+ void TryRangeDerivedOptimizations(); |
+ |
void AnalyzeTryCatch(); |
bool TryInlineRecognizedMethod(intptr_t receiver_cid, |
@@ -238,6 +242,8 @@ class FlowGraphOptimizer : public FlowGraphVisitor { |
void OptimizeLeftShiftBitAndSmiOp(Definition* bit_and_instr, |
Definition* left_instr, |
Definition* right_instr); |
+ Definition* OptimizeMint32BitMasks(BinaryMintOpInstr* mask); |
+ bool TryMarkMint32Bit(Definition* mintop); |
void TryMergeTruncDivMod(GrowableArray<BinarySmiOpInstr*>* merge_candidates); |
void TryMergeMathUnary(GrowableArray<MathUnaryInstr*>* merge_candidates); |