Home | History | Annotate | Download | only in Scalar

Lines Matching refs:SROA

1 //===- SROA.cpp - Scalar Replacement Of Aggregates ------------------------===//
26 #define DEBUG_TYPE "sroa"
516 // Disable SRoA for any intrinsics except for lifetime invariants.
650 /// \brief Disable SROA entirely if there are unhandled users of the alloca.
826 class SROA : public FunctionPass {
850 /// viable for SROA after a round of promotion takes place. In those cases,
876 SROA(bool RequiresDomTree = true)
884 const char *getPassName() const { return "SROA"; }
902 char SROA::ID = 0;
905 return new SROA(RequiresDomTree);
908 INITIALIZE_PASS_BEGIN(SROA, "sroa", "Scalar Replacement Of Aggregates",
911 INITIALIZE_PASS_END(SROA, "sroa", "Scalar Replacement Of Aggregates",
1046 PN.getName() + ".sroa.speculated");
1069 InVal, (PN.getName() + ".sroa.speculate.load." + Pred->getName()));
1133 IRB.CreateLoad(TV, LI->getName() + ".sroa.speculate.load.true");
1135 IRB.CreateLoad(FV, LI->getName() + ".sroa.speculate.load.false");
1147 LI->getName() + ".sroa.speculated");
1844 SROA &Pass;
1884 AllocaSliceRewriter(const DataLayout &DL, AllocaSlices &S, SROA &Pass,
2379 // within a single alloca before SROA ran, or with transfers that have
2977 /// This routine drives both of the rewriting goals of the SROA pass. It tries
2985 bool SROA::rewritePartition(AllocaInst &AI, AllocaSlices &S,
3043 AI.getName() + ".sroa." + Twine(B - S.begin()), &AI);
3153 bool SROA::splitAlloca(AllocaInst &AI, AllocaSlices &S) {
3263 /// \brief Analyze an alloca for SROA.
3268 bool SROA::runOnAlloca(AllocaInst &AI) {
3269 DEBUG(dbgs() << "SROA alloca: " << AI << "\n");
3343 void SROA::deleteDeadInstructions(SmallPtrSet<AllocaInst*, 4> &DeletedAllocas) {
3383 bool SROA::promoteAllocas(Function &F) {
3428 // Push the loads and stores we find onto the list. SROA will already
3473 bool SROA::runOnFunction(Function &F) {
3474 DEBUG(dbgs() << "SROA function: " << F.getName() << "\n");
3478 DEBUG(dbgs() << " Skipping SROA -- no target data!\n");
3521 void SROA::getAnalysisUsage(AnalysisUsage &AU) const {