//===- llvm/CodeGen/LiveRegUnits.h - Register Unit Set ----------*- 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 // //===----------------------------------------------------------------------===// // /// \file /// A set of register units. It is intended for register liveness tracking. // //===----------------------------------------------------------------------===// #ifndef LLVM_CODEGEN_LIVEREGUNITS_H #define LLVM_CODEGEN_LIVEREGUNITS_H #include "llvm/ADT/BitVector.h" #include "llvm/CodeGen/MachineInstrBundle.h" #include "llvm/CodeGen/TargetRegisterInfo.h" #include "llvm/MC/LaneBitmask.h" #include "llvm/MC/MCRegisterInfo.h" #include <cstdint> namespace llvm { class MachineInstr; class MachineBasicBlock; /// A set of register units used to track register liveness. class LiveRegUnits { … }; /// Returns an iterator range over all physical register and mask operands for /// \p MI and bundled instructions. This also skips any debug operands. inline iterator_range< filter_iterator<ConstMIBundleOperands, bool (*)(const MachineOperand &)>> phys_regs_and_masks(const MachineInstr &MI) { … } } // end namespace llvm #endif // LLVM_CODEGEN_LIVEREGUNITS_H