ssa: make block with label name for debug readable

This commit is contained in:
Li Jie
2024-08-03 20:51:43 +08:00
parent 0687efaec6
commit cdfa0166bd
4 changed files with 11 additions and 9 deletions

View File

@@ -293,13 +293,15 @@ func (p Function) MakeBlocks(nblk int) []BasicBlock {
p.blks = make([]BasicBlock, 0, nblk)
}
for i := 0; i < nblk; i++ {
p.addBlock(n + i)
p.addBlock(n+i, "")
}
return p.blks[n:]
}
func (p Function) addBlock(idx int) BasicBlock {
label := "_llgo_" + strconv.Itoa(idx)
func (p Function) addBlock(idx int, label string) BasicBlock {
if label == "" {
label = "_llgo_" + strconv.Itoa(idx)
}
blk := llvm.AddBasicBlock(p.impl, label)
ret := &aBasicBlock{blk, blk, p, idx}
p.blks = append(p.blks, ret)
@@ -307,8 +309,8 @@ func (p Function) addBlock(idx int) BasicBlock {
}
// MakeBlock creates a new basic block for the function.
func (p Function) MakeBlock() BasicBlock {
return p.addBlock(len(p.blks))
func (p Function) MakeBlock(label string) BasicBlock {
return p.addBlock(len(p.blks), label)
}
// Block returns the ith basic block of the function.