|
LLVM 23.0.0git
|
Implements helpers for target-independent rematerialization at the MIR level. More...
#include "llvm/CodeGen/Rematerializer.h"#include "llvm/ADT/MapVector.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SetVector.h"#include "llvm/CodeGen/LiveIntervals.h"#include "llvm/CodeGen/MachineBasicBlock.h"#include "llvm/CodeGen/MachineOperand.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/CodeGen/Register.h"#include "llvm/CodeGen/TargetOpcodes.h"#include "llvm/CodeGen/TargetRegisterInfo.h"#include "llvm/Support/Debug.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "rematerializer" |
Typedefs | |
| using | RegisterIdx = Rematerializer::RegisterIdx |
Functions | |
| static bool | isIdenticalAtUse (const VNInfo &OVNI, LaneBitmask Mask, SlotIndex UseIdx, const LiveInterval &LI) |
Checks whether the value in LI at UseIdx is identical to OVNI (this implies it is also live there). | |
| static Register | getRegDependency (const MachineOperand &MO) |
If MO is a virtual read register, returns it. | |
Implements helpers for target-independent rematerialization at the MIR level.
Definition in file Rematerializer.cpp.
| #define DEBUG_TYPE "rematerializer" |
Definition at line 28 of file Rematerializer.cpp.
Definition at line 31 of file Rematerializer.cpp.
|
static |
If MO is a virtual read register, returns it.
Otherwise returns the sentinel register.
Definition at line 60 of file Rematerializer.cpp.
References llvm::MachineOperand::getReg(), llvm::MachineOperand::isReg(), llvm::MachineOperand::readsReg(), Reg, and Register.
|
static |
Checks whether the value in LI at UseIdx is identical to OVNI (this implies it is also live there).
When LI has sub-ranges, checks that all sub-ranges intersecting with Mask are also live at UseIdx.
Definition at line 36 of file Rematerializer.cpp.
References llvm::LiveRange::getVNInfoAt(), llvm::LiveInterval::hasSubRanges(), and llvm::LiveInterval::subranges().
Referenced by llvm::Rematerializer::isMOIdenticalAtUses().