search for: hasoptimizedcodegen

Displaying 6 results from an estimated 6 matches for "hasoptimizedcodegen".

2015 Jan 20
3
[LLVMdev] strlen in fast-isel
It seems that fast-isel for intel does not handle strlen. It's a general problem in fast-isel . ~/llvmw/build/Deb~/llvmw/build/Debug+Asserts/bin/clang -O0 -mllvm -fast-isel-verbose -mllvm -fast-isel strlen1.c strlen1.c:12:3: warning: implicitly declaring library function 'printf' with type 'int (const char *, ...)' printf("%i\n", len); ^
2013 Jan 22
0
[LLVMdev] sincos optimization
...brary calls, including sinf, *are* promoted to intrinsics if the compiler sees them (and are then usually converted back to library calls again later). The list of recognised names is here: lib/Target/TargetLibraryInfo.cpp The list of functions which are considered candidates for promotion is in hasOptimizedCodeGen() in here: include/llvm/Target/TargetLibraryInfo.h ...and the code that actually does it is here: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp Look for SelectionDAGBuilder::visitUnaryFloatCall() and visitCall(). It appears that such functions are only promoted if they're declared rea...
2013 Jan 22
2
[LLVMdev] sincos optimization
Hi, I'm looking at http://llvm.org/bugs/show_bug.cgi?id=13204 which involves converting calls to sin and cos to sincos (when available) Initially I thought about transforming calls to sinf/cosf to sincosf. However, I don't think this is a legal transformation given that a declaration for a function called sinf is not necessarily the standard library function. Therefore it makes sense to
2016 Jun 07
3
llvm intrinsics/libc/libm question
...been trying many libm/libc functions). Not sure why it's called TargetLibraryInfo if it's not in target specific code? It seems that ALL targets use this code, making it generic. Am I missing something here? Basically you're saying if I changed/added the XXXacos in TargetLibraryInfo::hasOptimizedCodeGen then the ConstantFolding (and other opts) could then opt for this libm call? Thanks, Ryan ps. The spec also states (albeit unclearly) that you can use "#undef" to omit a library function so that a user defined function of the same name can be used but LLVM doesn't seem to support t...
2016 Jun 07
3
llvm intrinsics/libc/libm question
I'm trying to figure out exactly how the intrinsics/libc/libm work in llvm. For example, this code return user defined function: float acos(float x, float y) { return x+y; } float a; void foo(float b, float c) { a = acos(b, c); } But this code returns llvm.intrinsic: float acos(float, float); float a; void foo(float b, float c) { a = acos(b, c); } float acos(float x, float y) {
2016 Jun 14
2
llvm intrinsics/libc/libm question
If I do T.getArch() == xxx TLI.setUnavailable(LibFunc::copysign) then this works at generating a call instead of not being able to select the ISD::FCOPYSIGN, but I don't know why I don't need to do this for other LibFunc functions (such as floor, etc... these generate call just fine)? Thanks, Ryan On Tue, Jun 14, 2016 at 11:58 AM, Ryan Taylor <ryta1203 at gmail.com> wrote: