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: