Commit Graph

1158 Commits

Author SHA1 Message Date
Chris Lattner
8013f9eb65 Add hasGraph() methods to all of the passes for the printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:53:19 +00:00
Chris Lattner
5c533ae837 Implement swapping
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4674 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:48:24 +00:00
Chris Lattner
a3590f2496 Implement support for swapping. Callsites now sort by callee
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4673 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:48:11 +00:00
Chris Lattner
431412735b Add capability to set a preference of what call vector is printed to dot files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4672 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:47:35 +00:00
Chris Lattner
d8d97ce857 Fix a problem where bad graphs could be generated
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4671 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:47:03 +00:00
Chris Lattner
f40f0a39bd 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4666 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 22:07:02 +00:00
Chris Lattner
aa0b468f6d Add globals graphs to all three passes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4663 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 21:12:07 +00:00
Chris Lattner
dc26d45c71 Move maskNodeTypes from cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4662 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 21:02:30 +00:00
Chris Lattner
65f2897f2c Clean up DSGraph::removeDeadNodes interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4660 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 21:00:49 +00:00
Chris Lattner
3ce235a161 Make removeTriviallyDeadNodes a private interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4658 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 20:55:04 +00:00
Chris Lattner
2e4f9bf86e Add initial support for a globals graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4656 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 20:01:01 +00:00
Chris Lattner
b07869b386 Remove unneccesary #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4653 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 19:24:41 +00:00
Chris Lattner
24b3a880df Remove GlobalDSGraph delcaration
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4652 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 19:21:56 +00:00
Chris Lattner
1fa48e9d32 Fix release build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4647 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09 00:48:52 +00:00
Chris Lattner
2c8b1f6fc6 Add new methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4646 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 23:22:48 +00:00
Chris Lattner
02fd6870c1 Add another option to cloneGraph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4641 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 22:28:55 +00:00
Chris Lattner
fb39933b75 - Add support for an "auxillary" call site list
- Original call sites are now never modified after construction by the local
  pass.
- DSGraph::cloneInto can now optionally not clone the call sites
- BUDataStructures no longer has a ton of book-keeping info for a broken
  implementation of the TD data structures


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4631 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 21:24:51 +00:00
Chris Lattner
a9a93f3777 Add a method "getMainFunction()" that efficiently locates 'main' in a module
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4629 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 20:34:02 +00:00
Chris Lattner
b16fb0db91 Use DSNodeHandle for persistent maps
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4623 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 05:03:37 +00:00
Chris Lattner
df2f35ee2b Add flag that may be used to determine if dead nodes are used. It's temporary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4620 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 01:22:26 +00:00
Vikram S. Adve
2e4f37ac42 Restore a #include because this header file needs the definitions
of DSCallSite::~DSCallSite and DSNodeHandle::~DSNodeHandle.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08 00:23:23 +00:00
Chris Lattner
0ed8e2a862 Add interfaces for ResolveCallSiteModRefInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4601 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-07 07:11:49 +00:00
Chris Lattner
460ea29b45 Instead of using a bool that constant has to be explained, use a self
explanitory enum instead.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4600 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-07 07:06:20 +00:00
Chris Lattner
cee3a4ef10 Add new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4598 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-07 06:30:17 +00:00
Chris Lattner
04781177b9 Expose isPointerType to clients of dsanalysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4597 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-07 05:21:15 +00:00
Chris Lattner
17e43de579 Add a comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4586 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 23:26:21 +00:00
Chris Lattner
4476ceb414 Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes,
implement the mod/ref bit masking


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4578 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 19:59:33 +00:00
Chris Lattner
268748a0d8 Add a stub to implement the context sensitive mod/ref info for call sites
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4577 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 19:38:43 +00:00
Chris Lattner
2110808fd8 Give a back pointer to the IPModRef object to the FunctionModRefInfo object
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4576 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 19:07:13 +00:00
Chris Lattner
76351e9bab Remove a couple of #includes, move some code to .cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4574 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 18:38:10 +00:00
Chris Lattner
45a9116e0a Make maxSize a private variable, add a size() accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4573 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 18:34:40 +00:00
Chris Lattner
ce4a2e1132 Make PointerShift/Size be enums so they are constants instead of globals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4571 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 18:02:26 +00:00
Vikram S. Adve
75310d59c9 Make query operations non-const to allow demand-driven analyses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4569 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 17:17:55 +00:00
Vikram S. Adve
5f76054a79 An implementation of the bit-vector representation of sets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4568 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 17:14:14 +00:00
Vikram S. Adve
895c0bd3fb An interprocedural analysis pass that computes flow-insensitive
IP Mod and Ref information for every function and every call site.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4567 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 17:02:03 +00:00
Vikram S. Adve
db7ab14434 Add const version of function getNodeForValue:
const DSNodeHandle &getNodeForValue(Value *V) const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4566 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 17:00:41 +00:00
Chris Lattner
08db719c4b Dramatically simplify internal DSNode representation, get implementation
*FULLY OPERATIONAL* and safe.  We are now capable of completely analyzing
at LEAST the Olden benchmarks + 181.mcf


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4562 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 06:20:27 +00:00
Chris Lattner
4268c93b00 Remove stripscalars argument to cloneInto
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4561 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-06 06:18:56 +00:00
Chris Lattner
55d77d9a3f Add a bunch of assertions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4549 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 23:59:41 +00:00
Chris Lattner
b7843a4f57 Allow memory sizes to be negative, eliminate TmpRSS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4539 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 19:20:09 +00:00
Vikram S. Adve
5fe9171b38 Generic graph iterator to enumerate the SCCs of a graph
in linear time using Tarjan's DFS algorithm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4531 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 14:15:57 +00:00
Chris Lattner
7e5f46a441 Implement methods needed to print out call graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4522 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 02:53:39 +00:00
Chris Lattner
1650015822 Allow the call graph to be called from analyze naturally with print implemented
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4517 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-04 00:21:19 +00:00
Chris Lattner
c875f023d4 Rename ValueMap to ScalarMap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4516 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-03 21:27:48 +00:00
Chris Lattner
d18f342af8 Rename NewNode flag to HeapNode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4515 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-03 21:24:04 +00:00
Chris Lattner
36aff6ec2d Check in header file that was missing, thus broke the build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4513 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-03 19:24:49 +00:00
Misha Brukman
0d05e6d942 Fixed comment on top of DSNode.h, added note to DSSupport.h as to why
functions were split out from DSNode class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4509 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-02 21:18:53 +00:00
Chris Lattner
5af344d79d Implement the "unknown flag" which mainly consists of aligning printing code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4490 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-02 00:36:03 +00:00
Chris Lattner
332043264e * Eliminate Scalar node type (renumber other node types)
* Allow DSNodeHandle::mergeWith to work if a node handle isn't pointing to a node yet


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4487 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-02 00:11:12 +00:00
Chris Lattner
e3aa8aa08f Eliminate some unneccesary #includes and forward decls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4475 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 21:24:10 +00:00