Lines Matching defs:SROA

62   struct SROA : public FunctionPass {
63 SROA(int T, bool hasDT, char &ID, int ST, int AT, int SLT)
108 /// isUnsafe - This is set to true if the alloca cannot be SROA'd.
132 /// SRThreshold - The maximum alloca size to considered for SROA.
136 /// contain to be considered for SROA.
140 /// have to be considered for SROA.
188 // SROA_DT - SROA that uses DominatorTree.
189 struct SROA_DT : public SROA {
193 SROA(T, true, ID, ST, AT, SLT) {
205 // SROA_SSAUp - SROA that uses SSAUpdater.
206 struct SROA_SSAUp : public SROA {
210 SROA(T, false, ID, ST, AT, SLT) {
1026 bool SROA::runOnFunction(Function &F) {
1405 bool SROA::performPromotion(Function &F) {
1450 /// SROA. It must be a struct or array type with a small number of elements.
1451 bool SROA::ShouldAttemptScalarRepl(AllocaInst *AI) {
1466 bool SROA::performScalarRepl(Function &F) {
1481 // Handle dead allocas trivially. These can be formed by SROA'ing arrays
1493 // Check to see if we can perform the core SROA transformation. We cannot
1536 /// predicate, do SROA now.
1537 void SROA::DoScalarReplacement(AllocaInst *AI,
1539 DEBUG(dbgs() << "Found inst to SROA: " << *AI << '\n');
1575 void SROA::DeleteDeadInstructions() {
1597 void SROA::isSafeForScalarRepl(Instruction *I, uint64_t Offset,
1657 void SROA::isSafePHISelectUseForScalarRepl(Instruction *I, uint64_t Offset,
1707 void SROA::isSafeGEP(GetElementPtrInst *GEPI,
1788 void SROA::isSafeMemAccess(uint64_t Offset, uint64_t MemSize,
1827 bool SROA::TypeHasComponent(Type *T, uint64_t Offset, uint64_t Size) {
1863 void SROA::RewriteForScalarRepl(Instruction *I, AllocaInst *AI, uint64_t Offset,
1977 void SROA::RewriteBitCast(BitCastInst *BC, AllocaInst *AI, uint64_t Offset,
2005 uint64_t SROA::FindElementAndOffset(Type *&T, uint64_t &Offset,
2035 void SROA::RewriteGEP(GetElementPtrInst *GEPI, AllocaInst *AI, uint64_t Offset,
2096 void SROA::RewriteLifetimeIntrinsic(IntrinsicInst *II, AllocaInst *AI,
2111 // Splice the first element and index 'NewOffset' bytes in. SROA will
2154 SROA::RewriteMemIntrinUserOfAlloca(MemIntrinsic *MI, Instruction *Inst,
2328 SROA::RewriteStoreUserOfWholeAlloca(StoreInst *SI, AllocaInst *AI,
2443 SROA::RewriteLoadUserOfWholeAlloca(LoadInst *LI, AllocaInst *AI,
2530 /// by SROA; return false otherwise.
2537 // SROA currently handles only Arrays and Structs.
2567 bool SROA::isSafeAllocaToScalarRepl(AllocaInst *AI) {