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

Methods

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)

Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:174

Parameters

llvm::SDNode* Old
llvm::SDNode* New

llvm::SelectionDAG& getDAG() const

Declared at: llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h:196

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