An arrangement is provided for data value recovery in an optimized program
by precisely allocating predicate registers to guard branching
instructions in the optimized program at compilation time. At execution
time, an execution path leading to a recovery point is determined based
on values of predicate registers guarding branching blocks. The values of
non-current and non-resident data may be recovered at the recovery point
according to the determined execution path. Optimization annotations may
also be utilized for data value recovery.