Commit Graph

55 Commits

Author SHA1 Message Date
Andrew Trick
4183abc822 Fix an obvious bug in findLastUserInBlock.
This crept in the last commit because of rebasing but was never used.
2021-10-14 16:51:53 -07:00
Andrew Trick
ab0601d97a Add PrunedLiveness::computeSSALiveness
Straighforward API to build pruned liveness from a single SSA value.

This 3-line function allows PrunedLiveness to be used anywhere
ValueLifetimeAnalysis was used in OSSA form. Aside from simplicity and
efficiency, the difference is that this composes with other utilities
that only care about PrunedLiveBlocks, PrunedLiveness, or
PrunesLivenessBounary independent of how those data structures were generated.
2021-10-06 09:23:17 -07:00
Andrew Trick
c056ca6f7a Add PrunedLivenessBoundary mini-abstraction
Simple wrapper to compute the boundary of PrunedLiveness.

Pervasively useful utility for working with OSSA reference lifetimes
and borrow scopes.

This can also replace the implementation in
CanonicalOSSALifetime. This will greatly simplify that utility's
logic, preparing it to handle diagnostics (like move-only SILValue
checking) and other features.
2021-10-06 09:23:17 -07:00
Andrew Trick
ec64297893 Add PrunedLiveness::isWithinBoundary API
A perfectly straightforward liveness check. Used by OSSA utilities to
check that an instruction is within a lifetime or scope.
2021-10-06 09:23:02 -07:00
Andrew Trick
add3406cfe Move PrunedLiveness so it can be used as a lightweight OSSA helper.
For use in OwnershipUtils.
2021-10-06 09:23:02 -07:00