[pred-memopt] Extract out dataflow computation into its own helper struct.
[pred-memopt] Extract out dataflow computation into its own helper struct.

This simplifies the code and enables me to extract out the code for deleting
dead allocations into a separate struct from AllocOptimize. Otherwise, I would
have to pass in a reference to AllocOptimize creating back references, a
complexity that isn't necessary and will force me to break encapsulation
properties.

Just chopping this off of a larger commit.

rdar://31521023

frootloops/swift,devincoughlin/swift,gregomni/swift,benlangmuir/swift,roambotics/swift,atrick/swift,stephentyrone/swift,practicalswift/swift,tkremenek/swift,rudkx/swift,allevato/swift,danielmartin/swift,parkera/swift,JGiola/swift,frootloops/swift,nathawes/swift,natecook1000/swift,sschiau/swift,tkremenek/swift,austinzheng/swift,shahmishal/swift,austinzheng/swift,parkera/swift,rudkx/swift,stephentyrone/swift,amraboelela/swift,nathawes/swift,gribozavr/swift,hooman/swift,parkera/swift,devincoughlin/swift,CodaFi/swift,devincoughlin/swift,alblue/swift,austinzheng/swift,atrick/swift,amraboelela/swift,nathawes/swift,xedin/swift,benlangmuir/swift,huonw/swift,jckarter/swift,frootloops/swift,shahmishal/swift,parkera/swift,zisko/swift,danielmartin/swift,allevato/swift,karwa/swift,hooman/swift,sschiau/swift,CodaFi/swift,austinzheng/swift,hooman/swift,allevato/swift,shajrawi/swift,frootloops/swift,tjw/swift,jmgc/swift,glessard/swift,xedin/swift,amraboelela/swift,gribozavr/swift,tkremenek/swift,hooman/swift,karwa/swift,ahoppen/swift,huonw/swift,apple/swift,danielmartin/swift,nathawes/swift,roambotics/swift,danielmartin/swift,frootloops/swift,allevato/swift,amraboelela/swift,xedin/swift,shahmishal/swift,hooman/swift,parkera/swift,brentdax/swift,zisko/swift,JGiola/swift,glessard/swift,alblue/swift,zisko/swift,apple/swift,stephentyrone/swift,sschiau/swift,karwa/swift,tkremenek/swift,ahoppen/swift,shajrawi/swift,brentdax/swift,roambotics/swift,rudkx/swift,CodaFi/swift,jopamer/swift,lorentey/swift,airspeedswift/swift,frootloops/swift,airspeedswift/swift,aschwaighofer/swift,jopamer/swift,xedin/swift,karwa/swift,xedin/swift,apple/swift,aschwaighofer/swift,natecook1000/swift,jckarter/swift,practicalswift/swift,jckarter/swift,shahmishal/swift,tjw/swift,jopamer/swift,tjw/swift,jmgc/swift,amraboelela/swift,atrick/swift,benlangmuir/swift,huonw/swift,lorentey/swift,glessard/swift,shahmishal/swift,gribozavr/swift,brentdax/swift,shahmishal/swift,sschiau/swift,JGiola/swift,parkera/swift,nathawes/swift,tjw/swift,tjw/swift,huonw/swift,harlanhaskins/swift,roambotics/swift,alblue/swift,rudkx/swift,parkera/swift,stephentyrone/swift,tjw/swift,hooman/swift,harlanhaskins/swift,atrick/swift,lorentey/swift,CodaFi/swift,nathawes/swift,gregomni/swift,tkremenek/swift,harlanhaskins/swift,natecook1000/swift,natecook1000/swift,devincoughlin/swift,stephentyrone/swift,airspeedswift/swift,brentdax/swift,hooman/swift,lorentey/swift,jckarter/swift,nathawes/swift,brentdax/swift,brentdax/swift,karwa/swift,huonw/swift,shajrawi/swift,allevato/swift,karwa/swift,aschwaighofer/swift,austinzheng/swift,harlanhaskins/swift,airspeedswift/swift,devincoughlin/swift,devincoughlin/swift,gribozavr/swift,tkremenek/swift,xwu/swift,apple/swift,apple/swift,JGiola/swift,JGiola/swift,glessard/swift,frootloops/swift,xedin/swift,danielmartin/swift,shajrawi/swift,xwu/swift,jopamer/swift,atrick/swift,harlanhaskins/swift,zisko/swift,xwu/swift,gregomni/swift,practicalswift/swift,shahmishal/swift,jmgc/swift,jmgc/swift,gregomni/swift,gribozavr/swift,harlanhaskins/swift,gregomni/swift,stephentyrone/swift,CodaFi/swift,gribozavr/swift,lorentey/swift,lorentey/swift,jckarter/swift,natecook1000/swift,tkremenek/swift,sschiau/swift,xedin/swift,zisko/swift,shajrawi/swift,danielmartin/swift,parkera/swift,austinzheng/swift,xwu/swift,alblue/swift,roambotics/swift,ahoppen/swift,jmgc/swift,xwu/swift,devincoughlin/swift,austinzheng/swift,huonw/swift,alblue/swift,xedin/swift,practicalswift/swift,ahoppen/swift,glessard/swift,sschiau/swift,CodaFi/swift,practicalswift/swift,jckarter/swift,aschwaighofer/swift,gregomni/swift,shajrawi/swift,jopamer/swift,xwu/swift,sschiau/swift,benlangmuir/swift,rudkx/swift,zisko/swift,gribozavr/swift,jmgc/swift,huonw/swift,natecook1000/swift,glessard/swift,airspeedswift/swift,practicalswift/swift,zisko/swift,benlangmuir/swift,shajrawi/swift,karwa/swift,karwa/swift,natecook1000/swift,practicalswift/swift,JGiola/swift,jckarter/swift,stephentyrone/swift,shahmishal/swift,jmgc/swift,roambotics/swift,rudkx/swift,ahoppen/swift,brentdax/swift,shajrawi/swift,lorentey/swift,aschwaighofer/swift,allevato/swift,CodaFi/swift,jopamer/swift,gribozavr/swift,airspeedswift/swift,apple/swift,danielmartin/swift,alblue/swift,practicalswift/swift,airspeedswift/swift,atrick/swift,ahoppen/swift,amraboelela/swift,devincoughlin/swift,xwu/swift,allevato/swift,amraboelela/swift,alblue/swift,sschiau/swift,jopamer/swift,harlanhaskins/swift,benlangmuir/swift,lorentey/swift,aschwaighofer/swift,tjw/swift,aschwaighofer/swift