Lines Matching defs:LoadStoreOpt
1 //===- LoadStoreOpt.cpp ----------- Generic memory optimizations -*- C++ -*-==//
9 /// This file implements the LoadStoreOpt optimization pass.
12 #include "llvm/CodeGen/GlobalISel/LoadStoreOpt.h"
52 char LoadStoreOpt::ID = 0;
53 INITIALIZE_PASS_BEGIN(LoadStoreOpt, DEBUG_TYPE, "Generic memory optimizations",
55 INITIALIZE_PASS_END(LoadStoreOpt, DEBUG_TYPE, "Generic memory optimizations",
58 LoadStoreOpt::LoadStoreOpt(std::function<bool(const MachineFunction &)> F)
61 LoadStoreOpt::LoadStoreOpt()
62 : LoadStoreOpt([](const MachineFunction &) { return false; }) {}
64 void LoadStoreOpt::init(MachineFunction &MF) {
76 void LoadStoreOpt::getAnalysisUsage(AnalysisUsage &AU) const {
305 bool LoadStoreOpt::mergeStores(SmallVectorImpl<GStore *> &StoresToMerge) {
351 bool LoadStoreOpt::isLegalOrBeforeLegalizer(const LegalityQuery &Query,
360 bool LoadStoreOpt::doSingleStoreMerge(SmallVectorImpl<GStore *> &Stores) {
441 bool LoadStoreOpt::processMergeCandidate(StoreMergeCandidate &C) {
501 bool LoadStoreOpt::operationAliasesWithCandidate(MachineInstr &MI,
510 void LoadStoreOpt::StoreMergeCandidate::addPotentialAlias(MachineInstr &MI) {
514 bool LoadStoreOpt::addStoreToCandidate(GStore &StoreMI,
585 bool LoadStoreOpt::mergeBlockStores(MachineBasicBlock &MBB) {
713 bool LoadStoreOpt::mergeTruncStore(GStore &StoreMI,
907 bool LoadStoreOpt::mergeTruncStoresBlock(MachineBasicBlock &BB) {
925 bool LoadStoreOpt::mergeFunctionStores(MachineFunction &MF) {
945 void LoadStoreOpt::initializeStoreMergeTargetInfo(unsigned AddrSpace) {
977 bool LoadStoreOpt::runOnMachineFunction(MachineFunction &MF) {