Index: src/lithium-allocator.cc |
diff --git a/src/lithium-allocator.cc b/src/lithium-allocator.cc |
index 0ccb77399b8198d43053df1d479a8c326df0c5ec..8350c80bbfd951cd781d189836c0a150066e172a 100644 |
--- a/src/lithium-allocator.cc |
+++ b/src/lithium-allocator.cc |
@@ -37,7 +37,7 @@ UsePosition::UsePosition(LifetimePosition pos, |
unalloc->HasDoubleRegisterPolicy(); |
register_beneficial_ = !unalloc->HasAnyPolicy(); |
} |
- ASSERT(pos_.IsValid()); |
+ DCHECK(pos_.IsValid()); |
} |
@@ -57,7 +57,7 @@ bool UsePosition::RegisterIsBeneficial() const { |
void UseInterval::SplitAt(LifetimePosition pos, Zone* zone) { |
- ASSERT(Contains(pos) && pos.Value() != start().Value()); |
+ DCHECK(Contains(pos) && pos.Value() != start().Value()); |
UseInterval* after = new(zone) UseInterval(pos, end_); |
after->next_ = next_; |
next_ = after; |
@@ -71,7 +71,7 @@ void UseInterval::SplitAt(LifetimePosition pos, Zone* zone) { |
void LiveRange::Verify() const { |
UsePosition* cur = first_pos_; |
while (cur != NULL) { |
- ASSERT(Start().Value() <= cur->pos().Value() && |
+ DCHECK(Start().Value() <= cur->pos().Value() && |
cur->pos().Value() <= End().Value()); |
cur = cur->next(); |
} |
@@ -113,15 +113,15 @@ LiveRange::LiveRange(int id, Zone* zone) |
void LiveRange::set_assigned_register(int reg, Zone* zone) { |
- ASSERT(!HasRegisterAssigned() && !IsSpilled()); |
+ DCHECK(!HasRegisterAssigned() && !IsSpilled()); |
assigned_register_ = reg; |
ConvertOperands(zone); |
} |
void LiveRange::MakeSpilled(Zone* zone) { |
- ASSERT(!IsSpilled()); |
- ASSERT(TopLevel()->HasAllocatedSpillOperand()); |
+ DCHECK(!IsSpilled()); |
+ DCHECK(TopLevel()->HasAllocatedSpillOperand()); |
spilled_ = true; |
assigned_register_ = kInvalidAssignment; |
ConvertOperands(zone); |
@@ -129,15 +129,15 @@ void LiveRange::MakeSpilled(Zone* zone) { |
bool LiveRange::HasAllocatedSpillOperand() const { |
- ASSERT(spill_operand_ != NULL); |
+ DCHECK(spill_operand_ != NULL); |
return !spill_operand_->IsIgnored(); |
} |
void LiveRange::SetSpillOperand(LOperand* operand) { |
- ASSERT(!operand->IsUnallocated()); |
- ASSERT(spill_operand_ != NULL); |
- ASSERT(spill_operand_->IsIgnored()); |
+ DCHECK(!operand->IsUnallocated()); |
+ DCHECK(spill_operand_ != NULL); |
+ DCHECK(spill_operand_->IsIgnored()); |
spill_operand_->ConvertTo(operand->kind(), operand->index()); |
} |
@@ -197,7 +197,7 @@ bool LiveRange::CanBeSpilled(LifetimePosition pos) { |
LOperand* LiveRange::CreateAssignedOperand(Zone* zone) { |
LOperand* op = NULL; |
if (HasRegisterAssigned()) { |
- ASSERT(!IsSpilled()); |
+ DCHECK(!IsSpilled()); |
switch (Kind()) { |
case GENERAL_REGISTERS: |
op = LRegister::Create(assigned_register(), zone); |
@@ -209,9 +209,9 @@ LOperand* LiveRange::CreateAssignedOperand(Zone* zone) { |
UNREACHABLE(); |
} |
} else if (IsSpilled()) { |
- ASSERT(!HasRegisterAssigned()); |
+ DCHECK(!HasRegisterAssigned()); |
op = TopLevel()->GetSpillOperand(); |
- ASSERT(!op->IsUnallocated()); |
+ DCHECK(!op->IsUnallocated()); |
} else { |
LUnallocated* unalloc = new(zone) LUnallocated(LUnallocated::NONE); |
unalloc->set_virtual_register(id_); |
@@ -248,8 +248,8 @@ void LiveRange::AdvanceLastProcessedMarker( |
void LiveRange::SplitAt(LifetimePosition position, |
LiveRange* result, |
Zone* zone) { |
- ASSERT(Start().Value() < position.Value()); |
- ASSERT(result->IsEmpty()); |
+ DCHECK(Start().Value() < position.Value()); |
+ DCHECK(result->IsEmpty()); |
// Find the last interval that ends before the position. If the |
// position is contained in one of the intervals in the chain, we |
// split that interval and use the first part. |
@@ -353,9 +353,9 @@ bool LiveRange::ShouldBeAllocatedBefore(const LiveRange* other) const { |
void LiveRange::ShortenTo(LifetimePosition start) { |
LAllocator::TraceAlloc("Shorten live range %d to [%d\n", id_, start.Value()); |
- ASSERT(first_interval_ != NULL); |
- ASSERT(first_interval_->start().Value() <= start.Value()); |
- ASSERT(start.Value() < first_interval_->end().Value()); |
+ DCHECK(first_interval_ != NULL); |
+ DCHECK(first_interval_->start().Value() <= start.Value()); |
+ DCHECK(start.Value() < first_interval_->end().Value()); |
first_interval_->set_start(start); |
} |
@@ -407,7 +407,7 @@ void LiveRange::AddUseInterval(LifetimePosition start, |
// Order of instruction's processing (see ProcessInstructions) guarantees |
// that each new use interval either precedes or intersects with |
// last added interval. |
- ASSERT(start.Value() < first_interval_->end().Value()); |
+ DCHECK(start.Value() < first_interval_->end().Value()); |
first_interval_->start_ = Min(start, first_interval_->start_); |
first_interval_->end_ = Max(end, first_interval_->end_); |
} |
@@ -450,11 +450,11 @@ void LiveRange::ConvertOperands(Zone* zone) { |
LOperand* op = CreateAssignedOperand(zone); |
UsePosition* use_pos = first_pos(); |
while (use_pos != NULL) { |
- ASSERT(Start().Value() <= use_pos->pos().Value() && |
+ DCHECK(Start().Value() <= use_pos->pos().Value() && |
use_pos->pos().Value() <= End().Value()); |
if (use_pos->HasOperand()) { |
- ASSERT(op->IsRegister() || op->IsDoubleRegister() || |
+ DCHECK(op->IsRegister() || op->IsDoubleRegister() || |
!use_pos->RequiresRegister()); |
use_pos->operand()->ConvertTo(op->kind(), op->index()); |
} |
@@ -476,7 +476,7 @@ bool LiveRange::Covers(LifetimePosition position) { |
for (UseInterval* interval = start_search; |
interval != NULL; |
interval = interval->next()) { |
- ASSERT(interval->next() == NULL || |
+ DCHECK(interval->next() == NULL || |
interval->next()->start().Value() >= interval->start().Value()); |
AdvanceLastProcessedMarker(interval, position); |
if (interval->Contains(position)) return true; |
@@ -594,7 +594,7 @@ LOperand* LAllocator::AllocateFixed(LUnallocated* operand, |
int pos, |
bool is_tagged) { |
TraceAlloc("Allocating fixed reg for op %d\n", operand->virtual_register()); |
- ASSERT(operand->HasFixedPolicy()); |
+ DCHECK(operand->HasFixedPolicy()); |
if (operand->HasFixedSlotPolicy()) { |
operand->ConvertTo(LOperand::STACK_SLOT, operand->fixed_slot_index()); |
} else if (operand->HasFixedRegisterPolicy()) { |
@@ -618,11 +618,11 @@ LOperand* LAllocator::AllocateFixed(LUnallocated* operand, |
LiveRange* LAllocator::FixedLiveRangeFor(int index) { |
- ASSERT(index < Register::kMaxNumAllocatableRegisters); |
+ DCHECK(index < Register::kMaxNumAllocatableRegisters); |
LiveRange* result = fixed_live_ranges_[index]; |
if (result == NULL) { |
result = new(zone()) LiveRange(FixedLiveRangeID(index), chunk()->zone()); |
- ASSERT(result->IsFixed()); |
+ DCHECK(result->IsFixed()); |
result->kind_ = GENERAL_REGISTERS; |
SetLiveRangeAssignedRegister(result, index); |
fixed_live_ranges_[index] = result; |
@@ -632,12 +632,12 @@ LiveRange* LAllocator::FixedLiveRangeFor(int index) { |
LiveRange* LAllocator::FixedDoubleLiveRangeFor(int index) { |
- ASSERT(index < DoubleRegister::NumAllocatableRegisters()); |
+ DCHECK(index < DoubleRegister::NumAllocatableRegisters()); |
LiveRange* result = fixed_double_live_ranges_[index]; |
if (result == NULL) { |
result = new(zone()) LiveRange(FixedDoubleLiveRangeID(index), |
chunk()->zone()); |
- ASSERT(result->IsFixed()); |
+ DCHECK(result->IsFixed()); |
result->kind_ = DOUBLE_REGISTERS; |
SetLiveRangeAssignedRegister(result, index); |
fixed_double_live_ranges_[index] = result; |
@@ -827,7 +827,7 @@ void LAllocator::MeetConstraintsBetween(LInstruction* first, |
} else if (cur_input->HasWritableRegisterPolicy()) { |
// The live range of writable input registers always goes until the end |
// of the instruction. |
- ASSERT(!cur_input->IsUsedAtStart()); |
+ DCHECK(!cur_input->IsUsedAtStart()); |
LUnallocated* input_copy = cur_input->CopyUnconstrained( |
chunk()->zone()); |
@@ -927,7 +927,7 @@ void LAllocator::ProcessInstructions(HBasicBlock* block, BitVector* live) { |
} |
} |
} else { |
- ASSERT(!IsGapAt(index)); |
+ DCHECK(!IsGapAt(index)); |
LInstruction* instr = InstructionAt(index); |
if (instr != NULL) { |
@@ -1025,7 +1025,7 @@ void LAllocator::ResolvePhis(HBasicBlock* block) { |
HConstant* constant = HConstant::cast(op); |
operand = chunk_->DefineConstantOperand(constant); |
} else { |
- ASSERT(!op->EmitAtUses()); |
+ DCHECK(!op->EmitAtUses()); |
LUnallocated* unalloc = |
new(chunk()->zone()) LUnallocated(LUnallocated::ANY); |
unalloc->set_virtual_register(op->id()); |
@@ -1067,7 +1067,7 @@ void LAllocator::ResolvePhis(HBasicBlock* block) { |
bool LAllocator::Allocate(LChunk* chunk) { |
- ASSERT(chunk_ == NULL); |
+ DCHECK(chunk_ == NULL); |
chunk_ = static_cast<LPlatformChunk*>(chunk); |
assigned_registers_ = |
new(chunk->zone()) BitVector(Register::NumAllocatableRegisters(), |
@@ -1125,18 +1125,18 @@ void LAllocator::ResolveControlFlow(LiveRange* range, |
LiveRange* cur_range = range; |
while (cur_range != NULL && (cur_cover == NULL || pred_cover == NULL)) { |
if (cur_range->CanCover(cur_start)) { |
- ASSERT(cur_cover == NULL); |
+ DCHECK(cur_cover == NULL); |
cur_cover = cur_range; |
} |
if (cur_range->CanCover(pred_end)) { |
- ASSERT(pred_cover == NULL); |
+ DCHECK(pred_cover == NULL); |
pred_cover = cur_range; |
} |
cur_range = cur_range->next(); |
} |
if (cur_cover->IsSpilled()) return; |
- ASSERT(pred_cover != NULL && cur_cover != NULL); |
+ DCHECK(pred_cover != NULL && cur_cover != NULL); |
if (pred_cover != cur_cover) { |
LOperand* pred_op = pred_cover->CreateAssignedOperand(chunk()->zone()); |
LOperand* cur_op = cur_cover->CreateAssignedOperand(chunk()->zone()); |
@@ -1145,7 +1145,7 @@ void LAllocator::ResolveControlFlow(LiveRange* range, |
if (block->predecessors()->length() == 1) { |
gap = GapAt(block->first_instruction_index()); |
} else { |
- ASSERT(pred->end()->SecondSuccessor() == NULL); |
+ DCHECK(pred->end()->SecondSuccessor() == NULL); |
gap = GetLastGap(pred); |
// We are going to insert a move before the branch instruction. |
@@ -1294,7 +1294,7 @@ void LAllocator::BuildLiveRanges() { |
break; |
} |
} |
- ASSERT(hint != NULL); |
+ DCHECK(hint != NULL); |
LifetimePosition block_start = LifetimePosition::FromInstructionIndex( |
block->first_instruction_index()); |
@@ -1341,7 +1341,7 @@ void LAllocator::BuildLiveRanges() { |
CodeStub::Major major_key = chunk_->info()->code_stub()->MajorKey(); |
PrintF("Function: %s\n", CodeStub::MajorName(major_key, false)); |
} else { |
- ASSERT(chunk_->info()->IsOptimizing()); |
+ DCHECK(chunk_->info()->IsOptimizing()); |
AllowHandleDereference allow_deref; |
PrintF("Function: %s\n", |
chunk_->info()->function()->debug_name()->ToCString().get()); |
@@ -1351,7 +1351,7 @@ void LAllocator::BuildLiveRanges() { |
PrintF("First use is at %d\n", range->first_pos()->pos().Value()); |
iterator.Advance(); |
} |
- ASSERT(!found); |
+ DCHECK(!found); |
} |
#endif |
} |
@@ -1380,7 +1380,7 @@ void LAllocator::PopulatePointerMaps() { |
LAllocatorPhase phase("L_Populate pointer maps", this); |
const ZoneList<LPointerMap*>* pointer_maps = chunk_->pointer_maps(); |
- ASSERT(SafePointsAreInOrder()); |
+ DCHECK(SafePointsAreInOrder()); |
// Iterate over all safe point positions and record a pointer |
// for all spilled live ranges at this point. |
@@ -1402,7 +1402,7 @@ void LAllocator::PopulatePointerMaps() { |
for (LiveRange* cur = range; cur != NULL; cur = cur->next()) { |
LifetimePosition this_end = cur->End(); |
if (this_end.InstructionIndex() > end) end = this_end.InstructionIndex(); |
- ASSERT(cur->Start().InstructionIndex() >= start); |
+ DCHECK(cur->Start().InstructionIndex() >= start); |
} |
// Most of the ranges are in order, but not all. Keep an eye on when |
@@ -1456,7 +1456,7 @@ void LAllocator::PopulatePointerMaps() { |
"at safe point %d\n", |
cur->id(), cur->Start().Value(), safe_point); |
LOperand* operand = cur->CreateAssignedOperand(chunk()->zone()); |
- ASSERT(!operand->IsStackSlot()); |
+ DCHECK(!operand->IsStackSlot()); |
map->RecordPointer(operand, chunk()->zone()); |
} |
} |
@@ -1481,7 +1481,7 @@ void LAllocator::AllocateDoubleRegisters() { |
void LAllocator::AllocateRegisters() { |
- ASSERT(unhandled_live_ranges_.is_empty()); |
+ DCHECK(unhandled_live_ranges_.is_empty()); |
for (int i = 0; i < live_ranges_.length(); ++i) { |
if (live_ranges_[i] != NULL) { |
@@ -1491,11 +1491,11 @@ void LAllocator::AllocateRegisters() { |
} |
} |
SortUnhandled(); |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
- ASSERT(reusable_slots_.is_empty()); |
- ASSERT(active_live_ranges_.is_empty()); |
- ASSERT(inactive_live_ranges_.is_empty()); |
+ DCHECK(reusable_slots_.is_empty()); |
+ DCHECK(active_live_ranges_.is_empty()); |
+ DCHECK(inactive_live_ranges_.is_empty()); |
if (mode_ == DOUBLE_REGISTERS) { |
for (int i = 0; i < DoubleRegister::NumAllocatableRegisters(); ++i) { |
@@ -1505,7 +1505,7 @@ void LAllocator::AllocateRegisters() { |
} |
} |
} else { |
- ASSERT(mode_ == GENERAL_REGISTERS); |
+ DCHECK(mode_ == GENERAL_REGISTERS); |
for (int i = 0; i < fixed_live_ranges_.length(); ++i) { |
LiveRange* current = fixed_live_ranges_.at(i); |
if (current != NULL) { |
@@ -1515,9 +1515,9 @@ void LAllocator::AllocateRegisters() { |
} |
while (!unhandled_live_ranges_.is_empty()) { |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
LiveRange* current = unhandled_live_ranges_.RemoveLast(); |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
LifetimePosition position = current->Start(); |
#ifdef DEBUG |
allocation_finger_ = position; |
@@ -1544,7 +1544,7 @@ void LAllocator::AllocateRegisters() { |
// the register is too close to the start of live range. |
SpillBetween(current, current->Start(), pos->pos()); |
if (!AllocationOk()) return; |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
continue; |
} |
} |
@@ -1571,7 +1571,7 @@ void LAllocator::AllocateRegisters() { |
} |
} |
- ASSERT(!current->HasRegisterAssigned() && !current->IsSpilled()); |
+ DCHECK(!current->HasRegisterAssigned() && !current->IsSpilled()); |
bool result = TryAllocateFreeReg(current); |
if (!AllocationOk()) return; |
@@ -1645,33 +1645,33 @@ void LAllocator::AddToInactive(LiveRange* range) { |
void LAllocator::AddToUnhandledSorted(LiveRange* range) { |
if (range == NULL || range->IsEmpty()) return; |
- ASSERT(!range->HasRegisterAssigned() && !range->IsSpilled()); |
- ASSERT(allocation_finger_.Value() <= range->Start().Value()); |
+ DCHECK(!range->HasRegisterAssigned() && !range->IsSpilled()); |
+ DCHECK(allocation_finger_.Value() <= range->Start().Value()); |
for (int i = unhandled_live_ranges_.length() - 1; i >= 0; --i) { |
LiveRange* cur_range = unhandled_live_ranges_.at(i); |
if (range->ShouldBeAllocatedBefore(cur_range)) { |
TraceAlloc("Add live range %d to unhandled at %d\n", range->id(), i + 1); |
unhandled_live_ranges_.InsertAt(i + 1, range, zone()); |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
return; |
} |
} |
TraceAlloc("Add live range %d to unhandled at start\n", range->id()); |
unhandled_live_ranges_.InsertAt(0, range, zone()); |
- ASSERT(UnhandledIsSorted()); |
+ DCHECK(UnhandledIsSorted()); |
} |
void LAllocator::AddToUnhandledUnsorted(LiveRange* range) { |
if (range == NULL || range->IsEmpty()) return; |
- ASSERT(!range->HasRegisterAssigned() && !range->IsSpilled()); |
+ DCHECK(!range->HasRegisterAssigned() && !range->IsSpilled()); |
TraceAlloc("Add live range %d to unhandled unsorted at end\n", range->id()); |
unhandled_live_ranges_.Add(range, zone()); |
} |
static int UnhandledSortHelper(LiveRange* const* a, LiveRange* const* b) { |
- ASSERT(!(*a)->ShouldBeAllocatedBefore(*b) || |
+ DCHECK(!(*a)->ShouldBeAllocatedBefore(*b) || |
!(*b)->ShouldBeAllocatedBefore(*a)); |
if ((*a)->ShouldBeAllocatedBefore(*b)) return 1; |
if ((*b)->ShouldBeAllocatedBefore(*a)) return -1; |
@@ -1725,7 +1725,7 @@ LOperand* LAllocator::TryReuseSpillSlot(LiveRange* range) { |
void LAllocator::ActiveToHandled(LiveRange* range) { |
- ASSERT(active_live_ranges_.Contains(range)); |
+ DCHECK(active_live_ranges_.Contains(range)); |
active_live_ranges_.RemoveElement(range); |
TraceAlloc("Moving live range %d from active to handled\n", range->id()); |
FreeSpillSlot(range); |
@@ -1733,7 +1733,7 @@ void LAllocator::ActiveToHandled(LiveRange* range) { |
void LAllocator::ActiveToInactive(LiveRange* range) { |
- ASSERT(active_live_ranges_.Contains(range)); |
+ DCHECK(active_live_ranges_.Contains(range)); |
active_live_ranges_.RemoveElement(range); |
inactive_live_ranges_.Add(range, zone()); |
TraceAlloc("Moving live range %d from active to inactive\n", range->id()); |
@@ -1741,7 +1741,7 @@ void LAllocator::ActiveToInactive(LiveRange* range) { |
void LAllocator::InactiveToHandled(LiveRange* range) { |
- ASSERT(inactive_live_ranges_.Contains(range)); |
+ DCHECK(inactive_live_ranges_.Contains(range)); |
inactive_live_ranges_.RemoveElement(range); |
TraceAlloc("Moving live range %d from inactive to handled\n", range->id()); |
FreeSpillSlot(range); |
@@ -1749,7 +1749,7 @@ void LAllocator::InactiveToHandled(LiveRange* range) { |
void LAllocator::InactiveToActive(LiveRange* range) { |
- ASSERT(inactive_live_ranges_.Contains(range)); |
+ DCHECK(inactive_live_ranges_.Contains(range)); |
inactive_live_ranges_.RemoveElement(range); |
active_live_ranges_.Add(range, zone()); |
TraceAlloc("Moving live range %d from inactive to active\n", range->id()); |
@@ -1777,7 +1777,7 @@ bool LAllocator::TryAllocateFreeReg(LiveRange* current) { |
for (int i = 0; i < inactive_live_ranges_.length(); ++i) { |
LiveRange* cur_inactive = inactive_live_ranges_.at(i); |
- ASSERT(cur_inactive->End().Value() > current->Start().Value()); |
+ DCHECK(cur_inactive->End().Value() > current->Start().Value()); |
LifetimePosition next_intersection = |
cur_inactive->FirstIntersection(current); |
if (!next_intersection.IsValid()) continue; |
@@ -1831,7 +1831,7 @@ bool LAllocator::TryAllocateFreeReg(LiveRange* current) { |
// Register reg is available at the range start and is free until |
// the range end. |
- ASSERT(pos.Value() >= current->End().Value()); |
+ DCHECK(pos.Value() >= current->End().Value()); |
TraceAlloc("Assigning free reg %s to live range %d\n", |
RegisterName(reg), |
current->id()); |
@@ -1877,7 +1877,7 @@ void LAllocator::AllocateBlockedReg(LiveRange* current) { |
for (int i = 0; i < inactive_live_ranges_.length(); ++i) { |
LiveRange* range = inactive_live_ranges_.at(i); |
- ASSERT(range->End().Value() > current->Start().Value()); |
+ DCHECK(range->End().Value() > current->Start().Value()); |
LifetimePosition next_intersection = range->FirstIntersection(current); |
if (!next_intersection.IsValid()) continue; |
int cur_reg = range->assigned_register(); |
@@ -1916,7 +1916,7 @@ void LAllocator::AllocateBlockedReg(LiveRange* current) { |
} |
// Register reg is not blocked for the whole range. |
- ASSERT(block_pos[reg].Value() >= current->End().Value()); |
+ DCHECK(block_pos[reg].Value() >= current->End().Value()); |
TraceAlloc("Assigning blocked reg %s to live range %d\n", |
RegisterName(reg), |
current->id()); |
@@ -1963,7 +1963,7 @@ LifetimePosition LAllocator::FindOptimalSpillingPos(LiveRange* range, |
void LAllocator::SplitAndSpillIntersecting(LiveRange* current) { |
- ASSERT(current->HasRegisterAssigned()); |
+ DCHECK(current->HasRegisterAssigned()); |
int reg = current->assigned_register(); |
LifetimePosition split_pos = current->Start(); |
for (int i = 0; i < active_live_ranges_.length(); ++i) { |
@@ -1992,7 +1992,7 @@ void LAllocator::SplitAndSpillIntersecting(LiveRange* current) { |
for (int i = 0; i < inactive_live_ranges_.length(); ++i) { |
LiveRange* range = inactive_live_ranges_[i]; |
- ASSERT(range->End().Value() > current->Start().Value()); |
+ DCHECK(range->End().Value() > current->Start().Value()); |
if (range->assigned_register() == reg && !range->IsFixed()) { |
LifetimePosition next_intersection = range->FirstIntersection(current); |
if (next_intersection.IsValid()) { |
@@ -2019,14 +2019,14 @@ bool LAllocator::IsBlockBoundary(LifetimePosition pos) { |
LiveRange* LAllocator::SplitRangeAt(LiveRange* range, LifetimePosition pos) { |
- ASSERT(!range->IsFixed()); |
+ DCHECK(!range->IsFixed()); |
TraceAlloc("Splitting live range %d at %d\n", range->id(), pos.Value()); |
if (pos.Value() <= range->Start().Value()) return range; |
// We can't properly connect liveranges if split occured at the end |
// of control instruction. |
- ASSERT(pos.IsInstructionStart() || |
+ DCHECK(pos.IsInstructionStart() || |
!chunk_->instructions()->at(pos.InstructionIndex())->IsControl()); |
int vreg = GetVirtualRegister(); |
@@ -2040,14 +2040,14 @@ LiveRange* LAllocator::SplitRangeAt(LiveRange* range, LifetimePosition pos) { |
LiveRange* LAllocator::SplitBetween(LiveRange* range, |
LifetimePosition start, |
LifetimePosition end) { |
- ASSERT(!range->IsFixed()); |
+ DCHECK(!range->IsFixed()); |
TraceAlloc("Splitting live range %d in position between [%d, %d]\n", |
range->id(), |
start.Value(), |
end.Value()); |
LifetimePosition split_pos = FindOptimalSplitPos(start, end); |
- ASSERT(split_pos.Value() >= start.Value()); |
+ DCHECK(split_pos.Value() >= start.Value()); |
return SplitRangeAt(range, split_pos); |
} |
@@ -2056,7 +2056,7 @@ LifetimePosition LAllocator::FindOptimalSplitPos(LifetimePosition start, |
LifetimePosition end) { |
int start_instr = start.InstructionIndex(); |
int end_instr = end.InstructionIndex(); |
- ASSERT(start_instr <= end_instr); |
+ DCHECK(start_instr <= end_instr); |
// We have no choice |
if (start_instr == end_instr) return end; |
@@ -2118,7 +2118,7 @@ void LAllocator::SpillBetweenUntil(LiveRange* range, |
end.PrevInstruction().InstructionEnd()); |
if (!AllocationOk()) return; |
- ASSERT(third_part != second_part); |
+ DCHECK(third_part != second_part); |
Spill(second_part); |
AddToUnhandledSorted(third_part); |
@@ -2131,7 +2131,7 @@ void LAllocator::SpillBetweenUntil(LiveRange* range, |
void LAllocator::Spill(LiveRange* range) { |
- ASSERT(!range->IsSpilled()); |
+ DCHECK(!range->IsSpilled()); |
TraceAlloc("Spilling live range %d\n", range->id()); |
LiveRange* first = range->TopLevel(); |