Benjamin Kramer
8bcc971174
Make MemoryBuiltins aware of TargetLibraryInfo.
...
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
2012-08-29 15:32:21 +00:00
Chad Rosier
7fb0cd26f7
Add a few functions to TargetLibraryInfo as part of PR13574.
...
Patch by Weiming Zhao <weimingz@codeaurora.org>.
llvm-svn: 162329
2012-08-21 23:28:56 +00:00
Bob Wilson
c740e3f0d1
Add new getLibFunc method to TargetLibraryInfo.
...
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
2012-08-03 04:06:22 +00:00
Nuno Lopes
89702e94b5
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
2012-07-25 16:46:31 +00:00
Nuno Lopes
342cf787ef
add a few more functions to TargetLibraryInfo:
...
fputc, memchr, memcmp, putchar, puts, strchr, strncmp
llvm-svn: 160690
2012-07-24 21:00:36 +00:00
Nuno Lopes
20f5a7aeb7
TargetLibraryInfo: add strn?cat, strn?cpy, and strn?len
...
llvm-svn: 160678
2012-07-24 17:25:06 +00:00
Joe Groff
a81bcbb9bb
fix pr12559: mark unavailable win32 math libcalls
...
also fix SimplifyLibCalls to use TLI rather than compile-time conditionals to enable optimizations on floor, ceil, round, rint, and nearbyint
llvm-svn: 154960
2012-04-17 23:05:54 +00:00
Nick Lewycky
4b273cb7ea
Remove redundant getAnalysis<> calls in GlobalOpt. Add a few Itanium ABI calls
...
to TargetLibraryInfo and use one of them in GlobalOpt.
llvm-svn: 150323
2012-02-12 02:15:20 +00:00
David Blaikie
a379b18173
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
...
llvm-svn: 146960
2011-12-20 02:50:00 +00:00
Owen Anderson
bb15fec2b8
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
2011-12-08 22:15:21 +00:00
Chad Rosier
676c093758
Add missing functions.
...
llvm-svn: 145608
2011-12-01 18:26:19 +00:00
Chad Rosier
10fe1fe39e
Add a few more functions to TargetLibraryInfo. More of rdar://10500969.
...
llvm-svn: 145596
2011-12-01 17:54:37 +00:00
Chad Rosier
738da252ab
Add a few functions to TargetLibraryInfo.
...
llvm-svn: 145508
2011-11-30 19:19:00 +00:00
Chad Rosier
abba0947db
Alphabetize TargetLibraryInfo enum and fix doxygen comments. No functional
...
change intended.
llvm-svn: 145468
2011-11-30 01:51:49 +00:00
Chad Rosier
82e1bd8e94
Add support for sqrt, sqrtl, and sqrtf in TargetLibraryInfo. Disable
...
(fptrunc (sqrt (fpext x))) -> (sqrtf x) transformation if -fno-builtin is
specified.
rdar://10466410
llvm-svn: 145460
2011-11-29 23:57:10 +00:00
Eli Friedman
489c0ff4a4
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
2011-11-17 01:27:36 +00:00
Duncan Sands
eeb50c8fd2
Enable printf() to iprintf() optimization for the TCE target.
...
Patch by Pekka Jaaskelainen.
llvm-svn: 132774
2011-06-09 11:11:45 +00:00
Chris Lattner
4c0d9e2249
add a copy ctor to TargetLibraryInfo.
...
llvm-svn: 131806
2011-05-21 20:09:13 +00:00
Daniel Dunbar
cd01ed5bd6
ADT/Triple: Renambe isOSX... methods to isMacOSX for consistency with the OS
...
triple component.
llvm-svn: 129838
2011-04-20 00:14:25 +00:00
Daniel Dunbar
9483bb6bf3
Target: Eliminate a use of getDarwinMajorNumber().
...
llvm-svn: 129803
2011-04-19 20:44:08 +00:00
Richard Osborne
af52c52569
Optimize fprintf -> iprintf if there are no floating point arguments
...
and siprintf is available on the target.
llvm-svn: 126940
2011-03-03 14:20:22 +00:00
Richard Osborne
2dfb888392
Optimize sprintf -> siprintf if there are no floating point arguments
...
and siprintf is available on the target.
llvm-svn: 126937
2011-03-03 14:09:28 +00:00
Richard Osborne
815de536e5
Optimize printf -> iprintf if there are no floating point arguments
...
and iprintf is available on the target. Currently iprintf is only
marked as being available on the XCore.
llvm-svn: 126935
2011-03-03 13:17:51 +00:00
Chris Lattner
1341df93f7
add a way to disable all builtins, wire it up to opt's -disable-simplifylibcalls flag.
...
llvm-svn: 125978
2011-02-18 22:34:03 +00:00
Chris Lattner
0e125bb4d0
introduce a new TargetLibraryInfo pass, which transformations can use to
...
query about available library functions. For now this just has
memset_pattern16, which exists on darwin, but it can be extended for a
bunch of other things in the future.
llvm-svn: 125965
2011-02-18 21:50:34 +00:00