LLVM 22.0.0git
|
#include "llvm/Transforms/Coroutines/ABI.h"
Public Member Functions | |
BaseABI (Function &F, coro::Shape &S, std::function< bool(Instruction &)> IsMaterializable) | |
virtual | ~BaseABI ()=default |
virtual void | init ()=0 |
virtual void | buildCoroutineFrame (bool OptimizeFrame) |
virtual void | splitCoroutine (Function &F, coro::Shape &Shape, SmallVectorImpl< Function * > &Clones, TargetTransformInfo &TTI)=0 |
Public Attributes | |
Function & | F |
coro::Shape & | Shape |
std::function< bool(Instruction &I)> | IsMaterializable |
|
inline |
Definition at line 43 of file ABI.h.
References F, IsMaterializable, llvm::move(), and Shape.
Referenced by llvm::coro::AnyRetconABI::AnyRetconABI(), llvm::coro::AsyncABI::AsyncABI(), and llvm::coro::SwitchABI::SwitchABI().
|
virtualdefault |
|
virtual |
Definition at line 2007 of file CoroFrame.cpp.
References llvm::coro::Async, buildFrameDebugInfo(), buildFrameType(), llvm::coro::collectSpillsAndAllocasFromInsts(), llvm::coro::collectSpillsFromArgs(), llvm::coro::collectSpillsFromDbgInfo(), llvm::coro::doRematerializations(), dumpAllocas(), dumpSpills(), F, I, insertSpills(), IsMaterializable, LLVM_DEBUG, lowerLocalAllocas(), llvm::coro::Retcon, llvm::coro::RetconOnce, Shape, sinkLifetimeStartMarkers(), and llvm::coro::sinkSpillUsesAfterCoroBegin().
Referenced by init().
|
pure virtual |
Implemented in llvm::coro::AnyRetconABI, llvm::coro::AsyncABI, and llvm::coro::SwitchABI.
References buildCoroutineFrame().
|
pure virtual |
Implemented in llvm::coro::AnyRetconABI, llvm::coro::AsyncABI, and llvm::coro::SwitchABI.
Function& llvm::coro::BaseABI::F |
Definition at line 59 of file ABI.h.
Referenced by llvm::coro::AnyRetconABI::AnyRetconABI(), llvm::coro::AsyncABI::AsyncABI(), BaseABI(), buildCoroutineFrame(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::coro::AsyncABI::splitCoroutine(), splitCoroutine(), llvm::coro::SwitchABI::splitCoroutine(), and llvm::coro::SwitchABI::SwitchABI().
std::function<bool(Instruction &I)> llvm::coro::BaseABI::IsMaterializable |
Definition at line 64 of file ABI.h.
Referenced by llvm::coro::AnyRetconABI::AnyRetconABI(), llvm::coro::AsyncABI::AsyncABI(), BaseABI(), buildCoroutineFrame(), and llvm::coro::SwitchABI::SwitchABI().
coro::Shape& llvm::coro::BaseABI::Shape |
Definition at line 60 of file ABI.h.
Referenced by BaseABI(), buildCoroutineFrame(), llvm::coro::AnyRetconABI::init(), llvm::coro::AsyncABI::init(), llvm::coro::SwitchABI::init(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::coro::AsyncABI::splitCoroutine(), splitCoroutine(), and llvm::coro::SwitchABI::splitCoroutine().