Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:scope

14 // control transfers out of a particular scope.  This can be
89 /// Push an entry of the given size onto this protected-scope stack.
155 EHCleanupScope *Scope =
168 return Scope->getCleanupBuffer();
215 EHCatchScope *scope =
218 return scope;
372 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
374 // As long as Old strictly encloses the scope's enclosing normal
378 Old.strictlyEncloses(Scope.getEnclosingNormalCleanup());
385 EHCleanupScope &Scope) {
386 assert(Scope.isNormalCleanup());
387 llvm::BasicBlock *Entry = Scope.getNormalBlock();
390 Scope.setNormalBlock(Entry);
438 // EH cleanups always occur within a terminate scope.
461 // Leave the terminate scope.
490 EHCleanupScope &scope) {
491 llvm::BasicBlock *entry = scope.getNormalBlock();
532 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.begin());
533 assert(Scope.getFixupDepth() <= EHStack.getNumBranchFixups());
536 bool IsActive = Scope.isActive();
538 Scope.shouldTestFlagInNormalCleanup() ? Scope.getActiveFlag() : 0;
540 Scope.shouldTestFlagInEHCleanup() ? Scope.getActiveFlag() : 0;
544 llvm::BasicBlock *EHEntry = Scope.getCachedEHDispatchBlock();
545 assert(Scope.hasEHBranches() == (EHEntry != 0));
547 EHScopeStack::stable_iterator EHParent = Scope.getEnclosingEHScope();
552 unsigned FixupDepth = Scope.getFixupDepth();
556 bool HasExistingBranches = Scope.hasBranches();
563 // end of the last cleanup, which points to the current scope. The
572 assert(!Scope.isNormalCleanup() || !HasPrebranchedFallthrough ||
573 (Scope.getNormalBlock() &&
575 == Scope.getNormalBlock()));
578 if (Scope.isNormalCleanup() &&
585 if (Scope.isNormalCleanup() && HasPrebranchedFallthrough && !IsActive) {
592 EHScope &enclosing = *EHStack.find(Scope.getEnclosingNormalCleanup());
604 llvm::BasicBlock *normalEntry = Scope.getNormalBlock();
613 destroyOptimisticNormalEntry(*this, Scope);
624 CleanupBuffer.reserve(Scope.getCleanupSize());
626 Scope.getCleanupBuffer(), Scope.getCleanupSize());
627 CleanupBuffer.set_size(Scope.getCleanupSize());
632 if (Scope.isNormalCleanup())
634 if (Scope.isEHCleanup())
638 destroyOptimisticNormalEntry(*this, Scope);
646 destroyOptimisticNormalEntry(*this, Scope);
655 llvm::BasicBlock *NormalEntry = CreateNormalEntry(*this, Scope);
683 (Scope.getEnclosingNormalCleanup() != EHStack.stable_end());
686 // - if there are branch-throughs threaded through the scope
691 if (Scope.hasBranchThroughs() ||
695 EHScope &S = *EHStack.find(Scope.getEnclosingNormalCleanup());
704 if (!Scope.hasBranchThroughs() && !HasFixups && !HasFallthrough &&
705 Scope.getNumBranchAfters() == 1) {
709 llvm::BasicBlock *BranchAfter = Scope.getBranchAfterBlock(0);
713 // - if there are branch-afters threaded through the scope
717 } else if (Scope.getNumBranchAfters() ||
742 for (unsigned I = 0, E = Scope.getNumBranchAfters(); I != E; ++I) {
743 Switch->addCase(Scope.getBranchAfterIndex(I),
744 Scope.getBranchAfterBlock(I));
856 // If we're not in an active normal cleanup scope, or if the
857 // destination scope is within the innermost active normal cleanup
858 // scope, we don't need to worry about fixups.
869 scope. The target scope may not yet
887 // If we're not in an active normal cleanup scope, or if the
888 // destination scope is within the innermost active normal cleanup
889 // scope, we don't need to worry about fixups.
896 // If we can't resolve the destination cleanup scope, just add this
897 // to the current cleanup scope as a branch fixup.
909 // Otherwise, thread through all the normal cleanups in scope.
917 EHCleanupScope &Scope =
919 BI->setSuccessor(0, CreateNormalEntry(*this, Scope));
927 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(I));
928 assert(Scope.isNormalCleanup());
929 I = Scope.getEnclosingNormalCleanup();
934 Scope.addBranchAfter(Index, Dest.getBlock());
938 // Otherwise, tell the scope that there's a jump propoagating
941 if (!Scope.addBranchThrough(Dest.getBlock()))
979 EHScope &scope = *EHStack.find(i);
980 if (scope.hasEHBranches())
983 i = scope.getEnclosingEHScope();
1003 EHCleanupScope &Scope = cast<EHCleanupScope>(*CGF.EHStack.find(C));
1016 if (Scope.isNormalCleanup() &&
1018 Scope.setTestFlagInNormalCleanup();
1023 if (Scope.isEHCleanup() &&
1025 Scope.setTestFlagInEHCleanup();
1032 llvm::AllocaInst *var = Scope.getActiveFlag();
1035 Scope.setActiveFlag(var);
1059 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1060 assert(!Scope.isActive() && "double activation");
1064 Scope.setActive(true);
1071 EHCleanupScope &Scope = cast<EHCleanupScope>(*EHStack.find(C));
1072 assert(Scope.isActive() && "double deactivation");
1087 Scope.setActive(false);