Lines Matching defs:insn
239 BasicBlock::remove(Instruction *insn)
241 assert(insn->bb == this);
243 if (insn->prev)
244 insn->prev->next = insn->next;
246 if (insn->next)
247 insn->next->prev = insn->prev;
249 exit = insn->prev;
251 if (insn == entry) {
252 if (insn->next)
253 entry = insn->next;
255 if (insn->prev && insn->prev->op != OP_PHI)
256 entry = insn->prev;
261 if (insn == phi)
262 phi = (insn->next && insn->next->op == OP_PHI) ? insn->next : 0;
265 insn->bb = NULL;
266 insn->next =
267 insn->prev = NULL;
299 BasicBlock::splitCommon(Instruction *insn, BasicBlock *bb, bool attach)
301 bb->entry = insn;
303 if (insn) {
304 exit = insn->prev;
305 insn->prev = NULL;
319 for (; insn; insn = insn->next) {
322 insn->bb = bb;
323 bb->exit = insn;
330 BasicBlock::splitBefore(Instruction *insn, bool attach)
333 assert(!insn || insn->op != OP_PHI);
338 splitCommon(insn, bb, attach);
343 BasicBlock::splitAfter(Instruction *insn, bool attach)
346 assert(!insn || insn->op != OP_PHI);
351 splitCommon(insn ? insn->next : NULL, bb, attach);
425 for (Instruction *insn = bb->getFirst(); insn; insn = insn->next)
426 result.insert(insn, insn->serial);
485 Instruction *insn, *next;
497 for (insn = skipPhi ? bb->getEntry() : bb->getFirst(); insn != NULL;
498 insn = next) {
499 next = insn->next;
500 if (!visit(insn))