Lines Matching defs:insn
315 void removeDefsOfInstruction(Instruction *insn) {
316 for (int d = 0; insn->defExists(d); ++d) {
317 ValueDef *def = &insn->def(d);
366 Instruction *insn = val->getUniqueInsn();
368 if (!insn)
369 insn = bb->getFirst();
374 int begin = insn->serial;
379 val->id, begin, insn->serial, end);
894 isShortRegOp(Instruction *insn)
899 return insn->srcExists(1) && insn->src(1).getFile() == FILE_IMMEDIATE &&
900 insn->getSrc(1)->reg.data.u64;
1095 GCRA::makeCompound(Instruction *insn, bool split)
1097 LValue *rep = (split ? insn->getSrc(0) : insn->getDef(0))->asLValue();
1101 insn->print();
1111 for (int c = 0; split ? insn->defExists(c) : insn->srcExists(c); ++c) {
1112 LValue *val = (split ? insn->getDef(c) : insn->getSrc(c))->asLValue();
1135 Instruction *insn = reinterpret_cast<Instruction *>(insns.get(n));
1137 switch (insn->op) {
1141 for (c = 0; insn->srcExists(c); ++c)
1142 if (!coalesceValues(insn->getDef(0), insn->getSrc(c), false)) {
1152 for (c = 0; insn->srcExists(c); ++c)
1153 coalesceValues(insn->getDef(0), insn->getSrc(c), true);
1154 if (insn->op == OP_MERGE) {
1155 merges.push_back(insn);
1156 if (insn->srcExists(1))
1157 makeCompound(insn, false);
1163 splits.push_back(insn);
1164 for (c = 0; insn->defExists(c); ++c)
1165 coalesceValues(insn->getSrc(0), insn->getDef(c), true);
1166 makeCompound(insn, true);
1172 if (!insn->getDef(0)->uses.empty())
1173 i = (*insn->getDef(0)->uses.begin())->getInsn();
1177 i = insn->getSrc(0)->getUniqueInsn();
1179 coalesceValues(insn->getDef(0), insn->getSrc(0), false);
1194 for (c = 0; insn->srcExists(c) && c != insn->predSrc; ++c)
1195 coalesceValues(insn->getDef(c), insn->getSrc(c), true);
1277 Instruction *insn = reinterpret_cast<Instruction *>(insns.get(i));
1278 for (int d = 0; insn->defExists(d); ++d)
1279 if (insn->getDef(d)->reg.file <= LAST_REGISTER_FILE &&
1280 insn->getDef(d)->rep() == insn->getDef(d))
1281 insertOrderedTail(values, getNode(insn->getDef(d)->asLValue()));
1546 Instruction *insn = lval->getInsn();
1547 if (insn->op != OP_MAD && insn->op != OP_FMA && insn->op != OP_SAD)
1551 if (insn->src(0).getFile() != FILE_GPR ||
1552 insn->src(1).getFile() != FILE_GPR ||
1553 insn->src(2).getFile() != FILE_GPR)
1559 if (insn->flagsDef >= 0)
1567 if (insn->dType != TYPE_F32)
1569 if (!insn->src(0).getImmediate(imm) &&
1570 !insn->src(1).getImmediate(imm))
1574 nodes[i].addRegPreference(getNode(insn->getSrc(2)->asLValue()));
2036 // TODO: make part of texture insn
2131 RegAlloc::InsertConstraintsPass::condenseDefs(Instruction *insn)
2134 for (n = 0; insn->defExists(n) && insn->def(n).getFile() == FILE_GPR; ++n);
2135 condenseDefs(insn, 0, n - 1);
2139 RegAlloc::InsertConstraintsPass::condenseDefs(Instruction *insn,
2146 size += insn->getDef(s)->reg.size;
2156 split->setDef(d - a, insn->getDef(d));
2157 insn->setDef(d, NULL);
2159 insn->setDef(a, lval);
2161 for (int k = a + 1, d = b + 1; insn->defExists(d); ++d, ++k) {
2162 insn->setDef(k, insn->getDef(d));
2163 insn->setDef(d, NULL);
2166 split->setPredicate(insn->cc, insn->getPredicate());
2168 insn->bb->insertAfter(insn, split);
2173 RegAlloc::InsertConstraintsPass::condenseSrcs(Instruction *insn,
2180 size += insn->getSrc(s)->reg.size;
2187 insn->takeExtraSources(0, save);
2192 merge->setSrc(i, insn->getSrc(s));
2194 insn->moveSources(b + 1, a - b);
2195 insn->setSrc(a, lval);
2196 insn->bb->insertBefore(insn, merge);
2198 insn->putExtraSources(0, save);