[LLVMdev] Float undef value propagation

Raoux, Thomas F thomas.f.raoux at intel.com
Mon Dec 9 14:13:02 PST 2013


Constant propagation pass generates constant expression when undef is used in float instructions instead of propagating the undef value.

; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
  %add = fadd fast float undef, 2.000000e+00
  ret float %add
}

Becomes:

; Function Attrs: nounwind
define float @_Z1fv() #0 {
entry:
  ret float fadd (float undef, float 2.000000e+00)
}

Is it safe to transform "%add = fadd fast float undef, 2.000000e+00" to "undef"? Is there a reason why constant propagation pass doesn't do this transformation?

Thanks,
Thomas

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131209/881d8c55/attachment.html>


More information about the llvm-dev mailing list