LLVM  4.0.0
Macros | Functions | Variables
CoroElide.cpp File Reference
#include "CoroInternal.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/InstructionSimplify.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/Pass.h"
#include "llvm/Support/ErrorHandling.h"
Include dependency graph for CoroElide.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "coro-elide"
 

Functions

static void replaceWithConstant (Constant *Value, SmallVectorImpl< CoroSubFnInst * > &Users)
 
static bool operandReferences (CallInst *CI, AllocaInst *Frame, AAResults &AA)
 
static void removeTailCallAttribute (AllocaInst *Frame, AAResults &AA)
 
static TypegetFrameType (Function *Resume)
 
static InstructiongetFirstNonAllocaInTheEntryBlock (Function *F)
 
static bool replaceDevirtTrigger (Function &F)
 
 INITIALIZE_PASS_BEGIN (CoroElide,"coro-elide","Coroutine frame allocation elision and indirect calls replacement", false, false) INITIALIZE_PASS_END(CoroElide
 

Variables

coro elide
 
coro Coroutine frame
allocation elision and
indirect calls 
replacement
 
coro Coroutine frame
allocation elision and
indirect calls 
false
 

Macro Definition Documentation

#define DEBUG_TYPE   "coro-elide"

Definition at line 23 of file CoroElide.cpp.

Function Documentation

static Instruction* getFirstNonAllocaInTheEntryBlock ( Function F)
static

Definition at line 100 of file CoroElide.cpp.

References llvm::Function::getEntryBlock(), I, and llvm_unreachable.

static Type* getFrameType ( Function Resume)
static

Definition at line 94 of file CoroElide.cpp.

References llvm::Function::getArgumentList().

INITIALIZE_PASS_BEGIN ( CoroElide  ,
"coro-elide ,
"Coroutine frame allocation elision and indirect calls replacement ,
false  ,
false   
)
static bool operandReferences ( CallInst CI,
AllocaInst Frame,
AAResults AA 
)
static
static void removeTailCallAttribute ( AllocaInst Frame,
AAResults AA 
)
static
static bool replaceDevirtTrigger ( Function F)
static
static void replaceWithConstant ( Constant Value,
SmallVectorImpl< CoroSubFnInst * > &  Users 
)
static

Variable Documentation

coro elide

Definition at line 313 of file CoroElide.cpp.

coro Coroutine frame allocation elision and indirect calls false

Definition at line 313 of file CoroElide.cpp.

coro Coroutine frame allocation elision and indirect calls replacement

Definition at line 313 of file CoroElide.cpp.