16 #ifndef LLVM_LIB_CODEGEN_SELECTIONDAG_INSTREMITTER_H 17 #define LLVM_LIB_CODEGEN_SELECTIONDAG_INSTREMITTER_H 25 class MachineInstrBuilder;
41 void EmitCopyFromReg(
SDNode *Node,
unsigned ResNo,
42 bool IsClone,
bool IsCloned,
48 unsigned getDstOfOnlyCopyToRegUse(
SDNode *Node,
49 unsigned ResNo)
const;
51 void CreateVirtualRegisters(
SDNode *Node,
54 bool IsClone,
bool IsCloned,
70 bool IsDebug,
bool IsClone,
bool IsCloned);
81 bool IsDebug,
bool IsClone,
bool IsCloned);
86 unsigned ConstrainForSubReg(
unsigned VReg,
unsigned SubIdx,
MVT VT,
92 bool IsClone,
bool IsCloned);
98 void EmitCopyToRegClassNode(
SDNode *Node,
104 bool IsClone,
bool IsCloned);
109 static unsigned CountResults(
SDNode *Node);
124 EmitMachineNode(Node, IsClone, IsCloned, VRBaseMap);
126 EmitSpecialNode(Node, IsClone, IsCloned, VRBaseMap);
140 void EmitMachineNode(
SDNode *Node,
bool IsClone,
bool IsCloned,
142 void EmitSpecialNode(
SDNode *Node,
bool IsClone,
bool IsCloned,
This class represents lattice values for constants.
Describe properties that are true of each instruction in the target description file.
unsigned const TargetRegisterInfo * TRI
MachineBasicBlock * getBlock()
getBlock - Return the current basic block.
const HexagonInstrInfo * TII
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
TargetInstrInfo - Interface to description of machine instruction set.
unsigned const MachineRegisterInfo * MRI
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
bool isMachineOpcode() const
Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode...
Represents one node in the SelectionDAG.
MachineRegisterInfo - Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc.
Representation of each machine instruction.
void EmitNode(SDNode *Node, bool IsClone, bool IsCloned, DenseMap< SDValue, unsigned > &VRBaseMap)
EmitNode - Generate machine code for a node and needed dependencies.
Holds the information from a dbg_label node through SDISel.
#define LLVM_LIBRARY_VISIBILITY
LLVM_LIBRARY_VISIBILITY - If a class marked with this attribute is linked into a shared library...
MachineBasicBlock::iterator getInsertPos()
getInsertPos - Return the current insertion position.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation...
Holds the information from a dbg_value node through SDISel.