Lines Matching full:store
11 // S4_storeirb_io %100, 0, 0 ; store-immediate-byte
12 // S4_storeirb_io %100, 1, 0 ; store-immediate-byte
14 // S4_storeirh_io %100, 0, 0 ; store-immediate-halfword
18 // or as one could say, "reduce store queue pressure". Also, wide stores
80 StringRef getPassName() const override { return "Hexagon Store Widening"; } in getPassName()
116 "Hexason Store Widening", false, false)
119 "Hexagon Store Widening", false, false) in INITIALIZE_PASS_DEPENDENCY()
142 llvm_unreachable("Store offset calculation missing for a handled opcode"); in getStoreOffset()
169 // stores in the store group Stores.
191 // any store in the group Stores.
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,
205 // semantics of the program. A single store group could be widened as
206 // a whole, if there existed a single store instruction with the same
207 // semantics as the entire group. In many cases, a single store group
208 // may need more than one wide store.
220 // a store, then try to create a store group starting at that instruction in createStoreGroups()
228 // Found a store. Try to create a store group. in createStoreGroups()
236 // Create a single store group. The stores need to be independent between
253 // If this store instruction is aliased with anything already in the in createStoreGroup()
257 // If this store is aliased to any of the memory instructions we have in createStoreGroup()
282 // Check if store instructions S1 and S2 are adjacent. More precisely,
300 /// store, pick a group of stores that can be replaced by a single store
322 assert(isPowerOf2_32(SizeAccum) && "First store size not a power of 2"); in selectStores()
324 // If the size of the first store equals to or exceeds the limit, do nothing. in selectStores()
328 // If the size of the first store is greater than or equal to the address in selectStores()
329 // stored to, then the store cannot be made any wider. in selectStores()
333 // The offset of a store will put restrictions on how wide the store can be. in selectStores()
335 // If the first store already exhausts the offset limits, quit. Test this in selectStores()
352 // this is a size a single store can cover. in selectStores()
356 // any other store to fill the "hole". in selectStores()
390 /// but that may only be possible for store-immediate.
486 // the first store in the OG, but in the order in which the stores occur in replaceStores()
504 assert((InsertAt != MBB->end()) && "Cannot locate any store from the group"); in replaceStores()
532 // a single wide store. Widen each such smaller group and replace the old
560 // Process a single basic block: create the store groups, and replace them
576 assert(G.size() > 1 && "Store group with fewer than 2 elements"); in processBasicBlock()