Improved SSA and added unused value checks
All checks were successful
/ test (push) Successful in 17s

This commit is contained in:
Eduard Urbach 2025-06-23 23:11:05 +02:00
parent cc2e98ca49
commit 2b703e9af2
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
25 changed files with 519 additions and 213 deletions

39
src/ssa/Return.go Normal file
View file

@ -0,0 +1,39 @@
package ssa
import "fmt"
type Return struct {
Arguments
HasToken
}
func (a *Return) AddUse(user Value) { panic("return is not a value") }
func (a *Return) Alive() int { return 0 }
func (a *Return) Equals(v Value) bool {
b, sameType := v.(*Return)
if !sameType {
return false
}
if len(a.Args) != len(b.Args) {
return false
}
for i := range a.Args {
if !a.Args[i].Equals(b.Args[i]) {
return false
}
}
return true
}
func (v *Return) IsConst() bool {
return false
}
func (v *Return) String() string {
return fmt.Sprintf("return %v", v.Args)
}