//===- llvm/CodeGen/VirtRegMap.h - Virtual Register Map ---------*- 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 // //===----------------------------------------------------------------------===// // // This file implements a virtual register map. This maps virtual registers to // physical registers and virtual registers to stack slots. It is created and // updated by a register allocator and then used by a machine code rewriter that // adds spill code and rewrites virtual into physical register references. // //===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_VIRTREGMAP_H #define LLVM_CODEGEN_VIRTREGMAP_H #include "llvm/ADT/IndexedMap.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/TargetRegisterInfo.h" #include "llvm/CodeGen/TileShapeInfo.h" #include "llvm/Pass.h" #include <cassert> namespace llvm { class MachineFunction; class MachineRegisterInfo; class raw_ostream; class TargetInstrInfo; class VirtRegMap : public MachineFunctionPass { … }; inline raw_ostream &operator<<(raw_ostream &OS, const VirtRegMap &VRM) { … } } // end llvm namespace #endif // LLVM_CODEGEN_VIRTREGMAP_H