[dev.ssa] cmd/compile: respect phi values in tighten
[dev.ssa] cmd/compile: respect phi values in tighten

Given (say)

b1: <- b2 b3
  v1 = Phi <t> v2 v3
b2:
  v2 = ...
b3:
  ...

tighten will move v2 to b1, since it is only used in b1.

This is wrong; v2 needs to be evaluated before entering b1.
Fix it.

Change-Id: I2cc3b30e3ffd221cf594e36cec534dfd9cf3c6a7
Reviewed-on: https://go-review.googlesource.com/13264
Reviewed-by: Keith Randall <8c99c3a9284e493be632950b84cd789d08ed3e9d@golang.org>

cloudflare/go,golang/go,Samurais/go,theif519/go,codestation/go,golang/go,binarycrusader/go,christopher-henderson/Go,momchil-velikov/go,codestation/go,ganboing/go-esx,derekmarcotte/go,momchil-velikov/go,suncycheng/go,4ad/go,momchil-velikov/go,polyverse-security/go,cloudflare/go,polyverse-security/go,mwhudson/go,ganboing/go-esx,polyverse-security/go,josharian/go,nawawi/go,ganboing/go-esx,Samurais/go,nawawi/go,mwhudson/go,mwhudson/go,Cofyc/go,theif519/go,suncycheng/go,polyverse-security/go,nawawi/go,miolini/go,Cofyc/go,CAFxX/go,josharian/go,polyverse-security/go,CAFxX/go,golang/go,suncycheng/go,vanloswang/go,momchil-velikov/go,josharian/go,Samurais/go,vsekhar/elastic-go,binarycrusader/go,goodlang/good,codestation/go,momchil-velikov/go,akutz/go,linux-on-ibm-z/go,suncycheng/go,vanloswang/go,vsekhar/elastic-go,mwhudson/go,vanloswang/go,miolini/go,4ad/go,akutz/go,CAFxX/go,nawawi/go,ImJasonH/go,momchil-velikov/go,ganboing/go-esx,Samurais/go,josharian/go,Samurais/go,derekmarcotte/go,suncycheng/go,binarycrusader/go,theif519/go,theif519/go,akutz/go,goodlang/good,4ad/go,CAFxX/go,cloudflare/go,josharian/go,linux-on-ibm-z/go,linux-on-ibm-z/go,cloudflare/go,binarycrusader/go,ImJasonH/go,ImJasonH/go,CAFxX/go,derekmarcotte/go,polyverse-security/go,vanloswang/go,binarycrusader/go,ImJasonH/go,CAFxX/go,Cofyc/go,mwhudson/go,vsekhar/elastic-go,akutz/go,cyberroadie/go,ganboing/go-esx,cloudflare/go,akutz/go,4ad/go,linux-on-ibm-z/go,nawawi/go,vsekhar/elastic-go,CAFxX/go,derekmarcotte/go,theif519/go,miolini/go,binarycrusader/go,codestation/go,theif519/go,miolini/go,nawawi/go,vsekhar/elastic-go,vanloswang/go,suncycheng/go,golang/go,vsekhar/elastic-go,codestation/go,linux-on-ibm-z/go,vsekhar/elastic-go,ImJasonH/go,mwhudson/go,goodlang/good,akutz/go,akutz/go,ganboing/go-esx,goodlang/good,linux-on-ibm-z/go,theif519/go,4ad/go,vanloswang/go,CAFxX/go,4ad/go,cyberroadie/go,Cofyc/go,4ad/go,miolini/go,nawawi/go,cyberroadie/go,Cofyc/go,ImJasonH/go,goodlang/good,binarycrusader/go,cloudflare/go,derekmarcotte/go,cloudflare/go,suncycheng/go,polyverse-security/go,Samurais/go,cyberroadie/go,golang/go,nawawi/go,linux-on-ibm-z/go,derekmarcotte/go,golang/go,codestation/go,mwhudson/go,codestation/go,Samurais/go,miolini/go,mwhudson/go,ganboing/go-esx,cyberroadie/go,Cofyc/go,vsekhar/elastic-go,miolini/go,polyverse-security/go,goodlang/good,momchil-velikov/go,golang/go,derekmarcotte/go,josharian/go,cyberroadie/go,suncycheng/go,codestation/go,josharian/go,ImJasonH/go,cloudflare/go,vanloswang/go,goodlang/good,theif519/go,josharian/go,ganboing/go-esx,cyberroadie/go,vanloswang/go,cyberroadie/go,miolini/go,momchil-velikov/go,derekmarcotte/go,goodlang/good,Cofyc/go,linux-on-ibm-z/go,binarycrusader/go,golang/go,Cofyc/go,Samurais/go,akutz/go,ImJasonH/go,4ad/go