clang  6.0.0svn
Public Attributes | List of all members
clang::CodeGen::BranchFixup Struct Reference

A branch fixup. More...

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/EHScopeStack.h"

Collaboration diagram for clang::CodeGen::BranchFixup:
Collaboration graph
[legend]

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...
 

Detailed Description

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.

Member Data Documentation

◆ Destination

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.

◆ DestinationIndex

unsigned clang::CodeGen::BranchFixup::DestinationIndex

The destination index value.

Definition at line 50 of file EHScopeStack.h.

◆ InitialBranch

llvm::BranchInst* clang::CodeGen::BranchFixup::InitialBranch

The initial branch of the fixup.

Definition at line 53 of file EHScopeStack.h.

◆ OptimisticBranchBlock

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.


The documentation for this struct was generated from the following file: