[dev.ssa] cmd/compile: Generate AUNDEF at the end of BlockExit blocks

Generate AUNDEF for every exit block, not just for certain
control values.

Change-Id: Ife500ac5159ee790bc1e70c0e9b0b1f854bc4c47
Reviewed-on: https://go-review.googlesource.com/14721
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
diff --git a/src/cmd/compile/internal/gc/ssa.go b/src/cmd/compile/internal/gc/ssa.go
index c2d2f8b..c053eab 100644
--- a/src/cmd/compile/internal/gc/ssa.go
+++ b/src/cmd/compile/internal/gc/ssa.go
@@ -3536,19 +3536,16 @@
 		q.From.Reg = x86.REG_AX
 		q.To.Type = obj.TYPE_MEM
 		q.To.Reg = r
-		Prog(obj.AUNDEF) // tell plive.go that we never reach here
 	case ssa.OpAMD64LoweredPanicIndexCheck:
 		p := Prog(obj.ACALL)
 		p.To.Type = obj.TYPE_MEM
 		p.To.Name = obj.NAME_EXTERN
 		p.To.Sym = Linksym(Panicindex.Sym)
-		Prog(obj.AUNDEF)
 	case ssa.OpAMD64LoweredPanicSliceCheck:
 		p := Prog(obj.ACALL)
 		p.To.Type = obj.TYPE_MEM
 		p.To.Name = obj.NAME_EXTERN
 		p.To.Sym = Linksym(panicslice.Sym)
-		Prog(obj.AUNDEF)
 	case ssa.OpAMD64LoweredGetG:
 		r := regnum(v)
 		// See the comments in cmd/internal/obj/x86/obj6.go
@@ -3804,6 +3801,7 @@
 			s.branches = append(s.branches, branch{p, b.Succs[0]})
 		}
 	case ssa.BlockExit:
+		Prog(obj.AUNDEF) // tell plive.go that we never reach here
 	case ssa.BlockRet:
 		if hasdefer {
 			s.deferReturn()