SIL: add the borrowed-from instruction.

It declares from which enclosing values a guaranteed phi argument is borrowed from.
This commit is contained in:
Erik Eckstein
2024-01-17 16:22:50 +01:00
parent 44f4ea9099
commit ac4bc89c9a
33 changed files with 304 additions and 16 deletions

View File

@@ -184,6 +184,13 @@ public struct Builder {
return notifyNew(bridged.createBeginBorrow(value.bridged).getAs(BeginBorrowInst.self))
}
public func createBorrowedFrom(borrowedValue: Value, enclosingValues: [Value]) -> BorrowedFromInst {
let bfi = enclosingValues.withBridgedValues { valuesRef in
return bridged.createBorrowedFrom(borrowedValue.bridged, valuesRef)
}
return notifyNew(bfi.getAs(BorrowedFromInst.self))
}
@discardableResult
public func createEndBorrow(of beginBorrow: Value) -> EndBorrowInst {
return notifyNew(bridged.createEndBorrow(beginBorrow.bridged).getAs(EndBorrowInst.self))