[LLVMdev] replace hardcoded function names by intrinsics

Jochen Wilhelmy jochen.wilhelmy at googlemail.com
Fri Mar 2 04:55:18 PST 2012


Hi!

in the llvm code there are several places with hardcoded function names for
e.g. sin, sinf, sqrt, sqrtf etc., namely
ConstantFolding.cpp
InlineCost.cpp
SelectionDAGBuilder.cpp
IntrinsicLowering.cpp
TargetLowering.cpp

my question is: wouldn't it be beneficial to use intrinsics for this? 
for example a c/c++
frontend (clang) could translate the function calls to intrinsics and 
then in a very late
step (IntrinsicLowering.cpp?) translate it back to function calls.
an opencl frontend then could use the intrinsics on vector types and 
ConstantFolding.cpp
would work on sin/cos of vector types. currently the intrinsics for 
sin/cos are missing in
ConstantFolding.
To summarize, using only intrinsics would reduce complexity and increase 
flexibility as
vector types are supported.

-Jochen




More information about the llvm-dev mailing list