Lines Matching defs:BucketChain
273 bool prepareBasesForCommoningChains(Bucket &BucketChain);
303 /// Prepare for one chain \p BucketChain, find the best base element and
304 /// update all other elements in \p BucketChain accordingly.
307 /// \p BucketChain.
309 bool prepareBaseForDispFormChain(Bucket &BucketChain, PrepForm Form);
311 /// Prepare for one chain \p BucketChain, find the best base element and
312 /// update all other elements in \p BucketChain accordingly.
314 /// \p BucketChain.
316 bool prepareBaseForUpdateFormChain(Bucket &BucketChain);
318 /// Rewrite load/store instructions in \p BucketChain according to
320 bool rewriteLoadStores(Loop *L, Bucket &BucketChain,
901 bool PPCLoopInstrFormPrep::prepareBaseForDispFormChain(Bucket &BucketChain,
911 for (unsigned j = 0, je = BucketChain.Elements.size(); j != je; ++j) {
912 if (!BucketChain.Elements[j].Offset)
915 unsigned Remainder = cast<SCEVConstant>(BucketChain.Elements[j].Offset)
950 // If the first value is most profitable, no needed to adjust BucketChain
957 BucketChain.Elements[RemainderOffsetInfo[MaxCountRemainder].first].Offset;
958 BucketChain.BaseSCEV = SE->getAddExpr(BucketChain.BaseSCEV, Offset);
959 for (auto &E : BucketChain.Elements) {
966 std::swap(BucketChain.Elements[RemainderOffsetInfo[MaxCountRemainder].first],
967 BucketChain.Elements[0]);
977 bool PPCLoopInstrFormPrep::prepareBaseForUpdateFormChain(Bucket &BucketChain) {
987 for (int j = 0, je = BucketChain.Elements.size(); j != je; ++j) {
988 if (auto *II = dyn_cast<IntrinsicInst>(BucketChain.Elements[j].Instr))
998 if (!BucketChain.Elements[j].Offset ||
999 cast<SCEVConstant>(BucketChain.Elements[j].Offset)->isZero())
1002 const SCEV *Offset = BucketChain.Elements[j].Offset;
1003 BucketChain.BaseSCEV = SE->getAddExpr(BucketChain.BaseSCEV, Offset);
1004 for (auto &E : BucketChain.Elements) {
1011 std::swap(BucketChain.Elements[j], BucketChain.Elements[0]);
1018 Loop *L, Bucket &BucketChain, SmallSet<BasicBlock *, 16> &BBChanged,
1023 cast<SCEVAddRecExpr>(BucketChain.BaseSCEV);
1047 rewriteForBase(L, BasePtrSCEV, BucketChain.Elements.begin()->Instr,
1058 for (const BucketElement &BE : llvm::drop_begin(BucketChain.Elements)) {