|
LLVM 23.0.0git
|
#include "Target/Hexagon/HexagonAggressiveRDFCopy.h"
Public Member Functions | |
| AggressiveCopyPropagation (DataFlowGraph &dfg) | |
| virtual | ~AggressiveCopyPropagation ()=default |
| bool | run () |
| virtual bool | interpretAsCopy (const MachineInstr *MI, EqualityMap &EM) |
| Public Member Functions inherited from llvm::rdf::CopyPropagationBase | |
| CopyPropagationBase (DataFlowGraph &dfg) | |
| virtual | ~CopyPropagationBase ()=default |
| void | trace (bool On) |
| bool | trace () const |
| DataFlowGraph & | getDFG () |
Additional Inherited Members | |
| Public Types inherited from llvm::rdf::CopyPropagationBase | |
| using | EqualityMap = std::map<RegisterRef, RegisterRef, RegisterRefLess> |
| Protected Attributes inherited from llvm::rdf::CopyPropagationBase | |
| const MachineDominatorTree & | MDT |
| DataFlowGraph & | DFG |
| DataFlowGraph::DefStackMap | DefM |
| bool | Trace = false |
| std::map< RegisterRef, std::map< NodeId, NodeId >, RegisterRefLess > | RDefMap |
| std::map< NodeId, EqualityMap > | CopyMap |
Definition at line 25 of file HexagonAggressiveRDFCopy.h.
|
inline |
Definition at line 26 of file HexagonAggressiveRDFCopy.h.
References llvm::rdf::CopyPropagationBase::CopyPropagationBase().
|
virtualdefault |
|
virtual |
Definition at line 79 of file HexagonAggressiveRDFCopy.cpp.
References assert(), llvm::rdf::CopyPropagationBase::DFG, llvm::rdf::RegisterRef::Id, llvm::Register::isPhysicalRegister(), llvm_unreachable, MI, and Opc.
| bool AggressiveCopyPropagation::run | ( | ) |
Definition at line 264 of file HexagonAggressiveRDFCopy.cpp.
References llvm::rdf::NodeAddr< T >::Addr, assert(), llvm::CallingConv::C, Changed, llvm::rdf::CopyPropagationBase::CopyMap, llvm::dbgs(), llvm::rdf::CopyPropagationBase::DFG, llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::rdf::StmtNode::getCode(), llvm::rdf::RefNode::getOwner(), llvm::rdf::NodeAddr< T >::Id, llvm::rdf::RegisterRef::Id, llvm::MCSubRegIndexIterator::isValid(), llvm::TargetRegisterClass::LaneMask, llvm_unreachable, llvm::rdf::CopyPropagationBase::MDT, P, llvm::rdf::Print(), llvm::rdf::CopyPropagationBase::RDefMap, RDFCpCount, RDFCpLimit, llvm::rdf::NodeAttrs::Shadow, and llvm::rdf::CopyPropagationBase::trace().