Lines Matching full:stores

8 // Replace sequences of "narrow" stores to adjacent memory locations with
9 // a fewer "wide" stores that have the same effect.
17 // The purpose of this pass is to reduce the number of outstanding stores,
18 // or as one could say, "reduce store queue pressure". Also, wide stores
19 // mean fewer stores, and since there are only two memory instructions allowed
51 #define DEBUG_TYPE "hexagon-widen-stores"
96 bool instrAliased(InstrGroup &Stores, const MachineMemOperand &MMO);
97 bool instrAliased(InstrGroup &Stores, const MachineInstr *MI);
115 INITIALIZE_PASS_BEGIN(HexagonStoreWidening, "hexagon-widen-stores",
118 INITIALIZE_PASS_END(HexagonStoreWidening, "hexagon-widen-stores",
151 // Filtering function: any stores whose opcodes are not "approved" of by
154 // For now, only handle stores of immediate values.
155 // Also, reject stores to stack slots.
169 // stores in the store group Stores.
170 bool HexagonStoreWidening::instrAliased(InstrGroup &Stores,
177 for (auto *SI : Stores) {
191 // any store in the group Stores.
192 bool HexagonStoreWidening::instrAliased(InstrGroup &Stores,
195 if (instrAliased(Stores, *I))
200 // Inspect a machine basic block, and generate store groups out of stores
203 // A store group is a group of stores that use the same base register,
221 // i.e. a sequence of independent stores that can be widened.
236 // Create a single store group. The stores need to be independent between
291 // Currently only handling immediate stores.
299 /// Given a sequence of adjacent stores, and a maximum size of a single wide
300 /// store, pick a group of stores that can be replaced by a single store
334 // Offsets in stores of size 2^n bytes need to have the n lowest bits be 0.
344 // of sizes of stores 0...Pow2Num-1 will be a power of 2.
348 // Be greedy: keep accumulating stores as long as they are to adjacent
355 // Stores are sorted, so if S1 and S2 are not adjacent, there won't be
376 // The stores don't add up to anything that can be widened. Clean up.
388 /// Given an "old group" OG of stores, create a "new group" NG of instructions
394 // - only expect stores of immediate values in OG,
486 // the first store in the OG, but in the order in which the stores occur
510 // old stores, and so we are able to recover it back to the proper insertion
561 // with the widened stores, if possible. Processing of each basic block