class DAGTypeLegalizer
Declaration
class DAGTypeLegalizer { /* full declaration omitted */ };
Description
This takes an arbitrary SelectionDAG as input and hacks on it until only value types the target machine can handle are left. This involves promoting small sizes to large sizes or splitting up large values into small values.
Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:31
Method Overview
- public DAGTypeLegalizer(llvm::SelectionDAG & dag)
- public void NoteDeletion(llvm::SDNode * Old, llvm::SDNode * New)
- public llvm::SelectionDAG & getDAG() const
- public bool run()
Methods
¶DAGTypeLegalizer(llvm::SelectionDAG& dag)
DAGTypeLegalizer(llvm::SelectionDAG& dag)
Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:162
Parameters
- llvm::SelectionDAG& dag
¶void NoteDeletion(llvm::SDNode* Old,
llvm::SDNode* New)
void NoteDeletion(llvm::SDNode* Old,
llvm::SDNode* New)
Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:174
Parameters
- llvm::SDNode* Old
- llvm::SDNode* New
¶llvm::SelectionDAG& getDAG() const
llvm::SelectionDAG& getDAG() const
Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:196
¶bool run()
bool run()
Description
This is the main entry point for the type legalizer. This does a top-down traversal of the dag, legalizing types as it goes. Returns "true" if it made any changes.
Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:172