Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Scope

14 // control transfers out of a particular scope.  This can be
113 /// Push an entry of the given size onto this protected-scope stack.
192 EHCleanupScope *Scope =
205 Scope->setLifetimeMarker();
207 return Scope->getCleanupBuffer();
254 EHCatchScope *scope =
257 return scope;
425 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
427 // As long as Old strictly encloses the scope's enclosing normal
431 Old.strictlyEncloses(Scope.getEnclosingNormalCleanup());
465 EHCleanupScope &Scope) {
466 assert(Scope.isNormalCleanup());
467 llvm::BasicBlock *Entry = Scope.getNormalBlock();
470 Scope.setNormalBlock(Entry);
564 EHCleanupScope &scope) {
565 llvm::BasicBlock *entry = scope.getNormalBlock();
606 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
607 assert(Scope.getFixupDepth() <= EHStack.getNumBranchFixups());
610 bool IsActive = Scope.isActive();
612 Scope.shouldTestFlagInNormalCleanup() ? Scope.getActiveFlag()
615 Scope.shouldTestFlagInEHCleanup() ? Scope.getActiveFlag()
620 llvm::BasicBlock *EHEntry = Scope.getCachedEHDispatchBlock();
621 assert(Scope.hasEHBranches() == (EHEntry != nullptr));
623 EHScopeStack::stable_iterator EHParent = Scope.getEnclosingEHScope();
628 unsigned FixupDepth = Scope.getFixupDepth();
632 bool HasExistingBranches = Scope.hasBranches();
639 // end of the last cleanup, which points to the current scope. The
648 assert(!Scope.isNormalCleanup() || !HasPrebranchedFallthrough ||
649 (Scope.getNormalBlock() &&
651 == Scope.getNormalBlock()));
654 if (Scope.isNormalCleanup() &&
661 if (Scope.isNormalCleanup() && HasPrebranchedFallthrough && !IsActive) {
668 EHScope &enclosing = *EHStack.find(Scope.getEnclosingNormalCleanup());
680 llvm::BasicBlock *normalEntry = Scope.getNormalBlock();
689 destroyOptimisticNormalEntry(*this, Scope);
701 auto *CleanupSource = reinterpret_cast<char *>(Scope.getCleanupBuffer());
704 size_t CleanupSize = Scope.getCleanupSize();
717 if (Scope.isNormalCleanup())
719 if (Scope.isEHCleanup())
723 destroyOptimisticNormalEntry(*this, Scope);
731 destroyOptimisticNormalEntry(*this, Scope);
740 llvm::BasicBlock *NormalEntry = CreateNormalEntry(*this, Scope);
768 (Scope.getEnclosingNormalCleanup() != EHStack.stable_end());
771 // - if there are branch-throughs threaded through the scope
776 if (Scope.hasBranchThroughs() ||
780 EHScope &S = *EHStack.find(Scope.getEnclosingNormalCleanup());
789 if (!Scope.hasBranchThroughs() && !HasFixups && !HasFallthrough &&
790 Scope.getNumBranchAfters() == 1) {
802 llvm::BasicBlock *BranchAfter = Scope.getBranchAfterBlock(0);
806 // - if there are branch-afters threaded through the scope
810 } else if (Scope.getNumBranchAfters() ||
836 for (unsigned I = 0, E = Scope.getNumBranchAfters(); I != E; ++I) {
837 Switch->addCase(Scope.getBranchAfterIndex(I),
838 Scope.getBranchAfterBlock(I));
930 // Push a terminate scope or cleanupendpad scope around the potentially
959 // Leave the terminate scope.
980 // If we're not in an active normal cleanup scope, or if the
981 // destination scope is within the innermost active normal cleanup
982 // scope, we don't need to worry about fixups.
993 /// the current cleanup-protected scope. The target scope may not yet
1011 // If we're not in an active normal cleanup scope, or if the
1012 // destination scope is within the innermost active normal cleanup
1013 // scope, we don't need to worry about fixups.
1020 // If we can't resolve the destination cleanup scope, just add this
1021 // to the current cleanup scope as a branch fixup.
1033 // Otherwise, thread through all the normal cleanups in scope.
1041 EHCleanupScope &Scope =
1043 BI->setSuccessor(0, CreateNormalEntry(*this, Scope));
1051 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(I));
1052 assert(Scope.isNormalCleanup());
1053 I = Scope.getEnclosingNormalCleanup();
1058 Scope.addBranchAfter(Index, Dest.getBlock());
1062 // Otherwise, tell the scope that there's a jump propoagating
1065 if (!Scope.addBranchThrough(Dest.getBlock()))
1103 EHScope &scope = *EHStack.find(i);
1104 if (scope.hasEHBranches())
1107 i = scope.getEnclosingEHScope();
1127 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C));
1140 if (Scope.isNormalCleanup() &&
1142 Scope.setTestFlagInNormalCleanup();
1147 if (Scope.isEHCleanup() &&
1149 Scope.setTestFlagInEHCleanup();
1156 Address var = Scope.getActiveFlag();
1160 Scope.setActiveFlag(var);
1184 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1185 assert(!Scope.isActive() && "double activation");
1189 Scope.setActive(true);
1196 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1197 assert(Scope.isActive() && "double deactivation");
1212 Scope.setActive(false);