LLVM API Documentation

llvm::DAGTypeLegalizer Class Reference

#include <LegalizeTypes.h>

Collaboration diagram for llvm::DAGTypeLegalizer:

Collaboration graph
[legend]

List of all members.

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)


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  )  [inline, explicit]

Definition at line 167 of file LegalizeTypes.h.

References llvm::MVT::LAST_VALUETYPE.


Member Function Documentation

bool DAGTypeLegalizer::run (  ) 

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

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

Definition at line 172 of file LegalizeTypes.cpp.

References llvm::SelectionDAG::allnodes_begin(), llvm::SelectionDAG::allnodes_end(), llvm::cerr(), Changed, DEBUG, llvm::PIC16ISD::Dummy, llvm::SDNode::dump(), E, EnableExpensiveChecks, llvm::SDValue::getNode(), llvm::SDNode::getNodeId(), llvm::SDNode::getNumOperands(), llvm::SDNode::getNumValues(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getRoot(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), M, NewNode, Processed, ReadyToProcess, llvm::SelectionDAG::RemoveDeadNodes(), llvm::SDNode::setNodeId(), llvm::SelectionDAG::setRoot(), Unanalyzed, llvm::SDNode::use_begin(), llvm::SDNode::use_end(), and llvm::ISD::VECTOR_SHUFFLE.

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

Definition at line 179 of file LegalizeTypes.h.

References llvm::SDNode::getNumValues().


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.