Home | History | Annotate | Download | only in priv

Lines Matching refs:PutI

97       * Redundant-PutI removal
114 * If block contains GetI or PutI, Expensive transformations.
117 - Unrolled a loop, and block does not contain GetI or PutI:
120 - Unrolled a loop, and block contains GetI or PutI:
132 accessed using GetI/PutI, and there is no need so far for them to
396 e1 = flatten_Expr(bb, st->Ist.PutI.ix);
397 e2 = flatten_Expr(bb, st->Ist.PutI.data);
398 addStmtToIRSB(bb, IRStmt_PutI(st->Ist.PutI.descr,
400 st->Ist.PutI.bias,
625 key = mk_key_GetIPutI( st->Ist.PutI.descr );
747 vassert(isIRAtom(st->Ist.PutI.ix));
748 vassert(isIRAtom(st->Ist.PutI.data));
842 key = mk_key_GetIPutI( st->Ist.PutI.descr );
843 vassert(isIRAtom(st->Ist.PutI.ix));
844 vassert(isIRAtom(st->Ist.PutI.data));
1932 vassert(isIRAtom(st->Ist.PutI.ix));
1933 vassert(isIRAtom(st->Ist.PutI.data));
1935 st->Ist.PutI.descr,
1936 fold_Expr(subst_Expr(env, st->Ist.PutI.ix)),
1937 st->Ist.PutI.bias,
1938 fold_Expr(subst_Expr(env, st->Ist.PutI.data))
2204 addUses_Expr(set, st->Ist.PutI.ix);
2205 addUses_Expr(set, st->Ist.PutI.data);
2407 /* These are helper functions for CSE and GetI/PutI transformations.
2488 /* So now we know that the GetI and PutI index the same array
2816 Put, PutI - dump unless no-overlap is proven (.. -> 1)
2818 to do the no-overlap assessments needed for Put/PutI.
2860 st->Ist.PutI.descr,
2861 st->Ist.PutI.ix,
2862 st->Ist.PutI.bias
3072 /* Perhaps st is PutI[t, con] ? */
3075 && st->Ist.PutI.ix->tag == Iex_RdTmp
3076 && collapseChain(bb, i-1, st->Ist.PutI.ix->Iex.RdTmp.tmp,
3083 con2 += st->Ist.PutI.bias;
3085 = IRStmt_PutI(st->Ist.PutI.descr,
3088 st->Ist.PutI.data);
3101 /*--- PutI/GetI transformations ---*/
3105 the given starting point to find, if any, a PutI which writes
3107 that the PutI writes. This is the core of PutI-GetI forwarding. */
3125 /* Scan backwards in bb from startHere to find a suitable PutI
3163 st->Ist.PutI.descr,
3164 st->Ist.PutI.ix,
3165 st->Ist.PutI.bias
3169 /* This PutI definitely doesn't overlap. Ignore it and
3175 /* We don't know if this PutI writes to the same guest
3182 return st->Ist.PutI.data;
3202 /* Assuming pi is a PutI stmt, is s2 identical to it (in the sense
3214 pi->Ist.PutI.descr, pi->Ist.PutI.ix, pi->Ist.PutI.bias,
3215 s2->Ist.PutI.descr, s2->Ist.PutI.ix, s2->Ist.PutI.bias
3222 /* Assuming pi is a PutI stmt, is s2 a Get/GetI/Put/PutI which might
3235 getArrayBounds(pi->Ist.PutI.descr, &minoffP, &maxoffP);
3265 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3272 vassert(isIRAtom(s2->Ist.PutI.ix));
3273 vassert(isIRAtom(s2->Ist.PutI.data));
3276 pi->Ist.PutI.descr, pi->Ist.PutI.ix, pi->Ist.PutI.bias,
3277 s2->Ist.PutI.descr, s2->Ist.PutI.ix, s2->Ist.PutI.bias
3285 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3286 pi->Ist.PutI.bias,
3296 pi->Ist.PutI.descr, pi->Ist.PutI.ix,
3323 /* ---------- PutI/GetI transformations main functions --------- */
3380 PutI which makes this one redundant, and dodging various
3384 * If a Get which might overlap, give up (because this PutI
3502 deltaIRExpr(st->Ist.PutI.ix, delta);
3503 deltaIRExpr(st->Ist.PutI.data, delta);
3981 aoccCount_Expr(uses, st->Ist.PutI.ix);
3982 aoccCount_Expr(uses, st->Ist.PutI.data);
4288 st->Ist.PutI.descr,
4289 atbSubst_Expr(env, st->Ist.PutI.ix),
4290 st->Ist.PutI.bias,
4291 atbSubst_Expr(env, st->Ist.PutI.data)
4594 optimising as much as possible in the presence of GetI and PutI. */