LLVM 20.0.0git
|
#include "Target/WebAssembly/WebAssemblyDebugValueManager.h"
Public Member Functions | |
WebAssemblyDebugValueManager (MachineInstr *Def) | |
void | sink (MachineInstr *Insert) |
void | cloneSink (MachineInstr *Insert, Register NewReg=Register(), bool CloneDef=true) const |
void | updateReg (Register Reg) |
void | replaceWithLocal (unsigned LocalId) |
void | removeDef () |
Definition at line 28 of file WebAssemblyDebugValueManager.h.
WebAssemblyDebugValueManager::WebAssemblyDebugValueManager | ( | MachineInstr * | Def | ) |
Definition at line 24 of file WebAssemblyDebugValueManager.cpp.
References MI.
void WebAssemblyDebugValueManager::cloneSink | ( | MachineInstr * | Insert, |
Register | NewReg = Register() , |
||
bool | CloneDef = true |
||
) | const |
Definition at line 354 of file WebAssemblyDebugValueManager.cpp.
References llvm::MachineFunction::CloneMachineInstr(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), hasSameDebugLoc(), llvm::MachineBasicBlock::insert(), llvm::Register::isValid(), MBB, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MachineInstr::setDebugLoc(), and llvm::MachineOperand::setReg().
Referenced by moveAndTeeForMultiUse(), and rematerializeCheapDef().
void WebAssemblyDebugValueManager::removeDef | ( | ) |
Definition at line 415 of file WebAssemblyDebugValueManager.cpp.
References llvm::MachineInstr::removeFromParent(), and llvm::MachineInstr::setDebugValueUndef().
Referenced by rematerializeCheapDef().
void WebAssemblyDebugValueManager::replaceWithLocal | ( | unsigned | LocalId | ) |
Definition at line 404 of file WebAssemblyDebugValueManager.cpp.
References llvm::WebAssembly::TI_LOCAL, and llvm::WebAssembly::TI_LOCAL_INDIRECT.
void WebAssemblyDebugValueManager::sink | ( | MachineInstr * | Insert | ) |
Definition at line 253 of file WebAssemblyDebugValueManager.cpp.
References llvm::MachineFunction::CloneMachineInstr(), llvm::MachineInstr::getDebugLoc(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), hasSameDebugLoc(), llvm::MachineBasicBlock::insert(), MBB, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::MachineInstr::setDebugLoc(), and llvm::MachineBasicBlock::splice().
Referenced by moveAndTeeForMultiUse(), and moveForSingleUse().
void WebAssemblyDebugValueManager::updateReg | ( | Register | Reg | ) |
Definition at line 394 of file WebAssemblyDebugValueManager.cpp.
References llvm::MachineInstr::getOperand(), and llvm::MachineOperand::setReg().
Referenced by moveAndTeeForMultiUse(), and moveForSingleUse().