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/Intrinsics.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 "llvm/Support/Compiler.h"
#include "llvm/Target/TargetLowering.h"
#include <csetjmp>
#include <set>

Include dependency graph for LowerInvoke.cpp:

Go to the source code of this file.

Defines

#define DEBUG_TYPE   "lowerinvoke"

Functions

 STATISTIC (NumInvokes,"Number of invokes replaced")
 STATISTIC (NumUnwinds,"Number of unwinds replaced")
 STATISTIC (NumSpilled,"Number of registers live across unwind edges")
FunctionPass * llvm::createLowerInvokePass (const TargetLowering *TLI=0)
static void MarkBlocksLiveIn (BasicBlock *BB, std::set< BasicBlock * > &LiveBBs)

Variables

static cl::opt< bool > ExpensiveEHSupport ("enable-correct-eh-support", cl::desc("Make the -lowerinvoke pass insert expensive, but correct, EH code"))
static RegisterPass< LowerInvoke > X ("lowerinvoke","Lower invoke and unwind, for unwindless code generators")


Define Documentation

#define DEBUG_TYPE   "lowerinvoke"

Definition at line 37 of file LowerInvoke.cpp.


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 309 of file LowerInvoke.cpp.

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

STATISTIC ( NumSpilled  ,
"Number of registers live across unwind edges"   
)

STATISTIC ( NumUnwinds  ,
"Number of unwinds replaced"   
)

STATISTIC ( NumInvokes  ,
"Number of invokes replaced"   
)


Variable Documentation

Definition at line 66 of file LowerInvoke.cpp.

Definition at line 67 of file LowerInvoke.cpp.

Definition at line 68 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]

char ID [static]

Definition at line 79 of file LowerInvoke.cpp.

const Type* JBLinkTy

Definition at line 71 of file LowerInvoke.cpp.

Definition at line 72 of file LowerInvoke.cpp.

Definition at line 73 of file LowerInvoke.cpp.

Definition at line 73 of file LowerInvoke.cpp.

Definition at line 76 of file LowerInvoke.cpp.

Definition at line 65 of file LowerInvoke.cpp.

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