swift
8062e408 - Migrate to OwnershipLifetimeExtender API: borrowCopyOverScope etc.

Commit
4 years ago
Migrate to OwnershipLifetimeExtender API: borrowCopyOverScope etc. Preparation for rewriting non-trivial terminators and generalizing support for guaranteed phis. Add guaranteedUsePoints to the RAUW context. This will replace ALL existing context book-keeping once the old code is deleted. Introduce a borrowCopyOverScope entry point to handle extending lifetime over a BorrowedValue. This simply uses the BorrowedLifetimeExtender. Introduce higher-level APIs: - borrowOverValue to extened over a guaranteedValue - borrowOverSingleUse to extened over a single guaranteed use These replace both createPlusZeroBorrow and createPlusOneBorrow. Update RAUW-ctor, RAUW::handleUnowned, and replaceAddressUses to use the new API. Restructure RAUW::canFixUpOwnershipForRAUW. Simply use findInnerTransitiveGuaranteedUses. Replace RAUW::handleGuaranteed and rewriteReborrows with OLE::borrowOverValue. Use the BorrowedLifetimeExtender utility to handle all situations correctly. TODO: createPlusOneBorrow can be completely removed, and a massive amount of confusing/incomplete code can be deleted in a follow-up commit.
Author
Committer
Parents
Loading