Lines Matching refs:def

60 		struct instruction *def = pseudo->def;  in phi_parent()  local
61 if (def->bb == source) in phi_parent()
85 struct instruction *def; in get_phisources() local
90 def = phi->def; in get_phisources()
91 assert(def->opcode == OP_PHISOURCE); in get_phisources()
92 sources[i++] = def; in get_phisources()
196 struct instruction *def; in trivial_phi() local
201 def = phi->def; in trivial_phi()
202 if (!def->bb) in trivial_phi()
204 src = def->phi_src; // bypass OP_PHISRC & get the real source in trivial_phi()
215 if (DEF_OPCODE(def, src) == OP_PHI) { in trivial_phi()
218 if ((pseudo = trivial_phi(pseudo, def, list))) in trivial_phi()
266 kill_instruction(p->def); in rem_usage()
472 return p->def->opcode; in def_opcode()
499 struct instruction *src = pseudo->def; in operand_size()
650 struct instruction *and = ora->def; in simplify_mask_or_and()
666 struct instruction *or = insn->src1->def; in simplify_mask_or_and()
783 struct instruction *def; in simplify_shift() local
802 def = pseudo->def; in simplify_shift()
803 switch (def->opcode) { in simplify_shift()
806 if (def == insn) // cyclic DAG! in simplify_shift()
808 src2 = def->src2; in simplify_shift()
815 if (def->opcode == OP_LSR) in simplify_shift()
836 switch(DEF_OPCODE(def, pseudo)) { in simplify_shift()
840 if (!constant(def->src2)) in simplify_shift()
843 omask = def->src2->value; in simplify_shift()
848 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
851 def->opcode = OP_LSR; in simplify_shift()
852 def->src2 = insn->src2; in simplify_shift()
860 return simplify_mask_shift_or(insn, def, mask); in simplify_shift()
864 if (def->src2 != insn->src2) in simplify_shift()
873 switch(DEF_OPCODE(def, pseudo)) { in simplify_shift()
876 if (!constant(def->src2)) in simplify_shift()
879 omask = def->src2->value; in simplify_shift()
884 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
890 if (def->src2 != insn->src2) in simplify_shift()
896 return simplify_mask_shift_or(insn, def, mask); in simplify_shift()
899 if (def == insn) // cyclic DAG! in simplify_shift()
901 src2 = def->src2; in simplify_shift()
917 return replace_pseudo(insn, &insn->src1, pseudo->def->src1); in simplify_shift()
924 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_shift()
957 struct instruction *def; in simplify_seteq_setne() local
967 def = old->def; in simplify_seteq_setne()
968 if (!def) in simplify_seteq_setne()
972 if (!inverse && def->size == 1 && insn->size == 1) { in simplify_seteq_setne()
980 opcode = def->opcode; in simplify_seteq_setne()
985 if (def->size != insn->size) in simplify_seteq_setne()
987 if (def->src2->type != PSEUDO_VAL) in simplify_seteq_setne()
989 if (def->src2->value != 1) in simplify_seteq_setne()
1001 use_pseudo(insn, def->src1, &insn->src1); in simplify_seteq_setne()
1002 use_pseudo(insn, def->src2, &insn->src2); in simplify_seteq_setne()
1007 if (value && (def->orig_type->bit_size == 1)) in simplify_seteq_setne()
1017 return replace_pseudo(insn, &insn->src1, def->src); in simplify_seteq_setne()
1028 osize = def->size; in simplify_seteq_setne()
1029 def->opcode = OP_AND; in simplify_seteq_setne()
1030 def->type = def->orig_type; in simplify_seteq_setne()
1031 def->size = def->type->bit_size; in simplify_seteq_setne()
1032 def->src2 = value_pseudo(bits_mask(osize)); in simplify_seteq_setne()
1043 struct instruction *def; in simplify_constant_mask() local
1046 switch (DEF_OPCODE(def, old)) { in simplify_constant_mask()
1051 return simplify_mask_or(insn, mask, def); in simplify_constant_mask()
1054 return simplify_mask_shift(def, mask); in simplify_constant_mask()
1056 osize = def->orig_type->bit_size; in simplify_constant_mask()
1259 struct instruction *def; in simplify_associative_binop() local
1266 def = pseudo->def; in simplify_associative_binop()
1267 if (def == insn) in simplify_associative_binop()
1269 if (def->opcode != insn->opcode) in simplify_associative_binop()
1271 if (!simple_pseudo(def->src2)) in simplify_associative_binop()
1273 if (multi_users(def->target)) in simplify_associative_binop()
1275 switch_pseudo(def, &def->src1, insn, &insn->src2); in simplify_associative_binop()
1318 struct instruction *def; in simplify_unop() local
1321 def = insn->src->def; in simplify_unop()
1322 if (def && def->opcode == OP_NOT) in simplify_unop()
1323 return replace_with_pseudo(insn, def->src); in simplify_unop()
1326 def = insn->src->def; in simplify_unop()
1327 if (def && def->opcode == OP_NEG) in simplify_unop()
1328 return replace_with_pseudo(insn, def->src); in simplify_unop()
1342 struct instruction *def = addr->def; in simplify_one_memop() local
1343 if (def->opcode == OP_SYMADDR && def->src) { in simplify_one_memop()
1345 use_pseudo(insn, def->src, &insn->src); in simplify_one_memop()
1348 if (def->opcode == OP_ADD) { in simplify_one_memop()
1349 new = def->src1; in simplify_one_memop()
1350 off = def->src2; in simplify_one_memop()
1354 off = def->src1; in simplify_one_memop()
1405 struct instruction *def; in simplify_cast() local
1422 def = src->def; in simplify_cast()
1425 val = def->src2; in simplify_cast()
1433 def->opcode = OP_TRUNC; in simplify_cast()
1434 def->orig_type = def->type; in simplify_cast()
1435 def->type = insn->type; in simplify_cast()
1436 def->size = size; in simplify_cast()
1445 if (val->value & (1 << (def->size - 1))) in simplify_cast()
1460 def->opcode = OP_ZEXT; in simplify_cast()
1461 def->orig_type = insn->orig_type; in simplify_cast()
1462 def->type = insn->type; in simplify_cast()
1463 def->size = insn->size; in simplify_cast()
1483 insn->opcode = def->opcode; in simplify_cast()
1484 use_pseudo(insn, def->src2, &insn->src2); in simplify_cast()
1485 return replace_pseudo(insn, &insn->src1, def->src1); in simplify_cast()
1492 return simplify_mask_or(insn, mask, def); in simplify_cast()
1500 return simplify_mask_shift(def, mask); in simplify_cast()
1504 insn->orig_type = def->orig_type; in simplify_cast()
1505 return replace_pseudo(insn, &insn->src1, def->src); in simplify_cast()
1507 if (size != def->orig_type->bit_size) in simplify_cast()
1510 insn->src2 = value_pseudo((1ULL << def->size) - 1); in simplify_cast()
1511 return replace_pseudo(insn, &insn->src1, def->src); in simplify_cast()
1520 insn->orig_type = def->orig_type; in simplify_cast()
1521 return replace_pseudo(insn, &insn->src, def->src); in simplify_cast()
1527 osize = def->orig_type->bit_size; in simplify_cast()
1529 return replace_with_pseudo(insn, def->src); in simplify_cast()
1531 insn->opcode = def->opcode; in simplify_cast()
1532 insn->orig_type = def->orig_type; in simplify_cast()
1533 return replace_pseudo(insn, &insn->src, def->src); in simplify_cast()
1537 insn->orig_type = def->orig_type; in simplify_cast()
1538 return replace_pseudo(insn, &insn->src, def->src); in simplify_cast()
1622 static int simplify_cond_branch(struct instruction *br, struct instruction *def, pseudo_t newcond) in simplify_cond_branch() argument
1625 if (def->opcode == OP_SET_EQ) { in simplify_cond_branch()
1658 struct instruction *def = cond->def; in simplify_branch() local
1660 if (def->opcode == OP_SET_NE || def->opcode == OP_SET_EQ) { in simplify_branch()
1661 if (constant(def->src1) && !def->src1->value) in simplify_branch()
1662 return simplify_cond_branch(insn, def, def->src2); in simplify_branch()
1663 if (constant(def->src2) && !def->src2->value) in simplify_branch()
1664 return simplify_cond_branch(insn, def, def->src1); in simplify_branch()
1666 if (def->opcode == OP_SEL) { in simplify_branch()
1667 if (constant(def->src2) && constant(def->src3)) { in simplify_branch()
1668 long long val1 = def->src2->value; in simplify_branch()
1669 long long val2 = def->src3->value; in simplify_branch()
1683 return replace_pseudo(insn, &insn->cond, def->src1); in simplify_branch()
1686 if (def->opcode == OP_SEXT || def->opcode == OP_ZEXT) in simplify_branch()
1687 return replace_pseudo(insn, &insn->cond, def->src); in simplify_branch()