16 #ifndef INSTREMITTER_H
17 #define INSTREMITTER_H
25 class MachineInstrBuilder;
42 void EmitCopyFromReg(
SDNode *Node,
unsigned ResNo,
43 bool IsClone,
bool IsCloned,
49 unsigned getDstOfOnlyCopyToRegUse(
SDNode *Node,
50 unsigned ResNo)
const;
52 void CreateVirtualRegisters(
SDNode *Node,
55 bool IsClone,
bool IsCloned,
71 bool IsDebug,
bool IsClone,
bool IsCloned);
82 bool IsDebug,
bool IsClone,
bool IsCloned);
87 unsigned ConstrainForSubReg(
unsigned VReg,
unsigned SubIdx,
93 bool IsClone,
bool IsCloned);
99 void EmitCopyToRegClassNode(
SDNode *Node,
105 bool IsClone,
bool IsCloned);
122 EmitMachineNode(Node, IsClone, IsCloned, VRBaseMap);
124 EmitSpecialNode(Node, IsClone, IsCloned, VRBaseMap);
138 void EmitMachineNode(
SDNode *Node,
bool IsClone,
bool IsCloned,
140 void EmitSpecialNode(
SDNode *Node,
bool IsClone,
bool IsCloned,
InstrEmitter(MachineBasicBlock *mbb, MachineBasicBlock::iterator insertpos)
static unsigned CountResults(SDNode *Node)
MachineBasicBlock * getBlock()
getBlock - Return the current basic block.
bundle_iterator< MachineInstr, instr_iterator > iterator
void EmitNode(SDNode *Node, bool IsClone, bool IsCloned, DenseMap< SDValue, unsigned > &VRBaseMap)
MachineInstr * EmitDbgValue(SDDbgValue *SD, DenseMap< SDValue, unsigned > &VRBaseMap)
MachineBasicBlock::iterator getInsertPos()
getInsertPos - Return the current insertion position.
bool isMachineOpcode() const