LLVM 20.0.0git
|
#include "llvm/Transforms/Coroutines/CoroAnnotationElide.h"
#include "llvm/Analysis/CGSCCPassManager.h"
#include "llvm/Analysis/LazyCallGraph.h"
#include "llvm/Analysis/OptimizationRemarkEmitter.h"
#include "llvm/IR/Analysis.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Transforms/Utils/CallGraphUpdater.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include <cassert>
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "coro-annotation-elide" |
Functions | |
static Instruction * | getFirstNonAllocaInTheEntryBlock (Function *F) |
static Value * | allocateFrameInCaller (Function *Caller, uint64_t FrameSize, Align FrameAlign) |
static void | processCall (CallBase *CB, Function *Caller, Function *NewCallee, uint64_t FrameSize, Align FrameAlign) |
#define DEBUG_TYPE "coro-annotation-elide" |
Definition at line 34 of file CoroAnnotationElide.cpp.
|
static |
Definition at line 45 of file CoroAnnotationElide.cpp.
References llvm::CallingConv::C, DL, getFirstNonAllocaInTheEntryBlock(), llvm::Type::getInt8Ty(), and llvm::ilist_node_impl< OptionsT >::getIterator().
Referenced by processCall().
|
static |
Definition at line 36 of file CoroAnnotationElide.cpp.
References F, I, and llvm_unreachable.
Referenced by allocateFrameInCaller().
|
static |
Definition at line 62 of file CoroAnnotationElide.cpp.
References allocateFrameInCaller(), llvm::SmallVectorImpl< T >::append(), llvm::CallBase::arg_begin(), llvm::CallBase::arg_end(), llvm::CallBase::bundle_op_info_begin(), llvm::CallBase::bundle_op_info_end(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), llvm::Instruction::eraseFromParent(), FramePtr, llvm::CallBase::getAttributes(), llvm::CallBase::getCallingConv(), llvm::Instruction::getDebugLoc(), llvm::Function::getFunctionType(), llvm::ilist_node_impl< OptionsT >::getIterator(), II, llvm::InlineFunction(), IR, llvm_unreachable, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::CallBase::removeFnAttr(), llvm::Value::replaceAllUsesWith(), llvm::CallBase::setAttributes(), llvm::CallBase::setCalledFunction(), llvm::CallBase::setCallingConv(), and llvm::Instruction::setDebugLoc().
Referenced by llvm::CoroAnnotationElidePass::run().