Index: src/lithium-allocator.h |
diff --git a/src/lithium-allocator.h b/src/lithium-allocator.h |
index 5b05263575dcc45d2d1f9e53ee8066054660d49f..036560f5699cb1bcfd8d550c1e37df3871512ea6 100644 |
--- a/src/lithium-allocator.h |
+++ b/src/lithium-allocator.h |
@@ -311,6 +311,10 @@ class LiveRange: public ZoneObject { |
// Modifies internal state of live range! |
UsePosition* NextUsePositionRegisterIsBeneficial(LifetimePosition start); |
+ // Returns use position for which register is beneficial in this live |
+ // range and which precedes start. |
+ UsePosition* PreviousUsePositionRegisterIsBeneficial(LifetimePosition start); |
+ |
// Can this live range be spilled at this position. |
bool CanBeSpilled(LifetimePosition pos); |
@@ -563,6 +567,11 @@ class LAllocator BASE_EMBEDDED { |
void SplitAndSpillIntersecting(LiveRange* range); |
+ // If we are trying to spill a range inside the loop try to |
+ // hoist spill position out to the point just before the loop. |
+ LifetimePosition FindOptimalSpillingPos(LiveRange* range, |
+ LifetimePosition pos); |
+ |
void Spill(LiveRange* range); |
bool IsBlockBoundary(LifetimePosition pos); |