Chris Lattner
a4c1b5f3e6
rename some methods and add some new methods for dealing with the globals list
...
in a DSNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20701 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-20 02:38:39 +00:00
Chris Lattner
6269be8aca
Make each scalar map contain a reference to an equivalence class of global
...
variables. Do not insert a global into the scalar map unless it is the
leader of its equivalence class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20695 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-19 22:13:13 +00:00
Chris Lattner
ed53fe9945
Each DS collection now contains an equivalence class of globals values.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20694 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-19 22:12:33 +00:00
Chris Lattner
ce325fdb87
add a method to clear globals from a node
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20693 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-19 22:12:03 +00:00
Chris Lattner
0f34412293
add 3 methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20667 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-17 23:45:35 +00:00
Chris Lattner
df6001380a
remove use of compat_iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20642 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-16 22:42:01 +00:00
Chris Lattner
a9fec4ed81
remove warning, make computeGGToGMapping return an invnodemap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20621 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 17:52:07 +00:00
Chris Lattner
adea6306d4
add support for hashing nodehandles.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20620 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 17:51:51 +00:00
Chris Lattner
60cc3e1c4e
add iterators for return nodes list.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20617 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 16:46:11 +00:00
Jeff Cohen
805213e65c
Do it right...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20605 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 06:21:40 +00:00
Jeff Cohen
0ef161eef9
Fix VC++ breakage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20604 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 06:15:08 +00:00
Chris Lattner
e448580492
Rename method, add counterpart.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20592 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15 00:58:09 +00:00
Chris Lattner
62b2b22573
Add a useful method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20587 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-14 19:22:33 +00:00
Chris Lattner
bc341e616e
Add support for printing EQ graphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20581 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-13 19:50:40 +00:00
Chris Lattner
b25959a632
remove this from the PA namespace, leaving it in the llvm ns
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20574 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-12 12:08:52 +00:00
Chris Lattner
8694c076c7
Fix some crashes noted by John Mellor-Crummey's group.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20558 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-11 00:00:56 +00:00
Chris Lattner
d672ab936f
Add a new method to make it easy to update graphs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20194 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-15 18:40:55 +00:00
Chris Lattner
748ca4de2c
Add some iterators that should have come in long ago
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20085 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-09 03:14:29 +00:00
Chris Lattner
ddf5a35eed
Hopefully fix the build on Darwin with GCC 3.3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20064 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-07 16:09:01 +00:00
Chris Lattner
eefc71be20
Add some new members
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20034 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-04 19:58:06 +00:00
Chris Lattner
fbafcb7468
add new member
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20033 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-04 19:57:57 +00:00
Chris Lattner
3a826203c7
Add a new method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20017 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-03 18:40:05 +00:00
Chris Lattner
321f68306f
remove dead method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19977 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-01 21:37:06 +00:00
Chris Lattner
a9548d9fd9
* Make some methods more const correct.
...
* Change the FunctionCalls and AuxFunctionCalls vectors into std::lists.
This makes many operations on these lists much more natural, and avoids
*exteremely* expensive copying of DSCallSites (e.g. moving nodes around
between lists, erasing a node from not the end of the vector, etc).
With a profile build of analyze, this speeds up BU DS from 25.14s to
12.59s on 176.gcc. I expect that it would help TD even more, but I don't
have data for it.
This effectively eliminates removeIdenticalCalls and children from the
profile, going from 6.53 to 0.27s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19939 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-30 23:51:02 +00:00
Chris Lattner
bca81448ac
Improve conformance with the Misha spelling benchmark suite
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19930 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-30 00:09:23 +00:00
Chris Lattner
3cf8e6857e
Adjust to ilist changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19923 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-29 18:41:12 +00:00
Chris Lattner
d5af7c4df6
Add some methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19817 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-24 19:55:34 +00:00
Jeff Cohen
2611dd4448
Get lib/Analysis/DataStructure to compile with VC++
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19412 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-09 04:18:28 +00:00
Chris Lattner
833408d484
Move method out of line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18666 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-08 21:04:10 +00:00
Chris Lattner
033a7d5389
Substantially cleanup/speedup the eq graphs pass by walking the callgraph
...
a DSGraph at a time instead of a function at a time. This is also more
correct, though it doesn't seem to fix any programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-02 17:51:11 +00:00
Chris Lattner
4457f7ea46
Remove more dead methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17413 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 21:07:05 +00:00
Chris Lattner
dddc13f986
Delete a dead method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17412 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 21:04:47 +00:00
Chris Lattner
fcb7d950bc
Rename FoldedGraph -> DSInfo to be consistent with other passes
...
delete some dead methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17410 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 21:02:23 +00:00
Chris Lattner
77408b8987
Get rid of the EquivClassGraphArgsInfo class, and the map that held it.
...
We only need one instance of the vector that it contains at a time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17407 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 20:37:00 +00:00
Chris Lattner
68f9658fcb
Eliminate the cloneGraph method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17405 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-01 19:54:06 +00:00
Chris Lattner
31d3f671be
* Do not refer to ActualCallees in CBU, when we can do it locally.
...
* *DO NOT* print CBU graphs when asked to print our own. This is just
FREAKING confusing and misleading: it's better to not print anything.
* Simplify and clean up some code
* Add some more paranoia assertion checking code that I found to track
down this bug:
* Fix a nasty bug that was causing us to crash on Prolangs-C++/objects,
where we were missing processing some graphs. This hunk is the bugfix:
- if (!I->isExternal() && !FoldedGraphsMap.count(I))
+ if (!I->isExternal() && !ValMap.count(I))
urg!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17386 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:41:26 +00:00
Chris Lattner
4bbf3dfbe6
Simplify graph traversal, improve grammar
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17383 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 23:01:34 +00:00
Chris Lattner
ab8544aa75
Do not do horrible things to the CBU graphs. In particular, we do NOT own
...
the CBU graphs, copy them instead of hacking on the CBU graphs.
Also, instead of forwarding request from ECGraphs clients to the CBU graphs
clients, service them ourselves.
Finally, remove a broken "optimization"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17378 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-31 21:56:11 +00:00
Chris Lattner
5b3ed508f6
Add an assertion and a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17353 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-30 04:03:47 +00:00
Chris Lattner
1fca5ff62b
Convert 'struct' to 'class' in various places to adhere to the coding standards
...
and work better with VC++. Patch contributed by Morten Ofstad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-27 16:14:51 +00:00
Chris Lattner
b12914bfc0
'Pass' should now not be derived from by clients. Instead, they should derive
...
from ModulePass. Instead of implementing Pass::run, then should implement
ModulePass::runOnModule.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:48:05 +00:00
Chris Lattner
d55c9bf318
Adjust to API changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16429 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20 04:35:27 +00:00
Chris Lattner
5148b63329
Adjust to #include movage
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16329 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-14 04:08:41 +00:00
Reid Spencer
551ccae044
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01 22:55:40 +00:00
Chris Lattner
8adbec89ce
Headers moved
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14665 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:35:22 +00:00
Chris Lattner
6c49989b3e
Move DSA headers into Analysis/DataStructure to make it more obvious
...
what is implemented by the DataStructure library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14662 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:29:26 +00:00
Chris Lattner
efffdc9408
As much as I hate to say it, the whole setNode interface for DSNodeHandles
...
is HOPELESSLY broken. The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.
As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call. This fixes some obscure bugs
handling non-forwarded node handles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14660 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07 06:12:52 +00:00
Vikram S. Adve
c5204fb6f8
Complete rewrite of the code that merges DS graphs for equivalence classes
...
of functions called at a common call site. The rewrite inlines the
resulting graphs bottom-up on the SCCs of the CBU call graph. It also
simplifies the merging of equivalence classes by exploiting the fact that
functions in non-trivial SCCs are already merged.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13645 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 07:54:02 +00:00
Vikram S. Adve
44860ccaf2
Fix size/offset assertion to allow negative offsets and folded nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13644 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23 07:34:53 +00:00
Misha Brukman
dd298c8c6e
Doxygenified and cleand up comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12294 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-11 23:08:20 +00:00