Chris Lattner
91ea0d3176
Import the trace class from the reoptimizer
...
llvm-svn: 12236
2004-03-08 20:57:27 +00:00
Chris Lattner
de661f7219
If we have edge counts, we can produce block counts. I've verified that
...
using an edge profile to produce block counts gives the exact same numbers
as using a block count directly.
llvm-svn: 12232
2004-03-08 20:03:52 +00:00
Chris Lattner
f3a838662e
Add initial support for reading edge counts. This will be improved to enable
...
translation of edge counts into block/function counts when possible.
llvm-svn: 12229
2004-03-08 18:20:18 +00:00
Chris Lattner
1ae4150e31
Fix a bug handling globals that are constants, but are still external
...
llvm-svn: 12208
2004-03-08 03:52:24 +00:00
Chris Lattner
5a9cae47a4
Fix a minor bug
...
llvm-svn: 12169
2004-03-05 22:04:07 +00:00
Misha Brukman
75729872be
Unbreak the build on Sparc.
...
llvm-svn: 12161
2004-03-05 20:04:40 +00:00
Chris Lattner
f21e7a75d6
Fix a bug in a previous checkin that broke 175.vpr
...
llvm-svn: 12128
2004-03-04 21:36:57 +00:00
Chris Lattner
c885697daa
Add support for strto* and v*printf
...
llvm-svn: 12127
2004-03-04 21:03:54 +00:00
Chris Lattner
48b0fd7101
Add non-crappy support for varargs
...
llvm-svn: 12126
2004-03-04 20:33:47 +00:00
Chris Lattner
ac1eaa43fa
Implement a FIXME, improving the efficiency of DSA on povray.
...
This reduces CBU time from 145s -> 122s (debug build), reduces # allocated nodes
from 129420 to 116477.
llvm-svn: 12125
2004-03-04 19:47:04 +00:00
Chris Lattner
e3fc09a37e
Speed up the cbu pass from taking somewhere near the age of the universe to about 90s on povray
...
llvm-svn: 12123
2004-03-04 19:16:35 +00:00
Chris Lattner
bc7fc82865
Fix BU datastructures with povray!
...
The problem was that we were merging a field of a node with a value that was
deleted. Thanks to bugpoint for reducing povray to a nice small 3 function
example. :)
llvm-svn: 12116
2004-03-04 17:06:53 +00:00
Chris Lattner
e0c90cf983
Minor changes, remove some debugging code that got checked in somehow.
...
Make sure to scope the NodeMap passed into cloneInto so that it doesn't point
to nodes that are deleted. Add some FIXME's for future performance enhancements.
llvm-svn: 12115
2004-03-04 17:05:28 +00:00
Chris Lattner
790bd9d970
Only clone nodes that are needed in the caller, don't clone ALL aux calls. This improves
...
povray from having ~600K nodes and 300K call nodes to 65K nodes and 25K call nodes.
llvm-svn: 12109
2004-03-04 03:57:53 +00:00
Chris Lattner
a141de0f09
Fix a minor bug handling incomplete programs
...
llvm-svn: 12105
2004-03-03 23:00:19 +00:00
Chris Lattner
0e1cd00f2c
Fix a DSA bug that caused DSA to generate incredibly huge graphs and take forever to
...
do it on povray. The problem is that we were not copying globals from callees to
callers unless the existed in both graphs. We should have copied them in the case
where the global pointed to a node that was copied as well.
llvm-svn: 12104
2004-03-03 22:01:09 +00:00
Chris Lattner
a6540122dc
Deinline methods, add fast exit
...
llvm-svn: 12102
2004-03-03 20:55:27 +00:00
Chris Lattner
309a57f0c0
Fix a node mapping problem that was causing the pool allocator to locally allocate
...
nodes that were globally live, thus breaking programs.
llvm-svn: 12094
2004-03-03 05:34:31 +00:00
Chris Lattner
ea4242a575
FINALLY be able to get symbolic type names in the globals graph!
...
llvm-svn: 12082
2004-03-02 21:39:43 +00:00
Chris Lattner
833646d6b8
Really, only if reopen
...
llvm-svn: 12080
2004-03-02 20:46:18 +00:00
Chris Lattner
e7c638e989
Correctly add an array marker on a node when appropriate!
...
llvm-svn: 12055
2004-03-01 19:02:54 +00:00
Chris Lattner
9bf85f216b
Expand on my note-to-self
...
llvm-svn: 12029
2004-03-01 02:44:44 +00:00
Chris Lattner
9e71c09ff5
Only clone global nodes between graphs if both graphs have the global.
...
llvm-svn: 11928
2004-02-27 20:05:15 +00:00
Chris Lattner
138a7dfb62
ADD MORE FUNCTIONS!
...
llvm-svn: 11927
2004-02-27 20:04:48 +00:00
Chris Lattner
d359fbf991
Be a good little compiler and handle direct calls efficiently, even if there
...
are beastly ConstantPointerRefs in the way...
llvm-svn: 11883
2004-02-26 22:07:22 +00:00
Chris Lattner
9e55e31b2d
Fix typo
...
llvm-svn: 11864
2004-02-26 03:45:03 +00:00
Chris Lattner
7990e4dcd0
The node doesn't have to be _no_ node flags, it just has to be complete and
...
not have any globals.
llvm-svn: 11863
2004-02-26 03:43:43 +00:00
Chris Lattner
948fffa8a2
Add _more_ functions
...
llvm-svn: 11862
2004-02-26 03:43:08 +00:00
Chris Lattner
9fd0c48f80
Two changes:
...
1. Functions do not make things incomplete, only variables
2. Constant global variables no longer need to be marked incomplete, because
we are guaranteed that the initializer for the global will be in the
graph we are hacking on now. This makes resolution of indirect calls happen
a lot more in the bu pass, supports things like vtables and the C counterparts
(giant constant arrays of function pointers), etc...
Testcase here: test/Regression/Analysis/DSGraph/constant_globals.ll
llvm-svn: 11852
2004-02-25 23:36:08 +00:00
Chris Lattner
7d273bc532
When building local graphs, clone the initializer for constant globals into each
...
local graph that uses the global.
llvm-svn: 11850
2004-02-25 23:31:02 +00:00
Chris Lattner
9fe3bf296d
Simplify the dead node elimination stuff
...
Make the incompleteness marker faster by looping directly over the globals
instead of over the scalars to find the globals
Fix a bug where we didn't mark a global incomplete if it didn't have any
outgoing edges. This wouldn't break any current clients but is still wrong.
llvm-svn: 11848
2004-02-25 23:08:00 +00:00
Chris Lattner
a9f67b5ab8
Add a bunch more functions
...
llvm-svn: 11847
2004-02-25 23:06:40 +00:00
Chris Lattner
d99d965f8c
Try harder to get symbol info
...
llvm-svn: 11846
2004-02-25 23:06:30 +00:00
Chris Lattner
4f09004dff
Add a bunch more functions used by perlbmk
...
llvm-svn: 11824
2004-02-25 17:43:20 +00:00
Chris Lattner
9036c86b14
Add support for 'rename'
...
llvm-svn: 11813
2004-02-24 22:17:00 +00:00
Chris Lattner
d9652be664
Add support for remove, fwrite, and fread
...
Also fix problem where we didn't check to see if a node pointer was null.
Though fclose(null) doesn't make a lot of sense, 300.twolf does it.
llvm-svn: 11810
2004-02-24 22:02:48 +00:00
Chris Lattner
63b79422f3
Fix a soon-to-be-missing #include
...
llvm-svn: 11707
2004-02-22 06:26:17 +00:00
Chris Lattner
573441bfbd
Use isNull instead of getNode() to test for existence of a node, this is cheaper.
...
FIX MAJOR BUG, whereby we didn't merge null edges correctly. Correcting this
fixes poolallocation on 175.vpr, and possibly others.
llvm-svn: 11695
2004-02-22 00:53:54 +00:00
Chris Lattner
7bff00313e
Fix an iterator invalidation problem which was causing some nodes to not be
...
correctly merged over!
llvm-svn: 11693
2004-02-21 22:28:26 +00:00
Chris Lattner
458704f675
Use handy method
...
llvm-svn: 11692
2004-02-21 22:27:31 +00:00
Chris Lattner
dacc6a7448
Instead of cloning the globals for main into the globals graph at the end of
...
BU propagation, clone the globals into the GG of EACH FUNCTION that finishes
processing! The GlobalsGraph *must* include all globals and effects from
all functions in the program. Fixing this makes pool allocation work better
on 175.vpr, but it still ultimately crashes.
llvm-svn: 11686
2004-02-21 00:30:28 +00:00
Chris Lattner
0f9200e5a5
There is no need to merge the globals graph into the function graphs at the
...
end of the BU and CBU passes. The globals will be marked incomplete, so it
doesn't matter if they are missing some info, and merging isn't guaranteed
to bring everything in anyway!
llvm-svn: 11684
2004-02-20 23:52:15 +00:00
Chris Lattner
31f8fa66cb
Add two missing returns, which caused us to be very pessimistic about the
...
printf and scanf families!
llvm-svn: 11683
2004-02-20 23:27:09 +00:00
Chris Lattner
4653c4cb50
Add support for some string functions, the scanf family, and sprintf
...
llvm-svn: 11673
2004-02-20 20:27:11 +00:00
Chris Lattner
d9e1a49650
When we complete the bottom-up pass, make sure to merge the globals in 'main' into
...
the globals graph.
llvm-svn: 11562
2004-02-17 19:06:47 +00:00
Chris Lattner
2c0736be99
Only spit out warning for functions that take pointers, not for sin and the like
...
Add more special case handling for stdio functions. I feel dirty, how about you?
llvm-svn: 11506
2004-02-16 22:57:19 +00:00
Chris Lattner
513e4c7bd9
memset and bcopy and now unified by the llvm.memset intrinsic
...
llvm-svn: 11503
2004-02-16 18:37:40 +00:00
Chris Lattner
cd6a595db5
No need to scan zero initializers. This should make DSA a bit faster.
...
llvm-svn: 11471
2004-02-15 05:53:42 +00:00
Chris Lattner
33ed4f9de9
Add support for a bunch more functions
...
llvm-svn: 11395
2004-02-13 21:21:48 +00:00
Chris Lattner
fbacee0077
Add support for fopen/fclose. Specifically with fopen, we were marking all of the
...
operands as incomplete, though fopen is known to only read them. This just adds
fclose for symmetry, though it doesn't gain anything. This makes the dsgraphs for
181.mcf much more precise.
llvm-svn: 11390
2004-02-13 20:05:32 +00:00