diff --git a/llvm/include/llvm/CodeGen/LiveIntervals.h b/llvm/include/llvm/CodeGen/LiveIntervals.h index 540651ea11442..708917be497ef 100644 --- a/llvm/include/llvm/CodeGen/LiveIntervals.h +++ b/llvm/include/llvm/CodeGen/LiveIntervals.h @@ -149,8 +149,9 @@ class LiveIntervals { LiveInterval &createEmptyInterval(Register Reg) { assert(!hasInterval(Reg) && "Interval already exists!"); VirtRegIntervals.grow(Reg.id()); - VirtRegIntervals[Reg.id()] = createInterval(Reg); - return *VirtRegIntervals[Reg.id()]; + auto &Interval = VirtRegIntervals[Reg.id()]; + Interval = createInterval(Reg); + return *Interval; } LiveInterval &createAndComputeVirtRegInterval(Register Reg) { @@ -168,8 +169,9 @@ class LiveIntervals { /// Interval removal. void removeInterval(Register Reg) { - delete VirtRegIntervals[Reg]; - VirtRegIntervals[Reg] = nullptr; + auto &Interval = VirtRegIntervals[Reg]; + delete Interval; + Interval = nullptr; } /// Given a register and an instruction, adds a live segment from that