LLVM API Documentation

LowerInvoke.cpp File Reference

#include "llvm/Transforms/Scalar.h"
#include "llvm/Constants.h"
#include "llvm/DerivedTypes.h"
#include "llvm/Instructions.h"
#include "llvm/Module.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Support/CommandLine.h"
#include <csetjmp>

Include dependency graph for LowerInvoke.cpp:

Go to the source code of this file.

Functions

FunctionPassllvm::createLowerInvokePass (unsigned JumpBufSize, unsigned JumpBufAlign)
static void MarkBlocksLiveIn (BasicBlock *BB, std::set< BasicBlock * > &LiveBBs)

Variables

Statistic NumInvokes ("lowerinvoke","Number of invokes replaced")
Statistic NumUnwinds ("lowerinvoke","Number of unwinds replaced")
Statistic NumSpilled ("lowerinvoke","Number of registers live across unwind edges")
cl::opt< bool > ExpensiveEHSupport ("enable-correct-eh-support", cl::desc("Make the -lowerinvoke pass insert expensive, but correct, EH code"))
FunctionWriteFn
FunctionAbortFn
ValueAbortMessage
unsigned AbortMessageLength
const TypeJBLinkTy
GlobalVariableJBListHead
FunctionSetJmpFn
FunctionLongJmpFn
unsigned JumpBufSize
unsigned JumpBufAlign
RegisterOpt< LowerInvoke > X ("lowerinvoke","Lower invoke and unwind, for unwindless code generators")


Function Documentation

static void MarkBlocksLiveIn ( BasicBlock BB,
std::set< BasicBlock * > &  LiveBBs 
) [static]

MarkBlocksLiveIn - Insert BB and all of its predescessors into LiveBBs until we reach blocks we've already seen.

Definition at line 290 of file LowerInvoke.cpp.

References BB, E, PI, llvm::pred_begin(), and llvm::pred_end().


Variable Documentation

Function* AbortFn

Definition at line 61 of file LowerInvoke.cpp.

Value* AbortMessage

Definition at line 62 of file LowerInvoke.cpp.

unsigned AbortMessageLength

Definition at line 63 of file LowerInvoke.cpp.

cl::opt<bool> ExpensiveEHSupport("enable-correct-eh-support", cl::desc("Make the -lowerinvoke pass insert expensive, but correct, EH code")) [static]

const Type* JBLinkTy

Definition at line 66 of file LowerInvoke.cpp.

GlobalVariable* JBListHead

Definition at line 67 of file LowerInvoke.cpp.

unsigned JumpBufAlign

Definition at line 85 of file LowerInvoke.cpp.

unsigned JumpBufSize

Definition at line 84 of file LowerInvoke.cpp.

Function * LongJmpFn

Definition at line 68 of file LowerInvoke.cpp.

Statistic NumInvokes("lowerinvoke","Number of invokes replaced") [static]

Statistic NumSpilled("lowerinvoke","Number of registers live across unwind edges") [static]

Statistic NumUnwinds("lowerinvoke","Number of unwinds replaced") [static]

Function* SetJmpFn

Definition at line 68 of file LowerInvoke.cpp.

Function* WriteFn

Definition at line 60 of file LowerInvoke.cpp.

RegisterOpt<LowerInvoke> X("lowerinvoke","Lower invoke and unwind, for unwindless code generators") [static]