Skip to content

low.borrow

← low dialect

Project an owning managed reference into an independent pointer carrier of the same nominal payload. The owner remains valid and keeps its explicit lifetime. The pointer remains live through its final use: emission acquires protection unless a covering owner is proven. This safe operation does not expose an unchecked machine borrow.

Operation contract

Property Value
Semantic phase executable
Traits ObservableEffect
Ownership effects borrow owner (by_value), alias pointer from owner

Signature

Kind Name Type Cardinality Description
Operand owner register required —
Result pointer register required — Produces a fresh allocation.

Examples

%pointer = low.borrow %owner : reg<vm.ref : ref<@Frame>> -> reg<vm.ref : ptr<@Frame>>