- Dec 28, 2013
-
-
Chandler Carruth authored
widespread glibc bugs. The glibc implementation of exp10 has a very serious precision bug in version 2.15 (and older versions). This is still very widely used (the current Ubuntu LTS for example uses it) and so it isn't reasonable to make transforms that produce these functions. This fixes many miscompiles introduced when we started transforming pow(10.0, ...) into exp10, and it may have fixed other latent miscompiles where exp10 provided sufficient precision but exp10f did not. This is all really horrible. The primary bug has been fixed for over a year and glibc 2.18 works correctly for the test cases I have, but it will be 2017 before the LTS using 2.15 is no longer supported by Ubuntu (and thus reasonable for folks to be relying on). =[ We're either going to need to live without these optimizations, or find a way to switch behavior more dynamically than using simply the fact that the OS is "Linux". To make matters worse, there appears to be significant testing and fixing of numerous other bugs in the exp10 family of functions right now in glibc. While those haven't been causing problems I've seen in the wild, it gives me concerns that we may need to wait until an even later release of glibc before we can reliably transform code into exp10. llvm-svn: 198093
-
- Dec 26, 2013
-
-
Reid Kleckner authored
This makes it unavailable on NetBSD, Android, etc. Patch by Brad Smith! llvm-svn: 198056
-
- Dec 16, 2013
-
-
Yi Jiang authored
Enable double to float shrinking optimizations for binary functions like 'fmin/fmax'. Fix radar:15283121 llvm-svn: 197434
-
- Dec 15, 2013
-
-
Joerg Sonnenberger authored
llvm-svn: 197348
-
- Dec 12, 2013
-
-
Yi Jiang authored
llvm-svn: 197109
-
- Dec 08, 2013
-
-
Manman Ren authored
llvm-svn: 196732
-
- Dec 05, 2013
-
-
Yi Jiang authored
llvm-svn: 196544
-
- Nov 03, 2013
-
-
Bob Wilson authored
This adds an SimplifyLibCalls case which converts the special __sinpi and __cospi (float & double variants) into a __sincospi_stret where appropriate to remove duplicated work. Patch by Tim Northover llvm-svn: 193943
-
- Aug 29, 2013
-
-
Cameron Esfahani authored
Clean up some usage of Triple. The base class has methods for determining if the target is iOS and Linux. llvm-svn: 189604
-
- Jul 22, 2013
-
-
Richard Smith authored
deallocation functions. llvm-svn: 186798
-
- Jul 03, 2013
-
-
Michael Gottesman authored
*NOTE* In a recent version of posix, they added the restrict keyword to the arguments for this function. From some spelunking it seems that on some platforms, the call has restrict on its arguments and others it does not. Thus I left off the restrict keyword from the function prototype in the comment. llvm-svn: 185501
-
- May 27, 2013
-
-
Preston Gurd authored
When -ffast-math is in effect (on Linux, at least), clang defines __FINITE_MATH_ONLY__ > 0 when including <math.h>. This causes the preprocessor to include <bits/math-finite.h>, which renames the sqrt functions. For instance, "sqrt" is renamed as "__sqrt_finite". This patch adds the 3 new names in such a way that they will be treated as equivalent to their respective original names. llvm-svn: 182739
-
- Mar 13, 2013
-
-
Benjamin Kramer authored
sigh. llvm-svn: 176946
-
- Mar 09, 2013
-
-
Benjamin Kramer authored
The strlen+memcmp was hidden in a call to StringRef::operator==. We check if there are any null bytes in the string upfront so we can simplify the comparison Small speedup when compiling code with many function calls. llvm-svn: 176766
-
- Mar 05, 2013
-
-
Meador Inge authored
This patch adds many more functions to the target library information. All of the functions being added were discovered while doing the migration of the simplify-libcalls attribute annotation functionality to the functionattrs pass. As a part of that work the attribute annotation logic will query TLI to determine if a function should be annotated or not. Signed-off-by:
Meador Inge <meadori@codesourcery.com> llvm-svn: 176514
-
- Nov 22, 2012
-
-
Meador Inge authored
I discovered a few more missing functions while migrating optimizations from the simplify-libcalls pass to the instcombine (I already added some in r167659). llvm-svn: 168501
-
- Nov 10, 2012
-
-
Meador Inge authored
In the process of migrating optimizations from the simplify-libcalls pass to the instcombine pass I noticed that a few functions are missing from the target library information. These functions need to be available for querying in the instcombine library call simplifiers. More functions will probably be added in the future as more simplifiers are migrated to instcombine. llvm-svn: 167659
-
- Aug 29, 2012
-
-
Benjamin Kramer authored
This disables malloc-specific optimization when -fno-builtin (or -ffreestanding) is specified. This has been a problem for a long time but became more severe with the recent memory builtin improvements. Since the memory builtin functions are used everywhere, this required passing TLI in many places. This means that functions that now have an optional TLI argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead mallocs anymore if the TLI argument is missing. I've updated most passes to do the right thing. Fixes PR13694 and probably others. llvm-svn: 162841
-
- Aug 22, 2012
-
-
Chad Rosier authored
Patch by Weiming Zhao <weimingz@codeaurora.org>. llvm-svn: 162329
-
- Aug 03, 2012
-
-
Bob Wilson authored
This just provides a way to look up a LibFunc::Func enum value for a function name. Alphabetize the enums and function names so we can use a binary search. llvm-svn: 161231
-
- Jul 25, 2012
-
-
Nuno Lopes authored
make all Emit*() functions consult the TargetLibraryInfo information before creating a call to a library function. Update all clients to pass the TLI information around. Previous draft reviewed by Eli. llvm-svn: 160733
-
- Jul 24, 2012
-
-
Nuno Lopes authored
fputc, memchr, memcmp, putchar, puts, strchr, strncmp llvm-svn: 160690
-
Nuno Lopes authored
llvm-svn: 160678
-
- Apr 18, 2012
-
-
Joe Groff authored
also fix SimplifyLibCalls to use TLI rather than compile-time conditionals to enable optimizations on floor, ceil, round, rint, and nearbyint llvm-svn: 154960
-
- Feb 12, 2012
-
-
Nick Lewycky authored
to TargetLibraryInfo and use one of them in GlobalOpt. llvm-svn: 150323
-
- Dec 20, 2011
-
-
- Dec 08, 2011
-
-
Owen Anderson authored
Enhance both TargetLibraryInfo and SelectionDAGBuilder so that the latter can use the former to prevent the formation of libm SDNode's when -fno-builtin is passed. llvm-svn: 146193
-
- Dec 01, 2011
-
-
Chad Rosier authored
llvm-svn: 145608
-
-
- Nov 30, 2011
-
-
Chad Rosier authored
llvm-svn: 145508
-
Chad Rosier authored
change intended. llvm-svn: 145468
-
Chad Rosier authored
(fptrunc (sqrt (fpext x))) -> (sqrtf x) transformation if -fno-builtin is specified. rdar://10466410 llvm-svn: 145460
-
- Nov 17, 2011
-
-
Eli Friedman authored
Add support for custom names for library functions in TargetLibraryInfo. Add a custom name for fwrite and fputs on x86-32 OSX. Make SimplifyLibCalls honor the custom names for fwrite and fputs. Fixes <rdar://problem/9815881>. llvm-svn: 144876
-
- Jun 09, 2011
-
-
Duncan Sands authored
Patch by Pekka Jaaskelainen. llvm-svn: 132774
-
- May 21, 2011
-
-
Chris Lattner authored
llvm-svn: 131806
-
- Apr 20, 2011
-
-
Daniel Dunbar authored
triple component. llvm-svn: 129838
-
- Apr 19, 2011
-
-
Daniel Dunbar authored
llvm-svn: 129803
-
- Mar 03, 2011
-
-
Richard Osborne authored
and siprintf is available on the target. llvm-svn: 126940
-
Richard Osborne authored
and siprintf is available on the target. llvm-svn: 126937
-
Richard Osborne authored
and iprintf is available on the target. Currently iprintf is only marked as being available on the XCore. llvm-svn: 126935
-