[llvm] [Coroutines] Refactor CoroShape::buildFrom for future use by ABI objects (PR #108623)
Tyler Nowicki via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 19 07:49:37 PDT 2024
================
@@ -50,15 +50,49 @@ enum class ABI {
// Holds structural Coroutine Intrinsics for a particular function and other
// values used during CoroSplit pass.
struct LLVM_LIBRARY_VISIBILITY Shape {
- CoroBeginInst *CoroBegin;
+ CoroBeginInst *CoroBegin = nullptr;
SmallVector<AnyCoroEndInst *, 4> CoroEnds;
SmallVector<CoroSizeInst *, 2> CoroSizes;
SmallVector<CoroAlignInst *, 2> CoroAligns;
SmallVector<AnyCoroSuspendInst *, 4> CoroSuspends;
- SmallVector<CallInst *, 2> SwiftErrorOps;
SmallVector<CoroAwaitSuspendInst *, 4> CoroAwaitSuspends;
SmallVector<CallInst *, 2> SymmetricTransfers;
+ // Values invalidated by invalidateCoroutine() and cleanCoroutine()
+ SmallVector<CoroFrameInst *, 8> CoroFrames;
+ SmallVector<CoroSaveInst *, 2> UnusedCoroSaves;
----------------
TylerNowicki wrote:
Okay, I can see I made an unintentional functional change to CoroShape (changing the building process). I will make CoroFrames and UnusedCoroSaves local variables again. I have some ideas about how to make a pure analysis. I will pursue that after landing the ABI object patches.
https://github.com/llvm/llvm-project/pull/108623
More information about the llvm-commits
mailing list