clang
3.9.0
|
A branch fixup. More...
#include <EHScopeStack.h>
Public Attributes | |
llvm::BasicBlock * | OptimisticBranchBlock |
The block containing the terminator which needs to be modified into a switch if this fixup is resolved into the current scope. More... | |
llvm::BasicBlock * | Destination |
The ultimate destination of the branch. More... | |
unsigned | DestinationIndex |
The destination index value. More... | |
llvm::BranchInst * | InitialBranch |
The initial branch of the fixup. More... | |
A branch fixup.
These are required when emitting a goto to a label which hasn't been emitted yet. The goto is optimistically emitted as a branch to the basic block for the label, and (if it occurs in a scope with non-trivial cleanups) a fixup is added to the innermost cleanup. When a (normal) cleanup is popped, any unresolved fixups in that scope are threaded through the cleanup.
Definition at line 37 of file EHScopeStack.h.
llvm::BasicBlock* clang::CodeGen::BranchFixup::Destination |
The ultimate destination of the branch.
This can be set to null to indicate that this fixup was successfully resolved.
Definition at line 47 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().
unsigned clang::CodeGen::BranchFixup::DestinationIndex |
The destination index value.
Definition at line 50 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().
llvm::BranchInst* clang::CodeGen::BranchFixup::InitialBranch |
The initial branch of the fixup.
Definition at line 53 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), and ResolveAllBranchFixups().
llvm::BasicBlock* clang::CodeGen::BranchFixup::OptimisticBranchBlock |
The block containing the terminator which needs to be modified into a switch if this fixup is resolved into the current scope.
If null, LatestBranch points directly to the destination.
Definition at line 41 of file EHScopeStack.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitBranchThroughCleanup(), clang::CodeGen::CodeGenFunction::PopCleanupBlock(), ResolveAllBranchFixups(), and clang::CodeGen::CodeGenFunction::ResolveBranchFixups().