Removed duplicate debug code
All checks were successful
/ test (push) Successful in 17s

This commit is contained in:
Eduard Urbach 2025-07-03 16:46:56 +02:00
parent bdb1b9595f
commit 4aa4d613a1
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
12 changed files with 58 additions and 85 deletions

View file

@ -13,12 +13,9 @@ func showSSA(root *core.Function) {
ansi.Yellow.Println(f.UniqueName + ":") ansi.Yellow.Println(f.UniqueName + ":")
for _, block := range f.Blocks { for _, block := range f.Blocks {
// ansi.Dim.Printf("| %-3s | %-30s | %-30s | %-4s |\n", "ID", "Raw", "Type", "Uses")
// ansi.Dim.Printf("| %s | %s | %s | %s |\n", strings.Repeat("-", 3), strings.Repeat("-", 30), strings.Repeat("-", 30), strings.Repeat("-", 4))
for i, instr := range block.Instructions { for i, instr := range block.Instructions {
ansi.Dim.Printf("%%%-1d = ", i) ansi.Dim.Printf("%%%-1d = ", i)
fmt.Printf("%-30s ", instr.Debug()) fmt.Printf("%-30s ", instr.Debug(false))
ansi.Dim.Printf(" %-30s", instr.Type().Name()) ansi.Dim.Printf(" %-30s", instr.Type().Name())
fmt.Println() fmt.Println()
} }

View file

@ -43,12 +43,16 @@ func (v *BinaryOp) IsConst() bool {
return true return true
} }
func (v *BinaryOp) Debug() string { func (v *BinaryOp) Debug(expand bool) string {
if expand {
return fmt.Sprintf("%s %s %s", v.Left, expression.Operators[v.Op].Symbol, v.Right)
}
return fmt.Sprintf("%%%d %s %%%d", v.Left.ID(), expression.Operators[v.Op].Symbol, v.Right.ID()) return fmt.Sprintf("%%%d %s %%%d", v.Left.ID(), expression.Operators[v.Op].Symbol, v.Right.ID())
} }
func (v *BinaryOp) String() string { func (v *BinaryOp) String() string {
return fmt.Sprintf("%s %s %s", v.Left, expression.Operators[v.Op].Symbol, v.Right) return v.Debug(true)
} }
func (v *BinaryOp) Type() types.Type { func (v *BinaryOp) Type() types.Type {

View file

@ -32,7 +32,7 @@ func (v *Bytes) IsConst() bool {
return true return true
} }
func (v *Bytes) Debug() string { func (v *Bytes) Debug(expand bool) string {
return v.String() return v.String()
} }

View file

@ -28,16 +28,26 @@ func (v *Call) IsConst() bool {
return false return false
} }
func (v *Call) Debug() string { func (v *Call) Debug(expand bool) string {
tmp := strings.Builder{} tmp := strings.Builder{}
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(v.Arguments[0].ID())) if expand {
tmp.WriteString(v.Arguments[0].String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(v.Arguments[0].ID()))
}
tmp.WriteString("(") tmp.WriteString("(")
args := v.Arguments[1:] args := v.Arguments[1:]
for i, arg := range args { for i, arg := range args {
tmp.WriteString("%") if expand {
tmp.WriteString(strconv.Itoa(arg.ID())) tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(args)-1 { if i != len(args)-1 {
tmp.WriteString(", ") tmp.WriteString(", ")
@ -49,21 +59,7 @@ func (v *Call) Debug() string {
} }
func (v *Call) String() string { func (v *Call) String() string {
tmp := strings.Builder{} return v.Debug(true)
tmp.WriteString(v.Arguments[0].String())
tmp.WriteString("(")
args := v.Arguments[1:]
for i, arg := range args {
tmp.WriteString(arg.String())
if i != len(args)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString(")")
return tmp.String()
} }
func (v *Call) Type() types.Type { func (v *Call) Type() types.Type {

View file

@ -29,7 +29,7 @@ func (v *Function) IsConst() bool {
return true return true
} }
func (v *Function) Debug() string { func (v *Function) Debug(expand bool) string {
return v.String() return v.String()
} }

View file

@ -31,7 +31,7 @@ func (v *Int) IsConst() bool {
return true return true
} }
func (v *Int) Debug() string { func (v *Int) Debug(expand bool) string {
return v.String() return v.String()
} }

View file

@ -33,7 +33,7 @@ func (v *Parameter) IsConst() bool {
return true return true
} }
func (v *Parameter) Debug() string { func (v *Parameter) Debug(expand bool) string {
return v.String() return v.String()
} }

View file

@ -38,7 +38,7 @@ func (v *Return) IsConst() bool {
return false return false
} }
func (v *Return) Debug() string { func (v *Return) Debug(expand bool) string {
if len(v.Arguments) == 0 { if len(v.Arguments) == 0 {
return "return" return "return"
} }
@ -47,8 +47,12 @@ func (v *Return) Debug() string {
tmp.WriteString("return ") tmp.WriteString("return ")
for i, arg := range v.Arguments { for i, arg := range v.Arguments {
tmp.WriteString("%") if expand {
tmp.WriteString(strconv.Itoa(arg.ID())) tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 { if i != len(v.Arguments)-1 {
tmp.WriteString(", ") tmp.WriteString(", ")
@ -59,22 +63,7 @@ func (v *Return) Debug() string {
} }
func (v *Return) String() string { func (v *Return) String() string {
if len(v.Arguments) == 0 { return v.Debug(true)
return "return"
}
tmp := strings.Builder{}
tmp.WriteString("return ")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
return tmp.String()
} }
func (v *Return) Type() types.Type { func (v *Return) Type() types.Type {

View file

@ -29,14 +29,18 @@ func (v *Struct) IsConst() bool {
return true return true
} }
func (v *Struct) Debug() string { func (v *Struct) Debug(expand bool) string {
tmp := strings.Builder{} tmp := strings.Builder{}
tmp.WriteString(v.Typ.Name()) tmp.WriteString(v.Typ.Name())
tmp.WriteString("{") tmp.WriteString("{")
for i, arg := range v.Arguments { for i, arg := range v.Arguments {
tmp.WriteString("%") if expand {
tmp.WriteString(strconv.Itoa(arg.ID())) tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 { if i != len(v.Arguments)-1 {
tmp.WriteString(", ") tmp.WriteString(", ")
@ -48,20 +52,7 @@ func (v *Struct) Debug() string {
} }
func (v *Struct) String() string { func (v *Struct) String() string {
tmp := strings.Builder{} return v.Debug(false)
tmp.WriteString(v.Typ.Name())
tmp.WriteString("{")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString("}")
return tmp.String()
} }
func (v *Struct) Type() types.Type { func (v *Struct) Type() types.Type {

View file

@ -32,12 +32,16 @@ func (v *StructField) IsConst() bool {
return true return true
} }
func (v *StructField) Debug() string { func (v *StructField) Debug(expand bool) string {
if expand {
return fmt.Sprintf("%s.%s", v.Struct, v.Field)
}
return fmt.Sprintf("%%%d.%s", v.Struct.ID(), v.Field) return fmt.Sprintf("%%%d.%s", v.Struct.ID(), v.Field)
} }
func (v *StructField) String() string { func (v *StructField) String() string {
return fmt.Sprintf("%s.%s", v.Struct, v.Field) return v.Debug(true)
} }
func (v *StructField) Type() types.Type { func (v *StructField) Type() types.Type {

View file

@ -28,13 +28,17 @@ func (v *Syscall) IsConst() bool {
return false return false
} }
func (v *Syscall) Debug() string { func (v *Syscall) Debug(expand bool) string {
tmp := strings.Builder{} tmp := strings.Builder{}
tmp.WriteString("syscall(") tmp.WriteString("syscall(")
for i, arg := range v.Arguments { for i, arg := range v.Arguments {
tmp.WriteString("%") if expand {
tmp.WriteString(strconv.Itoa(arg.ID())) tmp.WriteString(arg.String())
} else {
tmp.WriteString("%")
tmp.WriteString(strconv.Itoa(arg.ID()))
}
if i != len(v.Arguments)-1 { if i != len(v.Arguments)-1 {
tmp.WriteString(", ") tmp.WriteString(", ")
@ -46,19 +50,7 @@ func (v *Syscall) Debug() string {
} }
func (v *Syscall) String() string { func (v *Syscall) String() string {
tmp := strings.Builder{} return v.Debug(true)
tmp.WriteString("syscall(")
for i, arg := range v.Arguments {
tmp.WriteString(arg.String())
if i != len(v.Arguments)-1 {
tmp.WriteString(", ")
}
}
tmp.WriteString(")")
return tmp.String()
} }
func (v *Syscall) Type() types.Type { func (v *Syscall) Type() types.Type {

View file

@ -7,7 +7,7 @@ import (
type Value interface { type Value interface {
// Essentials // Essentials
Debug() string Debug(bool) string
ID() int ID() int
IsConst() bool IsConst() bool
SetID(int) SetID(int)