LLVM  3.7.0
Macros | Functions
WinEHPrepare.cpp File Reference
#include "llvm/CodeGen/Passes.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/TinyPtrVector.h"
#include "llvm/Analysis/LibCallSemantics.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/CodeGen/WinEHFuncInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PatternMatch.h"
#include "llvm/Pass.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "llvm/Transforms/Utils/Local.h"
#include "llvm/Transforms/Utils/PromoteMemToReg.h"
#include <memory>
Include dependency graph for WinEHPrepare.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "winehprepare"
 

Functions

 INITIALIZE_TM_PASS (WinEHPrepare,"winehprepare","Prepare Windows exceptions", false, false) FunctionPass *llvm
 
static bool isSelectorDispatch (BasicBlock *BB, BasicBlock *&CatchHandler, Constant *&Selector, BasicBlock *&NextBB)
 
static void findReachableBlocks (SmallPtrSetImpl< BasicBlock * > &ReachableBBs, SetVector< BasicBlock * > &Worklist, const SetVector< BasicBlock * > *StopPoints)
 
static InstructionfindBeginCatchSplitPoint (BasicBlock *BB, IntrinsicInst *II)
 
static bool isCatchAllLandingPad (const BasicBlock *BB)
 
static bool isCatchBlock (BasicBlock *BB)
 
static BasicBlockcreateStubLandingPad (Function *Handler)
 
static bool isLocalAddressCall (const Value *V)
 
static void createCleanupHandler (LandingPadActions &Actions, CleanupHandlerMapTy &CleanupHandlerMap, BasicBlock *BB)
 
static CallSite matchOutlinedFinallyCall (BasicBlock *BB, Instruction *MaybeCall)
 
static BasicBlockfollowSingleUnconditionalBranches (BasicBlock *BB)
 
static void print_name (const Value *V)
 

Macro Definition Documentation

#define DEBUG_TYPE   "winehprepare"

Definition at line 48 of file WinEHPrepare.cpp.

Function Documentation

static void createCleanupHandler ( LandingPadActions &  Actions,
CleanupHandlerMapTy &  CleanupHandlerMap,
BasicBlock BB 
)
static
static BasicBlock* createStubLandingPad ( Function Handler)
static
static Instruction* findBeginCatchSplitPoint ( BasicBlock BB,
IntrinsicInst II 
)
static
static void findReachableBlocks ( SmallPtrSetImpl< BasicBlock * > &  ReachableBBs,
SetVector< BasicBlock * > &  Worklist,
const SetVector< BasicBlock * > *  StopPoints 
)
static
static BasicBlock* followSingleUnconditionalBranches ( BasicBlock BB)
static
INITIALIZE_TM_PASS ( WinEHPrepare  ,
"winehprepare"  ,
"Prepare Windows exceptions ,
false  ,
false   
)

Definition at line 356 of file WinEHPrepare.cpp.

static bool isCatchAllLandingPad ( const BasicBlock BB)
static
static bool isCatchBlock ( BasicBlock BB)
static
static bool isLocalAddressCall ( const Value V)
static

Definition at line 1620 of file WinEHPrepare.cpp.

References llvm::PatternMatch::match().

Referenced by matchOutlinedFinallyCall().

static bool isSelectorDispatch ( BasicBlock BB,
BasicBlock *&  CatchHandler,
Constant *&  Selector,
BasicBlock *&  NextBB 
)
static
static CallSite matchOutlinedFinallyCall ( BasicBlock BB,
Instruction MaybeCall 
)
static
static void print_name ( const Value V)
static

Definition at line 2629 of file WinEHPrepare.cpp.

References llvm::dbgs(), DEBUG, llvm::Value::dump(), and llvm::Value::getName().