Currently object slots are created in the preamble basic block. This is not effective and consumes stack space for all potential objects in all possible branches.
Object slot should be moved back to the origin basic block and it's holder should be updated accordingly: when control flow reaches end of the origin basic block, object holder should be nulled.
This may be achieved using llvm.lifetime.x intrinsics.
P.S.: Object slot was moved to a preamble in commit 1f26550