Lines Matching defs:lval
766 inline void setValue(LValue *lval) { data = lval; }
906 isShortRegVal(LValue *lval)
908 if (lval->getInsn() == NULL)
910 for (Value::DefCIterator def = lval->defs.begin();
911 def != lval->defs.end(); ++def)
914 for (Value::UseCIterator use = lval->uses.begin();
915 use != lval->uses.end(); ++use)
922 GCRA::RIG_Node::init(const RegisterSet& regs, LValue *lval)
924 setValue(lval);
925 if (lval->reg.data.id >= 0)
926 lval->noSpill = lval->fixedReg = 1;
928 colors = regs.units(lval->reg.file, lval->reg.size);
929 f = lval->reg.file;
931 if (lval->reg.data.id >= 0)
932 reg = regs.idToUnits(lval);
939 if (regs.restrictedGPR16Range && f == FILE_GPR && (lval->reg.size == 2 || isShortRegVal(lval)))
944 livei.insert(lval->livei);
1500 LValue *lval = node->getValue();
1506 lval->compMask = node->getCompMask();
1509 lval->id, lval->reg.size);
1511 if (lval->reg.file == FILE_GPR)
1512 slot = spill.assignSlot(node->livei, lval->reg.size);
1513 mustSpill.push_back(ValuePair(lval, slot));
1519 LValue *lval = nodes[i].getValue();
1521 lval->reg.data.id =
1522 regs.unitsToId(nodes[i].f, nodes[i].reg, lval->reg.size);
1540 LValue *lval = reinterpret_cast<LValue *>(func->allLValues.get(i));
1541 if (lval) {
1542 nodes[i].init(regs, lval);
1545 if (lval->inFile(FILE_GPR) && lval->getInsn() != NULL) {
1546 Instruction *insn = lval->getInsn();
1618 LValue *lval = reinterpret_cast<LValue *>(it.get());
1620 lval->livei.clear();
1622 lval->compound = 0;
1623 lval->compMask = 0;
1625 if (lval->join == lval)
1629 lval->reg.data.id = lval->join->reg.data.id;
1631 lval->join = lval;
1703 SpillCodeInserter::offsetSlot(Value *base, const LValue *lval)
1705 if (!lval->compound || (lval->compMask & 0x1))
1709 slot->reg.data.offset += (ffs(lval->compMask) - 1) * lval->reg.size;
1710 slot->reg.size = lval->reg.size;
1716 SpillCodeInserter::spill(Instruction *defi, Value *slot, LValue *lval)
1718 const DataType ty = typeOfSize(lval->reg.size);
1720 slot = offsetSlot(slot, lval);
1724 lval->noSpill = 1;
1728 st->setSrc(1, lval);
1731 st->setSrc(0, lval);
1732 for (int d = 0; d < lval->reg.size / 4; ++d)
1735 for (int d = lval->reg.size / 4 - 1; d >= 0; --d) {
1749 st->setSrc(0, lval);
1750 if (lval->reg.file == FILE_FLAGS)
1757 SpillCodeInserter::unspill(Instruction *usei, LValue *lval, Value *slot)
1759 const DataType ty = typeOfSize(lval->reg.size);
1761 slot = offsetSlot(slot, lval);
1762 lval = cloneShallow(func, lval);
1766 lval->noSpill = 1;
1771 for (int d = 0; d < lval->reg.size / 4; ++d) {
1784 ld->setDef(0, lval);
1786 return lval;
1791 ld->setDef(0, lval);
1793 if (lval->reg.file == FILE_FLAGS)
1797 return lval;
1822 LValue *lval = it->first->asLValue();
1830 std::list<ValueDef *> &defs = mergedDefs(lval);
2150 LValue *lval = new_LValue(func, FILE_GPR);
2151 lval->reg.size = size;
2154 split->setSrc(0, lval);
2159 insn->setDef(a, lval);
2183 LValue *lval = new_LValue(func, FILE_GPR);
2184 lval->reg.size = size;
2190 merge->setDef(0, lval);
2195 insn->setSrc(a, lval);
2636 LValue *lval = new_LValue(func, cst->src(s).getFile());
2637 lval->reg.size = size;
2640 mov->setDef(0, lval);
2675 LValue *lval = new_LValue(func, cst->def(d).getFile());
2677 lval->reg.size = size;
2680 mov->setSrc(0, lval);