aboutsummaryrefslogtreecommitdiffhomepage
path: root/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'compiler')
-rw-r--r--compiler/compiler.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler/compiler.go b/compiler/compiler.go
index 33b5ab4fd..eaf73e221 100644
--- a/compiler/compiler.go
+++ b/compiler/compiler.go
@@ -1025,6 +1025,18 @@ func (b *builder) createFunctionDefinition() {
phi.llvm.AddIncoming([]llvm.Value{llvmVal}, []llvm.BasicBlock{llvmBlock})
}
}
+
+ if b.NeedsStackObjects() {
+ // Track phi nodes.
+ for _, phi := range b.phis {
+ insertPoint := llvm.NextInstruction(phi.llvm)
+ for !insertPoint.IsAPHINode().IsNil() {
+ insertPoint = llvm.NextInstruction(insertPoint)
+ }
+ b.SetInsertPointBefore(insertPoint)
+ b.trackValue(phi.llvm)
+ }
+ }
}
// createInstruction builds the LLVM IR equivalent instructions for the