/external/llvm-project/llvm/test/Transforms/LoopRotate/ |
D | pr35210.ll | 2 …ebug-pass-manager -debug-only=loop-rotate -verify-memoryssa 2>&1 | FileCheck %s --check-prefix=MSSA 32 ; MSSA: Starting llvm::Function pass manager run. 33 ; MSSA-NEXT: Running pass: ADCEPass on f 34 ; MSSA-NEXT: Running analysis: PostDominatorTreeAnalysis on f 35 ; MSSA-NEXT: Starting llvm::Function pass manager run. 36 ; MSSA-NEXT: Running pass: LoopSimplifyPass on f 37 ; MSSA-NEXT: Running analysis: LoopAnalysis on f 38 ; MSSA-NEXT: Running analysis: DominatorTreeAnalysis on f 39 ; MSSA-NEXT: Running analysis: AssumptionAnalysis on f 40 ; MSSA-NEXT: Running pass: LCSSAPass on f [all …]
|
/external/llvm/unittests/Transforms/Utils/ |
D | MemorySSA.cpp | 45 MemorySSA MSSA; member 50 BAA(Test.DL, Test.TLI, AC, &DT), MSSA(*Test.F, &AA, &DT) { in TestAnalyses() 52 Walker = MSSA.getWalker(); in TestAnalyses() 88 MemorySSA &MSSA = Analyses->MSSA; in TEST_F() local 93 EXPECT_EQ(MSSA.getMemoryAccess(Merge), nullptr); in TEST_F() 96 MemoryPhi *MP = MSSA.createMemoryPhi(Merge); in TEST_F() 97 MemoryDef *StoreAccess = cast<MemoryDef>(MSSA.getMemoryAccess(StoreInst)); in TEST_F() 99 MP->addIncoming(MSSA.getLiveOnEntryDef(), Right); in TEST_F() 103 MSSA.createMemoryAccessInBB(LoadInst, MP, Merge, MemorySSA::Beginning)); in TEST_F() 106 MSSA.verifyMemorySSA(); in TEST_F() [all …]
|
/external/llvm-project/llvm/unittests/Analysis/ |
D | MemorySSATest.cpp | 49 std::unique_ptr<MemorySSA> MSSA; member 56 MSSA = std::make_unique<MemorySSA>(*Test.F, &AA, &DT); in TestAnalyses() 57 Walker = MSSA->getWalker(); in TestAnalyses() 93 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F() local 94 MemorySSAUpdater Updater(&MSSA); in TEST_F() 100 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() 108 MSSA.verifyMemorySSA(); in TEST_F() 132 MemorySSA &MSSA = *Analyses->MSSA; in TEST_F() local 133 MemorySSAUpdater Updater(&MSSA); in TEST_F() 146 MemoryPhi *MP = MSSA.getMemoryAccess(Merge); in TEST_F() [all …]
|
/external/llvm-project/llvm/test/Transforms/MemCpyOpt/ |
D | nonlocal-memcpy-memcpy.ll | 3 …%s -memcpyopt -S -enable-memcpyopt-memoryssa=1 -verify-memoryssa | FileCheck %s --check-prefix=MSSA 37 ; MSSA-LABEL: @wobble( 38 ; MSSA-NEXT: bb: 39 ; MSSA-NEXT: [[TEMP:%.*]] = alloca i8, i32 64, align 1 40 ; MSSA-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 [[TEMP]], i8* nonnull align 8 [[SR… 41 ; MSSA-NEXT: br i1 [[SOME_CONDITION:%.*]], label [[MORE:%.*]], label [[OUT:%.*]] 42 ; MSSA: out: 43 ; MSSA-NEXT: call void @qux() 44 ; MSSA-NEXT: unreachable 45 ; MSSA: more: [all …]
|
D | memcpy-invoke-memcpy.ll | 3 …%s -memcpyopt -S -enable-memcpyopt-memoryssa=1 -verify-memoryssa | FileCheck %s --check-prefix=MSSA 25 ; MSSA-LABEL: @test_normal( 26 ; MSSA-NEXT: entry: 27 ; MSSA-NEXT: [[TEMP:%.*]] = alloca i8, i32 64, align 1 28 ; MSSA-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 [[TEMP]], i8* nonnull align 8 [[SR… 29 ; MSSA-NEXT: invoke void @invoke_me() 30 ; MSSA-NEXT: to label [[TRY_CONT:%.*]] unwind label [[LPAD:%.*]] 31 ; MSSA: lpad: 32 ; MSSA-NEXT: [[TMP0:%.*]] = landingpad { i8*, i32 } 33 ; MSSA-NEXT: catch i8* null [all …]
|
D | mixed-sizes.ll | 3 …%s -memcpyopt -S -enable-memcpyopt-memoryssa=1 -verify-memoryssa | FileCheck %s --check-prefix=MSSA 32 ; MSSA-LABEL: @foo( 33 ; MSSA-NEXT: entry: 34 ; MSSA-NEXT: [[A:%.*]] = alloca [10 x i32], align 4 35 ; MSSA-NEXT: [[S:%.*]] = alloca [10 x i32], align 4 36 ; MSSA-NEXT: [[TMP0:%.*]] = bitcast [10 x i32]* [[A]] to i8* 37 ; MSSA-NEXT: [[TMP1:%.*]] = bitcast [10 x i32]* [[S]] to i8* 38 ; MSSA-NEXT: call void @llvm.memset.p0i8.i64(i8* nonnull align 16 [[TMP1]], i8 0, i64 40, i1 fal… 39 ; MSSA-NEXT: [[ARRAYIDX:%.*]] = getelementptr inbounds [10 x i32], [10 x i32]* [[A]], i64 0, i64… 40 ; MSSA-NEXT: store i32 1, i32* [[ARRAYIDX]], align 4 [all …]
|
D | merge-into-memset.ll | 3 …%s -memcpyopt -S -enable-memcpyopt-memoryssa=1 -verify-memoryssa | FileCheck %s --check-prefix=MSSA 25 ; MSSA-LABEL: @foo( 26 ; MSSA-NEXT: entry: 27 ; MSSA-NEXT: [[TMP:%.*]] = alloca [50 x i8], align 8 28 ; MSSA-NEXT: [[TMP4:%.*]] = bitcast [50 x i8]* [[TMP]] to i8* 29 ; MSSA-NEXT: [[TMP1:%.*]] = getelementptr inbounds i8, i8* [[TMP4]], i64 1 30 ; MSSA-NEXT: call void @llvm.memset.p0i8.i64(i8* nonnull [[D:%.*]], i8 0, i64 10, i1 false) 31 ; MSSA-NEXT: call void @llvm.memset.p0i8.i64(i8* align 8 [[TMP4]], i8 0, i64 11, i1 false) 32 ; MSSA-NEXT: br i1 [[C:%.*]], label [[IF_THEN:%.*]], label [[EXIT:%.*]] 33 ; MSSA: if.then: [all …]
|
D | stackrestore.ll | 33 ; MSSA-LABEL: @test_norestore( 34 ; MSSA-NEXT: [[TMPMEM:%.*]] = alloca [10 x i8], align 4 35 ; MSSA-NEXT: [[TMP:%.*]] = getelementptr inbounds [10 x i8], [10 x i8]* [[TMPMEM]], i32 0, i32 0 36 ; MSSA-NEXT: [[P:%.*]] = alloca i8, i32 [[N:%.*]], align 4 37 ; MSSA-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32(i8* [[P]], i8* align 1 getelementptr inbounds … 38 ; MSSA-NEXT: [[P10:%.*]] = getelementptr inbounds i8, i8* [[P]], i32 9 39 ; MSSA-NEXT: store i8 0, i8* [[P10]], align 1 40 ; MSSA-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32(i8* [[TMP]], i8* [[P]], i32 10, i1 false) 41 ; MSSA-NEXT: call void @external() 42 ; MSSA-NEXT: [[HEAP:%.*]] = call i8* @malloc(i32 9) [all …]
|
D | invariant.start.ll | 4 …pyopt -S -enable-memcpyopt-memoryssa=1 -verify-memoryssa | FileCheck %s --check-prefixes=CHECK,MSSA 29 ; MSSA-LABEL: @test1( 30 ; MSSA-NEXT: [[MEMTMP:%.*]] = alloca [[TMP0:%.*]], align 16 31 ; MSSA-NEXT: [[R:%.*]] = bitcast %0* [[MEMTMP]] to i8* 32 ; MSSA-NEXT: call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 16 [[R]], i8* align 16 [[P:%.*]], i3… 33 ; MSSA-NEXT: [[I:%.*]] = call {}* @llvm.invariant.start.p0i8(i64 32, i8* [[P]]) 34 ; MSSA-NEXT: call void @llvm.memmove.p0i8.p0i8.i32(i8* align 16 [[Q:%.*]], i8* align 16 [[P]], i… 35 ; MSSA-NEXT: ret void
|
/external/llvm-project/llvm/lib/Analysis/ |
D | MemorySSAUpdater.cpp | 53 if (!MSSA->DT->isReachableFromEntry(BB)) in getPreviousDefRecursive() 54 return MSSA->getLiveOnEntryDef(); in getPreviousDefRecursive() 68 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() 83 if (MSSA->DT->isReachableFromEntry(Pred)) { in getPreviousDefRecursive() 91 PhiOps.push_back(MSSA->getLiveOnEntryDef()); in getPreviousDefRecursive() 96 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() 111 Phi = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() 155 auto *Defs = MSSA->getWritableBlockDefs(MA->getBlock()); in getPreviousDefInBlock() 167 auto End = MSSA->getWritableBlockAccesses(MA->getBlock())->rend(); in getPreviousDefInBlock() 182 auto *Defs = MSSA->getWritableBlockDefs(BB); in getPreviousDefFromEnd() [all …]
|
D | MemorySSA.cpp | 108 const MemorySSA *MSSA; member in llvm::MemorySSAAnnotatedWriter 111 MemorySSAAnnotatedWriter(const MemorySSA *M) : MSSA(M) {} in MemorySSAAnnotatedWriter() 115 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot() 121 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot() 404 const MemoryLocation &StartLoc, const MemorySSA &MSSA, in checkClobberSanity() argument 407 assert(MSSA.dominates(ClobberAt, Start) && "Clobber doesn't dominate start?"); in checkClobberSanity() 409 if (MSSA.isLiveOnEntryDef(Start)) { in checkClobberSanity() 410 assert(MSSA.isLiveOnEntryDef(ClobberAt) && in checkClobberSanity() 436 FoundClobber = FoundClobber || MSSA.isLiveOnEntryDef(MD); in checkClobberSanity() 450 assert(!MSSA.isLiveOnEntryDef(MA) && "Hit liveOnEntry before clobber?"); in checkClobberSanity() [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Analysis/ |
D | MemorySSAUpdater.cpp | 51 if (!MSSA->DT->isReachableFromEntry(BB)) in getPreviousDefRecursive() 52 return MSSA->getLiveOnEntryDef(); in getPreviousDefRecursive() 66 MemoryAccess *Result = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() 81 if (MSSA->DT->isReachableFromEntry(Pred)) { in getPreviousDefRecursive() 89 PhiOps.push_back(MSSA->getLiveOnEntryDef()); in getPreviousDefRecursive() 94 MemoryPhi *Phi = dyn_cast_or_null<MemoryPhi>(MSSA->getMemoryAccess(BB)); in getPreviousDefRecursive() 109 Phi = MSSA->createMemoryPhi(BB); in getPreviousDefRecursive() 153 auto *Defs = MSSA->getWritableBlockDefs(MA->getBlock()); in getPreviousDefInBlock() 165 auto End = MSSA->getWritableBlockAccesses(MA->getBlock())->rend(); in getPreviousDefInBlock() 180 auto *Defs = MSSA->getWritableBlockDefs(BB); in getPreviousDefFromEnd() [all …]
|
D | MemorySSA.cpp | 102 const MemorySSA *MSSA; member in llvm::MemorySSAAnnotatedWriter 105 MemorySSAAnnotatedWriter(const MemorySSA *M) : MSSA(M) {} in MemorySSAAnnotatedWriter() 109 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot() 115 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot() 401 const MemoryLocation &StartLoc, const MemorySSA &MSSA, in checkClobberSanity() argument 404 assert(MSSA.dominates(ClobberAt, Start) && "Clobber doesn't dominate start?"); in checkClobberSanity() 406 if (MSSA.isLiveOnEntryDef(Start)) { in checkClobberSanity() 407 assert(MSSA.isLiveOnEntryDef(ClobberAt) && in checkClobberSanity() 433 FoundClobber = FoundClobber || MSSA.isLiveOnEntryDef(MD); in checkClobberSanity() 447 assert(!MSSA.isLiveOnEntryDef(MA) && "Hit liveOnEntry before clobber?"); in checkClobberSanity() [all …]
|
/external/llvm-project/llvm/test/CodeGen/PowerPC/ |
D | pr35688.ll | 5 ; RUN: FileCheck %s --check-prefix=MSSA 22 ; MSSA-LABEL: ec_GFp_nistp256_points_mul 23 ; MSSA: ld 3, 0(3) 24 ; MSSA: li 4, 0 25 ; MSSA: subfic 5, 3, 0 26 ; MSSA: subfze 5, 4 27 ; MSSA: sradi 5, 5, 63 28 ; MSSA: subc 3, 5, 3 29 ; MSSA: subfe 3, 4, 5 30 ; MSSA: sradi 3, 3, 63 [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Scalar/ |
D | LoopInstSimplify.cpp | 80 MemorySSA *MSSA = MSSAU ? MSSAU->getMemorySSA() : nullptr; in simplifyLoopInst() local 85 MSSA->verifyMemorySSA(); in simplifyLoopInst() 139 if (MemoryAccess *MA = MSSA->getMemoryAccess(&I)) in simplifyLoopInst() 140 if (MemoryAccess *ReplacementMA = MSSA->getMemoryAccess(SimpleI)) in simplifyLoopInst() 159 MSSA->verifyMemorySSA(); in simplifyLoopInst() 198 MemorySSA *MSSA = nullptr; in runOnLoop() local 201 MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop() 202 MSSAU = MemorySSAUpdater(MSSA); in runOnLoop() 228 if (AR.MSSA) { in run() 229 MSSAU = MemorySSAUpdater(AR.MSSA); in run() [all …]
|
D | LoopRotation.cpp | 47 if (AR.MSSA) in run() 48 MSSAU = MemorySSAUpdater(AR.MSSA); in run() 56 if (AR.MSSA && VerifyMemorySSA) in run() 57 AR.MSSA->verifyMemorySSA(); in run() 60 if (AR.MSSA) in run()
|
/external/llvm-project/llvm/lib/Transforms/Scalar/ |
D | LoopInstSimplify.cpp | 80 MemorySSA *MSSA = MSSAU ? MSSAU->getMemorySSA() : nullptr; in simplifyLoopInst() local 85 MSSA->verifyMemorySSA(); in simplifyLoopInst() 139 if (MemoryAccess *MA = MSSA->getMemoryAccess(&I)) in simplifyLoopInst() 140 if (MemoryAccess *ReplacementMA = MSSA->getMemoryAccess(SimpleI)) in simplifyLoopInst() 159 MSSA->verifyMemorySSA(); in simplifyLoopInst() 198 MemorySSA *MSSA = nullptr; in runOnLoop() local 201 MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop() 202 MSSAU = MemorySSAUpdater(MSSA); in runOnLoop() 228 if (AR.MSSA) { in run() 229 MSSAU = MemorySSAUpdater(AR.MSSA); in run() [all …]
|
D | LoopSink.cpp | 286 MemorySSA *MSSA) { in sinkLoopInvariantInstructions() argument 304 if (MSSA) { in sinkLoopInvariantInstructions() 305 MSSAU = std::make_unique<MemorySSAUpdater>(MSSA); in sinkLoopInvariantInstructions() 307 std::make_unique<SinkAndHoistLICMFlags>(/*IsSink=*/true, &L, MSSA); in sinkLoopInvariantInstructions() 363 MemorySSA *MSSA = EnableMSSAInLoopSink in run() local 398 CurAST.get(), MSSA); in run() 407 if (MSSA) { in run() 411 MSSA->verifyMemorySSA(); in run() 440 MemorySSA *MSSA = nullptr; in runOnLoop() local 442 MSSA = &getAnalysis<MemorySSAWrapperPass>().getMSSA(); in runOnLoop() [all …]
|
D | LoopDeletion.cpp | 144 MemorySSA *MSSA, in deleteLoopIfDead() argument 184 deleteDeadLoop(L, &DT, &SE, &LI, MSSA); in deleteLoopIfDead() 225 deleteDeadLoop(L, &DT, &SE, &LI, MSSA); in deleteLoopIfDead() 242 auto Result = deleteLoopIfDead(&L, AR.DT, AR.SE, AR.LI, AR.MSSA, ORE); in run() 250 if (AR.MSSA) in run() 289 MemorySSA *MSSA = nullptr; in runOnLoop() local 291 MSSA = &MSSAAnalysis->getMSSA(); in runOnLoop() 300 LoopDeletionResult Result = deleteLoopIfDead(L, DT, SE, LI, MSSA, ORE); in runOnLoop()
|
D | LoopRotation.cpp | 54 if (AR.MSSA) in run() 55 MSSAU = MemorySSAUpdater(AR.MSSA); in run() 63 if (AR.MSSA && VerifyMemorySSA) in run() 64 AR.MSSA->verifyMemorySSA(); in run() 67 if (AR.MSSA) in run()
|
D | MemCpyOptimizer.cpp | 355 static bool writtenBetween(MemorySSA *MSSA, MemoryLocation Loc, in writtenBetween() argument 359 MemoryAccess *Clobber = MSSA->getWalker()->getClobberingMemoryAccess( in writtenBetween() 361 return !MSSA->dominates(Clobber, Start); in writtenBetween() 743 MSSA->getWalker()->getClobberingMemoryAccess(LI))) { in processStore() 760 if (accessedBetween(*AA, StoreLoc, MSSA->getMemoryAccess(C), in processStore() 761 MSSA->getMemoryAccess(SI))) in processStore() 1072 if (writtenBetween(MSSA, MemoryLocation::getForSource(MDep), in processMemCpyMemCpyDependence() 1073 MSSA->getMemoryAccess(MDep), MSSA->getMemoryAccess(M))) in processMemCpyMemCpyDependence() 1156 MSSA->getMemoryAccess(MemSet), in processMemSetMemCpyDependence() 1157 MSSA->getMemoryAccess(MemCpy))) { in processMemSetMemCpyDependence() [all …]
|
D | LICM.cpp | 172 static bool pointerInvalidatedByLoopWithMSSA(MemorySSA *MSSA, MemoryUse *MU, 175 static bool pointerInvalidatedByBlockWithMSSA(BasicBlock &BB, MemorySSA &MSSA, 192 TargetTransformInfo *TTI, ScalarEvolution *SE, MemorySSA *MSSA, 225 MemorySSA *MSSA = EnableMSSALoopDependency in runOnLoop() local 244 SE ? &SE->getSE() : nullptr, MSSA, &ORE); in runOnLoop() 279 &AR.SE, AR.MSSA, &ORE)) in run() 286 if (AR.MSSA) in run() 310 MemorySSA *MSSA) in SinkAndHoistLICMFlags() argument 312 IsSink, L, MSSA) {} in SinkAndHoistLICMFlags() 316 Loop *L, MemorySSA *MSSA) in SinkAndHoistLICMFlags() argument [all …]
|
/external/llvm/lib/Transforms/Utils/ |
D | MemorySSA.cpp | 72 const MemorySSA *MSSA; member in llvm::MemorySSAAnnotatedWriter 75 MemorySSAAnnotatedWriter(const MemorySSA *M) : MSSA(M) {} in MemorySSAAnnotatedWriter() 79 if (MemoryAccess *MA = MSSA->getMemoryAccess(BB)) in emitBasicBlockStartAnnot() 85 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) in emitInstructionAnnot() 302 MemorySSA::MemorySSA(MemorySSA &&MSSA) in MemorySSA() argument 303 : AA(MSSA.AA), DT(MSSA.DT), F(MSSA.F), in MemorySSA() 304 ValueToMemoryAccess(std::move(MSSA.ValueToMemoryAccess)), in MemorySSA() 305 PerBlockAccesses(std::move(MSSA.PerBlockAccesses)), in MemorySSA() 306 LiveOnEntryDef(std::move(MSSA.LiveOnEntryDef)), in MemorySSA() 307 Walker(std::move(MSSA.Walker)), NextID(MSSA.NextID) { in MemorySSA() [all …]
|
/external/swiftshader/third_party/llvm-10.0/llvm/include/llvm/Analysis/ |
D | MemorySSAUpdater.h | 72 MemorySSA *MSSA; 82 MemorySSAUpdater(MemorySSA *MSSA) : MSSA(MSSA) {} in MemorySSAUpdater() argument 236 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) 260 MemorySSA* getMemorySSA() const { return MSSA; } in getMemorySSA()
|
/external/llvm-project/llvm/include/llvm/Analysis/ |
D | MemorySSAUpdater.h | 58 MemorySSA *MSSA; 68 MemorySSAUpdater(MemorySSA *MSSA) : MSSA(MSSA) {} in MemorySSAUpdater() argument 222 if (MemoryAccess *MA = MSSA->getMemoryAccess(I)) 246 MemorySSA* getMemorySSA() const { return MSSA; } in getMemorySSA()
|