LLVM  6.0.0svn
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

◆ DEBUG_TYPE

#define DEBUG_TYPE   "coro-elide"

Definition at line 23 of file CoroElide.cpp.

Function Documentation

◆ getFirstNonAllocaInTheEntryBlock()

static Instruction* getFirstNonAllocaInTheEntryBlock ( Function F)
static

◆ getFrameType()

static Type* getFrameType ( Function Resume)
static

Definition at line 94 of file CoroElide.cpp.

References llvm::Function::arg_begin(), and llvm::Value::getType().

Referenced by getFirstNonAllocaInTheEntryBlock().

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( CoroElide  ,
"coro-elide ,
"Coroutine frame allocation elision and indirect calls replacement ,
false  ,
false   
)

Referenced by replaceDevirtTrigger().

◆ operandReferences()

static bool operandReferences ( CallInst CI,
AllocaInst Frame,
AAResults AA 
)
static

◆ removeTailCallAttribute()

static void removeTailCallAttribute ( AllocaInst Frame,
AAResults AA 
)
static

◆ replaceDevirtTrigger()

static bool replaceDevirtTrigger ( Function F)
static

◆ replaceWithConstant()

static void replaceWithConstant ( Constant Value,
SmallVectorImpl< CoroSubFnInst *> &  Users 
)
static

Variable Documentation

◆ elide

coro elide

Definition at line 317 of file CoroElide.cpp.

◆ false

coro Coroutine frame allocation elision and indirect calls false

Definition at line 317 of file CoroElide.cpp.

◆ replacement

coro Coroutine frame allocation elision and indirect calls replacement

Definition at line 317 of file CoroElide.cpp.