Improved SSA and added unused value checks
All checks were successful
/ test (push) Successful in 17s
All checks were successful
/ test (push) Successful in 17s
This commit is contained in:
parent
cc2e98ca49
commit
2b703e9af2
25 changed files with 519 additions and 213 deletions
39
src/ssa/Return.go
Normal file
39
src/ssa/Return.go
Normal 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)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue