[LLVMdev] Floating-point FABS - supporting

Dan westdac at gmail.com
Mon May 6 11:41:54 PDT 2013

I posted a similar issue, but this relates to how to keep a function call
from being lowered to an ISD:FABS.

In this case, I don't want FABS (floating point absolute) to be converted
into an operation).  In this case, what happens is that clang generates the
code for floating point absolute (fabs) as a subroutine call:

%5 = load douuble %x, align 8
%call = call double @fabs(double %5) nounwind readnone

I want the call to remain, but somewhere in LLVM, it is take the call to
fabs and translating it to a ISD:FABS.

Again, I can try to custom lower ISD:FABS to a RTLIB call, but there are
two issues about the best way to handle it:

1- Is there a better way then having a subroutine call go to ISD:FABS, only
to come back to a subroutine call?

2- FABS is not in the list of LLVM RTLIB calls, and my hope was to handle
everything in the Target generation, rather than change another directory
in the: /lib/CodeGen/SelectionDAG or include/llvm/CodeGen/ISDOpcodes.h

Is there a good practice I can follow to deal with supporting
floating-point with software-only libraries and suggestions?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130506/92d4612a/attachment.html>

More information about the llvm-dev mailing list