compiler: track PHI nodes

This commit is contained in:
Jaden Weiss
2020-04-01 17:51:30 -04:00
committed by Ayke
parent ae16b2c922
commit ccf8b378b3
+12
View File
@@ -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