Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Scope

14 // control transfers out of a particular scope.  This can be
95 /// Push an entry of the given size onto this protected-scope stack.
161 EHCleanupScope *Scope =
174 return Scope->getCleanupBuffer();
221 EHCatchScope *scope =
224 return scope;
378 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
380 // As long as Old strictly encloses the scope's enclosing normal
384 Old.strictlyEncloses(Scope.getEnclosingNormalCleanup());
418 EHCleanupScope &Scope) {
419 assert(Scope.isNormalCleanup());
420 llvm::BasicBlock *Entry = Scope.getNormalBlock();
423 Scope.setNormalBlock(Entry);
471 // EH cleanups always occur within a terminate scope.
494 // Leave the terminate scope.
523 EHCleanupScope &scope) {
524 llvm::BasicBlock *entry = scope.getNormalBlock();
565 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
566 assert(Scope.getFixupDepth() <= EHStack.getNumBranchFixups());
569 bool IsActive = Scope.isActive();
571 Scope.shouldTestFlagInNormalCleanup() ? Scope.getActiveFlag() : 0;
573 Scope.shouldTestFlagInEHCleanup() ? Scope.getActiveFlag() : 0;
577 llvm::BasicBlock *EHEntry = Scope.getCachedEHDispatchBlock();
578 assert(Scope.hasEHBranches() == (EHEntry != 0));
580 EHScopeStack::stable_iterator EHParent = Scope.getEnclosingEHScope();
585 unsigned FixupDepth = Scope.getFixupDepth();
589 bool HasExistingBranches = Scope.hasBranches();
596 // end of the last cleanup, which points to the current scope. The
605 assert(!Scope.isNormalCleanup() || !HasPrebranchedFallthrough ||
606 (Scope.getNormalBlock() &&
608 == Scope.getNormalBlock()));
611 if (Scope.isNormalCleanup() &&
618 if (Scope.isNormalCleanup() && HasPrebranchedFallthrough && !IsActive) {
625 EHScope &enclosing = *EHStack.find(Scope.getEnclosingNormalCleanup());
637 llvm::BasicBlock *normalEntry = Scope.getNormalBlock();
646 destroyOptimisticNormalEntry(*this, Scope);
657 CleanupBuffer.reserve(Scope.getCleanupSize());
659 Scope.getCleanupBuffer(), Scope.getCleanupSize());
660 CleanupBuffer.set_size(Scope.getCleanupSize());
665 if (Scope.isNormalCleanup())
667 if (Scope.isEHCleanup())
671 destroyOptimisticNormalEntry(*this, Scope);
679 destroyOptimisticNormalEntry(*this, Scope);
688 llvm::BasicBlock *NormalEntry = CreateNormalEntry(*this, Scope);
716 (Scope.getEnclosingNormalCleanup() != EHStack.stable_end());
719 // - if there are branch-throughs threaded through the scope
724 if (Scope.hasBranchThroughs() ||
728 EHScope &S = *EHStack.find(Scope.getEnclosingNormalCleanup());
737 if (!Scope.hasBranchThroughs() && !HasFixups && !HasFallthrough &&
738 Scope.getNumBranchAfters() == 1) {
742 llvm::BasicBlock *BranchAfter = Scope.getBranchAfterBlock(0);
746 // - if there are branch-afters threaded through the scope
750 } else if (Scope.getNumBranchAfters() ||
775 for (unsigned I = 0, E = Scope.getNumBranchAfters(); I != E; ++I) {
776 Switch->addCase(Scope.getBranchAfterIndex(I),
777 Scope.getBranchAfterBlock(I));
897 // If we're not in an active normal cleanup scope, or if the
898 // destination scope is within the innermost active normal cleanup
899 // scope, we don't need to worry about fixups.
910 /// the current cleanup-protected scope. The target scope may not yet
928 // If we're not in an active normal cleanup scope, or if the
929 // destination scope is within the innermost active normal cleanup
930 // scope, we don't need to worry about fixups.
937 // If we can't resolve the destination cleanup scope, just add this
938 // to the current cleanup scope as a branch fixup.
950 // Otherwise, thread through all the normal cleanups in scope.
958 EHCleanupScope &Scope =
960 BI->setSuccessor(0, CreateNormalEntry(*this, Scope));
968 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(I));
969 assert(Scope.isNormalCleanup());
970 I = Scope.getEnclosingNormalCleanup();
975 Scope.addBranchAfter(Index, Dest.getBlock());
979 // Otherwise, tell the scope that there's a jump propoagating
982 if (!Scope.addBranchThrough(Dest.getBlock()))
1020 EHScope &scope = *EHStack.find(i);
1021 if (scope.hasEHBranches())
1024 i = scope.getEnclosingEHScope();
1044 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C));
1057 if (Scope.isNormalCleanup() &&
1059 Scope.setTestFlagInNormalCleanup();
1064 if (Scope.isEHCleanup() &&
1066 Scope.setTestFlagInEHCleanup();
1073 llvm::AllocaInst *var = Scope.getActiveFlag();
1076 Scope.setActiveFlag(var);
1100 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1101 assert(!Scope.isActive() && "double activation");
1105 Scope.setActive(true);
1112 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1113 assert(Scope.isActive() && "double deactivation");
1128 Scope.setActive(false);