func BenchmarkDominatorsLinear(b *testing.B) { … }
func BenchmarkDominatorsFwdBack(b *testing.B) { … }
func BenchmarkDominatorsManyPred(b *testing.B) { … }
func BenchmarkDominatorsMaxPred(b *testing.B) { … }
func BenchmarkDominatorsMaxPredVal(b *testing.B) { … }
type blockGen …
func genLinear(size int) []bloc { … }
func genFwdBack(size int) []bloc { … }
func genManyPred(size int) []bloc { … }
func genMaxPred(size int) []bloc { … }
func genMaxPredValue(size int) []bloc { … }
var domBenchRes …
func benchmarkDominators(b *testing.B, size int, bg blockGen) { … }
type domFunc …
func verifyDominators(t *testing.T, fut fun, domFn domFunc, doms map[string]string) { … }
func TestDominatorsSingleBlock(t *testing.T) { … }
func TestDominatorsSimple(t *testing.T) { … }
func TestDominatorsMultPredFwd(t *testing.T) { … }
func TestDominatorsDeadCode(t *testing.T) { … }
func TestDominatorsMultPredRev(t *testing.T) { … }
func TestDominatorsMultPred(t *testing.T) { … }
func TestInfiniteLoop(t *testing.T) { … }
func TestDomTricky(t *testing.T) { … }
func generateDominatorMap(fut fun) map[string]string { … }
func TestDominatorsPostTrickyA(t *testing.T) { … }
func TestDominatorsPostTrickyB(t *testing.T) { … }
func TestDominatorsPostTrickyC(t *testing.T) { … }
func TestDominatorsPostTrickyD(t *testing.T) { … }
func TestDominatorsPostTrickyE(t *testing.T) { … }
func TestDominatorsPostTrickyF(t *testing.T) { … }
func TestDominatorsPostTrickyG(t *testing.T) { … }
func TestDominatorsPostTrickyH(t *testing.T) { … }
func testDominatorsPostTricky(t *testing.T, b7then, b7else, b12then, b12else, b13then, b13else string) { … }