Home | History | Annotate | Download | only in priv

Lines Matching refs:PutI

109       * Redundant-PutI removal
126 * If block contains GetI or PutI, Expensive transformations.
129 - Unrolled a loop, and block does not contain GetI or PutI:
132 - Unrolled a loop, and block contains GetI or PutI:
144 accessed using GetI/PutI, and there is no need so far for them to
399 IRPutI *puti, *puti2;
413 puti = st->Ist.PutI.details;
414 e1 = flatten_Expr(bb, puti->ix);
415 e2 = flatten_Expr(bb, puti->data);
416 puti2 = mkIRPutI(puti->descr, e1, puti->bias, e2);
643 key = mk_key_GetIPutI( st->Ist.PutI.details->descr );
765 vassert(isIRAtom(st->Ist.PutI.details->ix));
766 vassert(isIRAtom(st->Ist.PutI.details->data));
900 key = mk_key_GetIPutI( st->Ist.PutI.details->descr );
901 vassert(isIRAtom(st->Ist.PutI.details->ix));
902 vassert(isIRAtom(st->Ist.PutI.details->data));
2365 IRPutI *puti, *puti2;
2366 puti = st->Ist.PutI.details;
2367 vassert(isIRAtom(puti->ix));
2368 vassert(isIRAtom(puti->data));
2369 puti2 = mkIRPutI(puti->descr,
2370 fold_Expr(env, subst_Expr(env, puti->ix)),
2371 puti->bias,
2372 fold_Expr(env, subst_Expr(env, puti->data)));
2644 addUses_Expr(set, st->Ist.PutI.details->ix);
2645 addUses_Expr(set, st->Ist.PutI.details->data);
2849 /* These are helper functions for CSE and GetI/PutI transformations.
2930 /* So now we know that the GetI and PutI index the same array
3392 Put, PutI - dump unless no-overlap is proven (.. -> 1)
3394 to do the no-overlap assessments needed for Put/PutI.
3432 IRPutI *puti = st->Ist.PutI.details;
3437 puti->descr,
3438 puti->ix,
3439 puti->bias
3649 /* Perhaps st is PutI[t, con] ? */
3650 IRPutI *puti = st->Ist.PutI.details;
3652 && puti->ix->tag == Iex_RdTmp
3653 && collapseChain(bb, i-1, puti->ix->Iex.RdTmp.tmp,
3660 con2 += puti->bias;
3662 = IRStmt_PutI(mkIRPutI(puti->descr,
3665 puti->data));
3678 /*--- PutI/GetI transformations ---*/
3682 the given starting point to find, if any, a PutI which writes
3684 that the PutI writes. This is the core of PutI-GetI forwarding. */
3702 /* Scan backwards in bb from startHere to find a suitable PutI
3737 IRPutI *puti = st->Ist.PutI.details;
3741 puti->descr,
3742 puti->ix,
3743 puti->bias
3747 /* This PutI definitely doesn't overlap. Ignore it and
3753 /* We don't know if this PutI writes to the same guest
3760 return puti->data;
3780 /* Assuming pi is a PutI stmt, is s2 identical to it (in the sense
3790 IRPutI *p1 = pi->Ist.PutI.details;
3791 IRPutI *p2 = s2->Ist.PutI.details;
3803 /* Assuming pi is a PutI stmt, is s2 a Get/GetI/Put/PutI which might
3817 IRPutI *p1 = pi->Ist.PutI.details;
3856 IRPutI *p2 = s2->Ist.PutI.details;
3909 /* ---------- PutI/GetI transformations main functions --------- */
3970 PutI which makes this one redundant, and dodging various
3974 * If a Get which might overlap, give up (because this PutI
4092 deltaIRExpr(st->Ist.PutI.details->ix, delta);
4093 deltaIRExpr(st->Ist.PutI.details->data, delta);
4571 aoccCount_Expr(uses, st->Ist.PutI.details->ix);
4572 aoccCount_Expr(uses, st->Ist.PutI.details->data);
4879 IRPutI *puti, *puti2;
4905 puti = st->Ist.PutI.details;
4906 puti2 = mkIRPutI(puti->descr,
4907 atbSubst_Expr(env, puti->ix),
4908 puti->bias,
4909 atbSubst_Expr(env, puti->data));
5236 optimising as much as possible in the presence of GetI and PutI. */