Chris Lattner
acfc11664a
Count CallInsts correctly, remove unneccesary initializers
...
S: ----------------------------------------------------------------------
llvm-svn: 4721
2002-11-17 22:15:40 +00:00
Dinakar Dhurjati
9da9f0534e
Gives the count for various instructions.
...
llvm-svn: 4706
2002-11-13 18:22:13 +00:00
Vikram S. Adve
2dfc11dc3b
Pass to compute various statisics related to DSGraphs.
...
For now, this just computes the #indirect call sites and
the avg. #callees per indirect call site (actually it prints
both totals and the average is their ratio).
llvm-svn: 4705
2002-11-13 15:41:00 +00:00
Chris Lattner
b257e87db5
Inline graphs from outside the SCC into the SCC before SCC resolution starts
...
llvm-svn: 4701
2002-11-12 15:58:08 +00:00
Chris Lattner
cd37857ad0
Fix two bugs:
...
* The globals vector was getting broken and unsorted, this caused vortex
to get badly pessimized
* Node offset handling was being handled really poorly, and in particular
we were not merging types with offsets right. This causes several graphs
to be non-merged.
llvm-svn: 4699
2002-11-12 07:20:45 +00:00
Chris Lattner
3b303e5ab8
Fix bug
...
llvm-svn: 4697
2002-11-11 22:23:56 +00:00
Chris Lattner
f56a5282d2
Handle a mismatch between # function args and call site args
...
llvm-svn: 4696
2002-11-11 21:36:05 +00:00
Chris Lattner
6fcb6f1472
Elimiante calls to a node with nothing in it.
...
llvm-svn: 4695
2002-11-11 21:35:38 +00:00
Chris Lattner
0052b69a32
Complete rewrite of BU code to use Tarjan's SCC finding algorithm to drive
...
the algorithm instead of hand coded depth first iteration
llvm-svn: 4694
2002-11-11 21:35:13 +00:00
Chris Lattner
fb44e1ff28
Mark stuff reachable by _AUX_ calls as incomplete in the BU graph
...
llvm-svn: 4690
2002-11-11 03:36:55 +00:00
Chris Lattner
f05d126a68
Fix infinite loop in the BU algorithm. Unfortunately this dies a serious
...
death when handling moderately sized SCC's, but what can you do
llvm-svn: 4689
2002-11-11 00:01:34 +00:00
Chris Lattner
a7302da4e8
Print the right call set size
...
llvm-svn: 4688
2002-11-11 00:01:02 +00:00
Chris Lattner
41bf6e1bc6
Use call site mergeWith method to simplify code
...
llvm-svn: 4687
2002-11-11 00:00:46 +00:00
Chris Lattner
0fe1af497d
Fix a bug that could trigger when varargs call sites had non-matching number of arguments
...
llvm-svn: 4683
2002-11-10 07:46:08 +00:00
Chris Lattner
928e9c012b
* Dramatically rework liveness evaluation.
...
* Implement the first step of the Globals graph: Deleting nodes from function
graphs. In practice, these nodes need to be moved to the globals graph, but
this will be taken care of later. Note that the graphs computed right now are
not strictly correct!
llvm-svn: 4681
2002-11-10 06:59:55 +00:00
Chris Lattner
f5667969d1
Honor the shouldPrintAuxCalls flag
...
llvm-svn: 4678
2002-11-10 06:53:59 +00:00
Chris Lattner
2597c1158f
Initialize PrintAuxCalls member
...
llvm-svn: 4677
2002-11-10 06:53:38 +00:00
Chris Lattner
a30663385f
* Bottom-Up graphs print the Aux call vector
...
* Significantly improve DEBUG output
* Aggressively fold calls together if we inlined a graph that provides
call nodes.
* Add a bailout if the current graph has over 200 call nodes in it, this is
a really whacky case that should never happen.
llvm-svn: 4675
2002-11-10 06:52:47 +00:00
Chris Lattner
1fe76d2385
eliminate the ability to remove global nodes from deadNodeElminate... for now.
...
This slows stuff down a bit, but it should get much better before it gets any
worse.
llvm-svn: 4666
2002-11-09 22:07:02 +00:00
Chris Lattner
d9c732c581
Remove obsolete code
...
llvm-svn: 4665
2002-11-09 21:41:44 +00:00
Chris Lattner
20d264e16b
Fix logic
...
llvm-svn: 4664
2002-11-09 21:40:58 +00:00
Chris Lattner
0752756a6a
Add globals graphs to all three passes
...
llvm-svn: 4663
2002-11-09 21:12:07 +00:00
Chris Lattner
f6ea37ce99
Move maskNodeTypes to header file
...
llvm-svn: 4661
2002-11-09 21:02:26 +00:00
Chris Lattner
e726eb5ea7
Clean up DSGraph::removeDeadNodes interface
...
llvm-svn: 4660
2002-11-09 21:00:49 +00:00
Chris Lattner
3e54e8f3ca
Make removeTriviallyDeadNodes a private interface of DSGraph
...
llvm-svn: 4659
2002-11-09 20:55:24 +00:00
Chris Lattner
082bbe3069
Don't put constants into the scalar map!
...
llvm-svn: 4657
2002-11-09 20:14:03 +00:00
Chris Lattner
1c5c03d6f7
Add initial support for a globals graph
...
llvm-svn: 4656
2002-11-09 20:01:01 +00:00
Chris Lattner
5a11bf70c3
Tighten up array handling
...
llvm-svn: 4655
2002-11-09 19:25:27 +00:00
Chris Lattner
6172544663
#include Datastructure.h first
...
llvm-svn: 4654
2002-11-09 19:25:10 +00:00
Chris Lattner
0141841bc4
Fix warning
...
llvm-svn: 4649
2002-11-09 00:49:43 +00:00
Chris Lattner
b3580d5111
Fix warning & release build
...
llvm-svn: 4648
2002-11-09 00:49:05 +00:00
Chris Lattner
608bb157f7
Fold arrays down to a single element. This causes huge wins on some benchmarks
...
for example: 197.parser (64M->14M), 164.gzip (14M->2.7M). The actual graphs
represented should not change at all.
llvm-svn: 4643
2002-11-08 22:49:57 +00:00
Chris Lattner
4baa01ba61
ONLY merge in the aux call sites, this causes a HUGE speedup
...
llvm-svn: 4640
2002-11-08 22:27:25 +00:00
Chris Lattner
380395f58e
Allow specification of whether the call sites should be copied, AND whether
...
the aux call sites should be copied
llvm-svn: 4639
2002-11-08 22:27:09 +00:00
Chris Lattner
5cffea23bb
Reenable 'quick exit' case
...
llvm-svn: 4638
2002-11-08 22:26:43 +00:00
Chris Lattner
8cd66f734f
Reduce amount of work needed to compute ip/modref
...
llvm-svn: 4637
2002-11-08 22:17:01 +00:00
Chris Lattner
b3bf781d44
Reimplement TD pass completely it now works
...
llvm-svn: 4635
2002-11-08 21:28:37 +00:00
Chris Lattner
f1e963a98c
Cannot modify original call sites vector
...
llvm-svn: 4634
2002-11-08 21:27:37 +00:00
Chris Lattner
427b472549
- Add a bunch of checking to make sure that dead nodes are not used after they
...
are marked DEAD. This helped track down some bugs
- Fix a bunch of bugs where we were doing work on nodes after they became dead
- Add support for aux function call sites
- Add support for not cloning call sites
llvm-svn: 4633
2002-11-08 21:27:12 +00:00
Chris Lattner
4feccc4d45
Remove gunk used by broken TD pass
...
llvm-svn: 4632
2002-11-08 21:25:24 +00:00
Chris Lattner
30e3d26423
Fix IPModRef to use new DS interface
...
llvm-svn: 4628
2002-11-08 19:13:14 +00:00
Chris Lattner
22e36c86cd
Use DSNodeHandleMap instead to be safe
...
llvm-svn: 4622
2002-11-08 05:01:14 +00:00
Chris Lattner
986ec528fd
* actually handle constants (especially constantexprs) correctly.
...
- This seems to dramatically improve many benchmarks, only slowing down
gzip significantly.
llvm-svn: 4621
2002-11-08 05:00:44 +00:00
Chris Lattner
86b5e92d45
Add flush
...
llvm-svn: 4619
2002-11-08 01:21:07 +00:00
Chris Lattner
f13f9c585e
Implement ResolveCallSiteModRefInfo for IPModRef. computeModRef is not yet done though!
...
llvm-svn: 4602
2002-11-07 07:12:23 +00:00
Chris Lattner
450e1fbc76
Instead of using a bool that constant has to be explained, use a self
...
explanitory enum instead.
llvm-svn: 4600
2002-11-07 07:06:20 +00:00
Chris Lattner
7d2624d4f3
Implement a new mergeInGraph method, which basically factors code out of
...
the BU class.
This will be used by the IPModRef class to do stuff, eventually perhaps the
TD pass will use it also.
Speaking of the TD pass, this also eliminates the self recursive case, which
was broken, and couldn't occur anyway.
llvm-svn: 4599
2002-11-07 06:31:54 +00:00
Chris Lattner
dfba076f5b
Rename DataStructureAnalysis namespace to DS
...
llvm-svn: 4596
2002-11-07 05:20:53 +00:00
Chris Lattner
a0d26350c6
Fix problem with dangling referrers
...
llvm-svn: 4595
2002-11-07 05:00:35 +00:00
Chris Lattner
d68d0a9037
Minor bugfix to enable generation of methcall.llvm.lib, objinst.llvm.lib, and
...
The problem was merging two unsized types like function's, ie int (int*) with
int (uint *)
llvm-svn: 4594
2002-11-07 04:59:28 +00:00