Lines Matching defs:puti
116 * Redundant-PutI removal
133 * If block contains GetI or PutI, Expensive transformations.
136 - Unrolled a loop, and block does not contain GetI or PutI:
139 - Unrolled a loop, and block contains GetI or PutI:
151 accessed using GetI/PutI, and there is no need so far for them to
406 IRPutI *puti, *puti2;
422 puti = st->Ist.PutI.details;
423 e1 = flatten_Expr(bb, puti->ix);
424 e2 = flatten_Expr(bb, puti->data);
425 puti2 = mkIRPutI(puti->descr, e1, puti->bias, e2);
670 key = mk_key_GetIPutI( st->Ist.PutI.details->descr );
807 vassert(isIRAtom(st->Ist.PutI.details->ix));
808 vassert(isIRAtom(st->Ist.PutI.details->data));
946 key = mk_key_GetIPutI( st->Ist.PutI.details->descr );
947 vassert(isIRAtom(st->Ist.PutI.details->ix));
948 vassert(isIRAtom(st->Ist.PutI.details->data));
2506 IRPutI *puti, *puti2;
2507 puti = st->Ist.PutI.details;
2508 vassert(isIRAtom(puti->ix));
2509 vassert(isIRAtom(puti->data));
2510 puti2 = mkIRPutI(puti->descr,
2511 fold_Expr(env, subst_Expr(env, puti->ix)),
2512 puti->bias,
2513 fold_Expr(env, subst_Expr(env, puti->data)));
2931 addUses_Expr(set, st->Ist.PutI.details->ix);
2932 addUses_Expr(set, st->Ist.PutI.details->data);
3153 /* These are helper functions for CSE and GetI/PutI transformations.
3234 /* So now we know that the GetI and PutI index the same array
3791 Put, PutI - dump unless no-overlap is proven (.. -> 1)
3793 to do the no-overlap assessments needed for Put/PutI.
3832 IRPutI *puti = st->Ist.PutI.details;
3837 puti->descr,
3838 puti->ix,
3839 puti->bias
4049 /* Perhaps st is PutI[t, con] ? */
4050 IRPutI *puti = st->Ist.PutI.details;
4052 && puti->ix->tag == Iex_RdTmp
4053 && collapseChain(bb, i-1, puti->ix->Iex.RdTmp.tmp,
4060 con2 += puti->bias;
4062 = IRStmt_PutI(mkIRPutI(puti->descr,
4065 puti->data));
4078 /*--- PutI/GetI transformations ---*/
4082 the given starting point to find, if any, a PutI which writes
4084 that the PutI writes. This is the core of PutI-GetI forwarding. */
4102 /* Scan backwards in bb from startHere to find a suitable PutI
4137 IRPutI *puti = st->Ist.PutI.details;
4141 puti->descr,
4142 puti->ix,
4143 puti->bias
4147 /* This PutI definitely doesn't overlap. Ignore it and
4153 /* We don't know if this PutI writes to the same guest
4160 return puti->data;
4180 /* Assuming pi is a PutI stmt, is s2 identical to it (in the sense
4190 IRPutI *p1 = pi->Ist.PutI.details;
4191 IRPutI *p2 = s2->Ist.PutI.details;
4203 /* Assuming pi is a PutI stmt, is s2 a Get/GetI/Put/PutI which might
4217 IRPutI *p1 = pi->Ist.PutI.details;
4256 IRPutI *p2 = s2->Ist.PutI.details;
4309 /* ---------- PutI/GetI transformations main functions --------- */
4368 PutI which makes this one redundant, and dodging various
4372 * If a Get which might overlap, give up (because this PutI
4490 deltaIRExpr(st->Ist.PutI.details->ix, delta);
4491 deltaIRExpr(st->Ist.PutI.details->data, delta);
5036 aoccCount_Expr(uses, st->Ist.PutI.details->ix);
5037 aoccCount_Expr(uses, st->Ist.PutI.details->data);
5375 IRPutI *puti, *puti2;
5415 puti = st->Ist.PutI.details;
5416 puti2 = mkIRPutI(puti->descr,
5417 atbSubst_Expr(env, puti->ix),
5418 puti->bias,
5419 atbSubst_Expr(env, puti->data));
5548 IRRegArray *descr = st->Ist.PutI.details->descr;
5859 optimising as much as possible in the presence of GetI and PutI. */