Patch based on suggestion in PR17713 ( http://llvm.org/bugs/show_bug.cgi?id=17713 ) and discussion in http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/080314.html .
This just handles the simple case of propagating FP values along edges; there are still a lot of other cases (eg http://llvm.org/bugs/show_bug.cgi?id=17683 ) that need work.