compiler: track PHI nodes
Этот коммит содержится в:
родитель
ae16b2c922
коммит
ccf8b378b3
1 изменённых файлов: 12 добавлений и 0 удалений
|
@ -1025,6 +1025,18 @@ func (b *builder) createFunctionDefinition() {
|
||||||
phi.llvm.AddIncoming([]llvm.Value{llvmVal}, []llvm.BasicBlock{llvmBlock})
|
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
|
// createInstruction builds the LLVM IR equivalent instructions for the
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче