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.
177 EHCleanupScope *Scope =
190 return Scope->getCleanupBuffer();
237 EHCatchScope *scope =
240 return scope;
408 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
410 // As long as Old strictly encloses the scope's enclosing normal
414 Old.strictlyEncloses(Scope.getEnclosingNormalCleanup());
448 EHCleanupScope &Scope) {
449 assert(Scope.isNormalCleanup());
450 llvm::BasicBlock *Entry = Scope.getNormalBlock();
453 Scope.setNormalBlock(Entry);
547 EHCleanupScope &scope) {
548 llvm::BasicBlock *entry = scope.getNormalBlock();
589 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
590 assert(Scope.getFixupDepth() <= EHStack.getNumBranchFixups());
593 bool IsActive = Scope.isActive();
595 Scope.shouldTestFlagInNormalCleanup() ? Scope.getActiveFlag()
598 Scope.shouldTestFlagInEHCleanup() ? Scope.getActiveFlag()
603 llvm::BasicBlock *EHEntry = Scope.getCachedEHDispatchBlock();
604 assert(Scope.hasEHBranches() == (EHEntry != nullptr));
606 EHScopeStack::stable_iterator EHParent = Scope.getEnclosingEHScope();
611 unsigned FixupDepth = Scope.getFixupDepth();
615 bool HasExistingBranches = Scope.hasBranches();
622 // end of the last cleanup, which points to the current scope. The
631 assert(!Scope.isNormalCleanup() || !HasPrebranchedFallthrough ||
632 (Scope.getNormalBlock() &&
634 == Scope.getNormalBlock()));
637 if (Scope.isNormalCleanup() &&
644 if (Scope.isNormalCleanup() && HasPrebranchedFallthrough && !IsActive) {
651 EHScope &enclosing = *EHStack.find(Scope.getEnclosingNormalCleanup());
663 llvm::BasicBlock *normalEntry = Scope.getNormalBlock();
672 destroyOptimisticNormalEntry(*this, Scope);
682 auto *CleanupSource = reinterpret_cast<char *>(Scope.getCleanupBuffer());
684 CleanupSource, CleanupSource + Scope.getCleanupSize());
688 if (Scope.isNormalCleanup())
690 if (Scope.isEHCleanup())
694 destroyOptimisticNormalEntry(*this, Scope);
702 destroyOptimisticNormalEntry(*this, Scope);
711 llvm::BasicBlock *NormalEntry = CreateNormalEntry(*this, Scope);
739 (Scope.getEnclosingNormalCleanup() != EHStack.stable_end());
742 // - if there are branch-throughs threaded through the scope
747 if (Scope.hasBranchThroughs() ||
751 EHScope &S = *EHStack.find(Scope.getEnclosingNormalCleanup());
760 if (!Scope.hasBranchThroughs() && !HasFixups && !HasFallthrough &&
761 Scope.getNumBranchAfters() == 1) {
773 llvm::BasicBlock *BranchAfter = Scope.getBranchAfterBlock(0);
777 // - if there are branch-afters threaded through the scope
781 } else if (Scope.getNumBranchAfters() ||
807 for (unsigned I = 0, E = Scope.getNumBranchAfters(); I != E; ++I) {
808 Switch->addCase(Scope.getBranchAfterIndex(I),
809 Scope.getBranchAfterBlock(I));
901 // Push a terminate scope or cleanupendpad scope around the potentially
930 // Leave the terminate scope.
951 // If we're not in an active normal cleanup scope, or if the
952 // destination scope is within the innermost active normal cleanup
953 // scope, we don't need to worry about fixups.
964 /// the current cleanup-protected scope. The target scope may not yet
982 // If we're not in an active normal cleanup scope, or if the
983 // destination scope is within the innermost active normal cleanup
984 // scope, we don't need to worry about fixups.
991 // If we can't resolve the destination cleanup scope, just add this
992 // to the current cleanup scope as a branch fixup.
1004 // Otherwise, thread through all the normal cleanups in scope.
1012 EHCleanupScope &Scope =
1014 BI->setSuccessor(0, CreateNormalEntry(*this, Scope));
1022 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(I));
1023 assert(Scope.isNormalCleanup());
1024 I = Scope.getEnclosingNormalCleanup();
1029 Scope.addBranchAfter(Index, Dest.getBlock());
1033 // Otherwise, tell the scope that there's a jump propoagating
1036 if (!Scope.addBranchThrough(Dest.getBlock()))
1074 EHScope &scope = *EHStack.find(i);
1075 if (scope.hasEHBranches())
1078 i = scope.getEnclosingEHScope();
1098 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C));
1111 if (Scope.isNormalCleanup() &&
1113 Scope.setTestFlagInNormalCleanup();
1118 if (Scope.isEHCleanup() &&
1120 Scope.setTestFlagInEHCleanup();
1127 Address var = Scope.getActiveFlag();
1131 Scope.setActiveFlag(var);
1155 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1156 assert(!Scope.isActive() && "double activation");
1160 Scope.setActive(true);
1167 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1168 assert(Scope.isActive() && "double deactivation");
1183 Scope.setActive(false);