LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | List of all members
llvm::DAGTypeLegalizer Class Reference

#include <LegalizeTypes.h>

Public Types

enum  NodeIdFlags { ReadyToProcess = 0, NewNode = -1, Unanalyzed = -2, Processed = -3 }
 

Public Member Functions

 DAGTypeLegalizer (SelectionDAG &dag)
 
bool run ()
 
void NoteDeletion (SDNode *Old, SDNode *New)
 
SelectionDAGgetDAG () const
 

Detailed Description

DAGTypeLegalizer - 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.

Definition at line 35 of file LegalizeTypes.h.

Member Enumeration Documentation

Enumerator
ReadyToProcess 

ReadyToProcess - All operands have been processed, so this node is ready to be handled.

NewNode 

NewNode - This is a new node, not before seen, that was created in the process of legalizing some other node.

Unanalyzed 

Unanalyzed - This node's ID needs to be set to the number of its unprocessed operands.

Processed 

Processed - This is a node that has already been processed.

Definition at line 41 of file LegalizeTypes.h.

Constructor & Destructor Documentation

llvm::DAGTypeLegalizer::DAGTypeLegalizer ( SelectionDAG dag)
inlineexplicit

Definition at line 123 of file LegalizeTypes.h.

References llvm::MVT::LAST_VALUETYPE, and llvm::MVT::MAX_ALLOWED_VALUETYPE.

Member Function Documentation

SelectionDAG& llvm::DAGTypeLegalizer::getDAG ( ) const
inline

Definition at line 142 of file LegalizeTypes.h.

void llvm::DAGTypeLegalizer::NoteDeletion ( SDNode Old,
SDNode New 
)
inline

Definition at line 135 of file LegalizeTypes.h.

References llvm::SDNode::getNumValues().

bool DAGTypeLegalizer::run ( )

The documentation for this class was generated from the following files: