//===- LiveRangeEdit.h - Basic tools for split and spill --------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // The LiveRangeEdit class represents changes done to a virtual register when it // is spilled or split. // // The parent register is never changed. Instead, a number of new virtual // registers are created and added to the newRegs vector. // //===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_LIVERANGEEDIT_H #define LLVM_CODEGEN_LIVERANGEEDIT_H #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/SetVector.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" #include "llvm/CodeGen/LiveInterval.h" #include "llvm/CodeGen/MachineBasicBlock.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineRegisterInfo.h" #include "llvm/CodeGen/SlotIndexes.h" #include "llvm/CodeGen/TargetSubtargetInfo.h" #include <cassert> namespace llvm { class LiveIntervals; class MachineInstr; class MachineOperand; class TargetInstrInfo; class TargetRegisterInfo; class VirtRegMap; class VirtRegAuxInfo; class LiveRangeEdit : private MachineRegisterInfo::Delegate { … }; } // end namespace llvm #endif // LLVM_CODEGEN_LIVERANGEEDIT_H