diff options
Diffstat (limited to 'compiler/optimizing/register_allocator.cc')
| -rw-r--r-- | compiler/optimizing/register_allocator.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/optimizing/register_allocator.cc b/compiler/optimizing/register_allocator.cc index ece9904426..86e971353f 100644 --- a/compiler/optimizing/register_allocator.cc +++ b/compiler/optimizing/register_allocator.cc @@ -53,6 +53,21 @@ std::unique_ptr<RegisterAllocator> RegisterAllocator::Create(ScopedArenaAllocato } } +RegisterAllocator::~RegisterAllocator() { + if (kIsDebugBuild) { + // Poison live interval pointers with "Error: BAD 71ve1nt3rval." + LiveInterval* bad_live_interval = reinterpret_cast<LiveInterval*>(0xebad7113u); + for (HBasicBlock* block : codegen_->GetGraph()->GetLinearOrder()) { + for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { + it.Current()->SetLiveInterval(bad_live_interval); + } + for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { + it.Current()->SetLiveInterval(bad_live_interval); + } + } + } +} + bool RegisterAllocator::CanAllocateRegistersFor(const HGraph& graph ATTRIBUTE_UNUSED, InstructionSet instruction_set) { return instruction_set == kArm |