Home
last modified time | relevance | path

Searched refs:coro (Results 1 – 21 of 21) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Coroutines/
H A DCoroSplit.cpp87 coro::Shape &Shape) { in lowerAwaitSuspend()
131 coro::LowererBase LB(*Wrapper->getParent()); in lowerAwaitSuspend()
152 static void lowerAwaitSuspends(Function &F, coro::Shape &Shape) { in lowerAwaitSuspends()
159 const coro::Shape &Shape, Value *FramePtr, in maybeFreeRetconStorage()
161 assert(Shape.ABI == coro::ABI::Retcon || Shape.ABI == coro::ABI::RetconOnce); in maybeFreeRetconStorage()
215 const coro::Shape &Shape, Value *FramePtr, in replaceFallthroughCoroEnd()
223 case coro::ABI::Switch: in replaceFallthroughCoroEnd()
234 case coro::ABI::Async: { in replaceFallthroughCoroEnd()
243 case coro::ABI::RetconOnce: { in replaceFallthroughCoroEnd()
280 case coro::ABI::Retcon: { in replaceFallthroughCoroEnd()
[all …]
H A DCoroutines.cpp40 coro::LowererBase::LowererBase(Module &M) in LowererBase()
52 CallInst *coro::LowererBase::makeSubFnCall(Value *Arg, int Index, in makeSubFnCall()
98 bool coro::isSuspendBlock(BasicBlock *BB) { in isSuspendBlock()
102 bool coro::declaresAnyIntrinsic(const Module &M) { in declaresAnyIntrinsic()
107 bool coro::declaresIntrinsics(const Module &M, ArrayRef<Intrinsic::ID> List) { in declaresIntrinsics()
122 void coro::replaceCoroFree(CoroIdInst *CoroId, bool Elide) { in replaceCoroFree()
142 void coro::suppressCoroAllocs(CoroIdInst *CoroId) { in suppressCoroAllocs()
151 coro::suppressCoroAllocs(CoroId->getContext(), CoroAllocs); in suppressCoroAllocs()
160 void coro::suppressCoroAllocs(LLVMContext &Context, in suppressCoroAllocs()
181 void coro::Shape::analyze(Function &F, in analyze()
[all …]
H A DCoroFrame.cpp53 coro::SpillInfo &Spills;
56 SmallVectorImpl<coro::AllocaInfo> &Allocas;
58 FrameDataInfo(coro::SpillInfo &Spills, in FrameDataInfo()
59 SmallVectorImpl<coro::AllocaInfo> &Allocas) in FrameDataInfo()
139 static void dumpSpills(StringRef Title, const coro::SpillInfo &Spills) { in dumpSpills()
149 static void dumpAllocas(const SmallVectorImpl<coro::AllocaInfo> &Allocas) { in dumpAllocas()
236 coro::Shape &Shape, bool OptimizeFrame);
338 coro::Shape &Shape, in addFieldForAllocas()
398 auto GetAllocaSize = [&](const coro::AllocaInfo &A) { in addFieldForAllocas()
688 static void buildFrameDebugInfo(Function &F, coro::Shape &Shape, in buildFrameDebugInfo()
[all …]
H A DCoroCloner.h24 namespace coro {
47 coro::Shape &Shape;
61 BaseCloner(Function &OrigF, const Twine &Suffix, coro::Shape &Shape, in BaseCloner()
76 BaseCloner(Function &OrigF, const Twine &Suffix, coro::Shape &Shape, in BaseCloner()
85 coro::Shape &Shape, Function *NewF, in createClone()
131 SwitchCloner(Function &OrigF, const Twine &Suffix, coro::Shape &Shape, in SwitchCloner()
140 coro::Shape &Shape, CloneKind FKind, in createClone()
H A DSpillUtils.cpp21 namespace coro { namespace
44 if (coro::isSuspendBlock(From)) in isSuspendReachableFrom()
74 lowerNonLocalAlloca(CoroAllocaAllocInst *AI, const coro::Shape &Shape, in lowerNonLocalAlloca()
153 const coro::Shape &CoroShape, in AllocaUseVisitor()
312 const coro::Shape &CoroShape;
416 static void collectFrameAlloca(AllocaInst *AI, const coro::Shape &Shape, in collectFrameAlloca()
437 (Shape.ABI != coro::ABI::Async && Shape.ABI != coro::ABI::Retcon && in collectFrameAlloca()
438 Shape.ABI != coro::ABI::RetconOnce); in collectFrameAlloca()
464 const coro::Shape &Shape) { in collectSpillsAndAllocasFromInsts()
539 coro::SpillInfo &Spills, in sinkSpillUsesAfterCoroBegin()
[all …]
H A DMaterializationUtils.cpp24 using namespace coro;
236 bool llvm::coro::defaultMaterializable(Instruction &V) { in defaultMaterializable()
241 bool llvm::coro::isTriviallyMaterializable(Instruction &V) { in isTriviallyMaterializable()
257 void coro::doRematerializations( in doRematerializations()
263 coro::SpillInfo Spills; in doRematerializations()
H A DCoroInternal.h23 namespace coro {
62 void normalizeCoroutine(Function &F, coro::Shape &Shape,
H A DCoroCleanup.cpp24 struct Lowerer : coro::LowererBase {
112 return coro::declaresIntrinsics( in declaresCoroCleanupIntrinsics()
H A DCoroEarly.cpp24 class Lowerer : public coro::LowererBase {
90 static_assert(coro::Shape::SwitchFieldIndex::Resume == 0, in lowerCoroDone()
283 return coro::declaresIntrinsics( in declaresCoroEarlyIntrinsics()
H A DCoroConditionalWrapper.cpp20 if (!coro::declaresAnyIntrinsic(M)) in run()
H A DCoroElide.cpp413 coro::replaceCoroFree(CoroId, /*Elide=*/true); in attemptElide()
453 if (!coro::declaresIntrinsics(M, Intrinsic::coro_id)) in run()
/freebsd/contrib/llvm-project/llvm/include/llvm/Transforms/Coroutines/
H A DCoroShape.h24 namespace coro {
112 coro::ABI ABI;
159 assert(ABI == coro::ABI::Switch); in getSwitchCoroId()
164 assert(ABI == coro::ABI::Retcon || ABI == coro::ABI::RetconOnce); in getRetconCoroId()
169 assert(ABI == coro::ABI::Async); in getAsyncCoroId()
174 assert(ABI == coro::ABI::Switch); in getSwitchIndexField()
179 assert(ABI == coro::ABI::Switch); in getIndexType()
188 assert(ABI == coro::ABI::Switch); in getSwitchResumePointerType()
195 case coro::ABI::Switch: in getResumeFunctionType()
199 case coro::ABI::Retcon: in getResumeFunctionType()
[all …]
H A DABI.h28 namespace coro {
43 BaseABI(Function &F, coro::Shape &S, in BaseABI()
55 virtual void splitCoroutine(Function &F, coro::Shape &Shape,
60 coro::Shape &Shape;
69 SwitchABI(Function &F, coro::Shape &S, in SwitchABI()
75 void splitCoroutine(Function &F, coro::Shape &Shape,
82 AsyncABI(Function &F, coro::Shape &S, in AsyncABI()
88 void splitCoroutine(Function &F, coro::Shape &Shape,
95 AnyRetconABI(Function &F, coro::Shape &S, in AnyRetconABI()
101 void splitCoroutine(Function &F, coro::Shape &Shape,
H A DSpillUtils.h18 namespace coro {
40 const coro::Shape &Shape);
48 coro::SpillInfo &Spills,
49 SmallVectorImpl<coro::AllocaInfo> &Allocas);
52 BasicBlock::iterator getSpillInsertionPt(const coro::Shape &, Value *Def,
H A DCoroSplit.h26 namespace coro {
33 std::function<std::unique_ptr<coro::BaseABI>(Function &, coro::Shape &)>;
H A DMaterializationUtils.h17 namespace coro {
/freebsd/contrib/llvm-project/llvm/include/llvm/IR/
H A DFixedMetadataKinds.def53 LLVM_FIXED_MD_KIND(MD_coro_outside_frame, "coro.outside.frame", 39)
/freebsd/contrib/llvm-project/llvm/lib/Passes/
H A DPassRegistry.def61 MODULE_PASS("coro-cleanup", CoroCleanupPass())
62 MODULE_PASS("coro-early", CoroEarlyPass())
313 CGSCC_PASS("coro-annotation-elide", CoroAnnotationElidePass())
320 "coro-split", "CoroSplitPass",
413 FUNCTION_PASS("coro-elide", CoroElidePass())
/freebsd/contrib/llvm-project/clang/include/clang/Basic/
H A DDiagnosticGroups.td69 DiagGroup<"coro-non-aligned-allocation-function">;
71 DiagGroup<"coro-type-aware-allocation-function">;
H A DAttrDocs.td9095 task<int> coro(const int& a) { co_return a + 1; }
9097 … // `coro` captures reference to a temporary. `foo` would now contain a dangling reference to `a`.
9098 auto foo = coro(1);
9099 // `coro` captures reference to local variable `a` which is destroyed after the return.
9100 return coro(a);
9116 Task<int> coro(const int& a) { co_return a + 1; }
9118 return a > b ? coro(a) : coro(b);
9121 …auto foo = coro(1); // warning: capturing reference to a temporary which would die after the expre…
9126 co_return co_await coro(1); // fine.
9129 return coro(a); // warning: returning address of stack variable `a`.
[all …]
/freebsd/contrib/llvm-project/clang/include/clang/Driver/
H A DOptions.td1650 defm coro_aligned_allocation : BoolFOption<"coro-aligned-allocation",