]> Cypherpunks repositories - gostls13.git/commit
cmd/internal/ssa: utility functions to make Funcs
authorMichael Matloob <matloob@google.com>
Tue, 12 May 2015 16:06:45 +0000 (12:06 -0400)
committerAlan Donovan <adonovan@google.com>
Fri, 15 May 2015 20:01:03 +0000 (20:01 +0000)
commit310d09bf73c2063626cd824b8df809595d6f0392
treedd063ea24c0dc9423337933dc5b646ea2afca6d1
parentb3137966db7c000d2edd8d2f9d6fd10ebbb4da9c
cmd/internal/ssa: utility functions to make Funcs

Adds a more convenient way to define Funcs for testing.
For instance,

  b1:
    v1 = Arg <mem> [.mem]
    Plain -> b2
  b2:
    Exit v1
  b3:
    v2 = Const <bool> [true]
    If v2 -> b3 b2

can be defined as

 fun :=Fun("entry",
Bloc("entry",
Valu("mem", OpArg, TypeMem, ".mem"),
Goto("exit")),
Bloc("exit",
Exit("mem")),
Bloc("deadblock",
Valu("deadval", OpConst, TypeBool, true),
If("deadval", "deadblock", "exit")))

Also add an Equiv function to test two Funcs for equivalence.

Change-Id: If1633865aeefb8e765e772b6dad19250d93a413a
Reviewed-on: https://go-review.googlesource.com/9992
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/internal/ssa/deadcode_test.go
src/cmd/internal/ssa/func_test.go [new file with mode: 0644]