Lines Matching full:current
213 // at the current or the immediate next position.
282 UseInterval* current = FirstSearchIntervalForPosition(position);
288 if (current->start().Value() == position.Value()) {
290 current = first_interval_;
293 while (current != NULL) {
294 if (current->Contains(position)) {
295 current->SplitAt(position, zone);
298 UseInterval* next = current->next();
303 current = next;
307 UseInterval* before = current;
451 UsePosition* current = first_pos_;
452 while (current != NULL && current->pos().Value() < pos.Value()) {
453 prev = current;
454 current = current->next();
570 HBasicBlock* successor = it.Current();
600 int operand_index = iterator.Current();
790 LUnallocated* temp = LUnallocated::cast(it.Current());
832 LUnallocated* cur_input = LUnallocated::cast(it.Current());
974 LOperand* input = it.Current();
991 LOperand* temp = it.Current();
1235 int operand_index = iterator.Current();
1308 int operand_index = iterator.Current();
1325 int operand_index = iterator.Current();
1408 // Advance to the next active range that covers the current
1505 LiveRange* current = fixed_double_live_ranges_.at(i);
1506 if (current != NULL) {
1507 AddToInactive(current);
1512 LiveRange* current = fixed_live_ranges_.at(i);
1513 if (current != NULL) {
1514 AddToInactive(current);
1521 LiveRange* current = unhandled_live_ranges_.RemoveLast();
1523 LifetimePosition position = current->Start();
1525 current->id(),
1528 if (current->HasAllocatedSpillOperand()) {
1529 TraceAlloc("Live range %d already has a spill operand\n", current->id());
1534 UsePosition* pos = current->NextUsePositionRegisterIsBeneficial(next_pos);
1538 Spill(current);
1541 current->Start().NextInstruction().Value()) {
1544 SpillBetween(current, current->Start(), pos->pos());
1573 ASSERT(!current->HasRegisterAssigned() && !current->IsSpilled());
1575 bool result = TryAllocateFreeReg(current);
1578 if (!result) AllocateBlockedReg(current);
1581 if (current->HasRegisterAssigned()) {
1582 AddToActive(current);
1763 bool LAllocator::TryAllocateFreeReg(LiveRange* current) {
1778 ASSERT(cur_inactive->End().Value() > current->Start().Value());
1780 cur_inactive->FirstIntersection(current);
1786 UsePosition* hinted_use = current->FirstPosWithHint();
1795 current->id(),
1796 current->End().Value());
1798 // The desired register is free until the end of the current live range.
1799 if (free_until_pos[register_index].Value() >= current->End().Value()) {
1802 current->id());
1803 current->set_assigned_register(register_index, mode_, zone_);
1819 if (pos.Value() <= current->Start().Value()) {
1824 if (pos.Value() < current->End().Value()) {
1826 // the range end. Split current at position where it becomes blocked.
1827 LiveRange* tail = SplitRangeAt(current, pos);
1835 ASSERT(pos.Value() >= current->End().Value());
1838 current->id());
1839 current->set_assigned_register(reg, mode_, zone_);
1845 void LAllocator::AllocateBlockedReg(LiveRange* current) {
1846 UsePosition* register_use = current->NextRegisterPosition(current->Start());
1848 // There is no use in the current live range that requires a register.
1850 Spill(current);
1865 if (range->IsFixed() || !range->CanBeSpilled(current->Start())) {
1870 current->Start());
1881 ASSERT(range->End().Value() > current->Start().Value());
1882 LifetimePosition next_intersection = range->FirstIntersection(current);
1910 ASSERT(current
1911 SpillBetween(current, current->Start(), register_use->pos());
1915 if (block_pos[reg].Value() < current->End().Value()) {
1916 // Register becomes blocked before the current range end. Split before that
1918 LiveRange* tail = SplitBetween(current,
1919 current->Start(),
1925 ASSERT(block_pos[reg].Value() >= current->End().Value());
1928 current->id());
1929 current->set_assigned_register(reg, mode_, zone_);
1933 // at the same lifetime positions as current.
1934 SplitAndSpillIntersecting(current);
1938 void LAllocator::SplitAndSpillIntersecting(LiveRange* current) {
1939 ASSERT(current->HasRegisterAssigned());
1940 int reg = current->assigned_register();
1941 LifetimePosition split_pos = current->Start();
1945 UsePosition* next_pos = range->NextRegisterPosition(current->Start());
1958 ASSERT(range->End().Value() > current->Start().Value());
1960 LifetimePosition next_intersection = range->FirstIntersection(current);
1962 UsePosition* next_pos = range->NextRegisterPosition(current->Start());
2109 LiveRange* current = live_ranges()->at(i);
2110 if (current != NULL) current->Verify();