Chris Lattner
b51a2857f2
Finish enumating code
...
llvm-svn: 4726
2002-11-17 22:33:54 +00:00
Chris Lattner
4bc444f503
Remove unused methods
...
llvm-svn: 4720
2002-11-17 22:14:22 +00:00
Chris Lattner
16b1ec97f0
Convert to use an enum to access def/use/use&def information. These make
...
reading code much easier than just seeing "true, false" especially when
default parameters default one but not both arguments.
llvm-svn: 4717
2002-11-17 21:56:10 +00:00
Chris Lattner
dcfed3413d
Return const refefrences to enable default construction
...
llvm-svn: 4713
2002-11-17 21:02:42 +00:00
Brian Gaeke
492e05ba01
include/llvm/CodeGen/MachineInstrBuilder.h: Add addClobber() inline
...
convenience method. Fix typo in comment.
lib/Target/X86/InstSelectSimple.cpp: Explicitly specify some implicit uses.
Use MOVZX/MOVSX instead of MOV instructions with sign extend instructions.
Take out LEAVE instructions.
32-bit IDIV and DIV use CDQ, not CWQ (CWQ is a typo).
Fix typo in comment and remove some FIXME comments.
lib/Target/X86/Printer.cpp: Include X86InstrInfo.h and llvm/Function.h.
Add some simple code to Printer::runOnFunction to iterate over
MachineBasicBlocks and call X86InstrInfo::print().
lib/Target/X86/X86InstrInfo.def: Make some more instructions with
implicit defs "Void". Add more sign/zero extending "move" insns
(movsx, movzx).
lib/Target/X86/X86RegisterInfo.def: Add EFLAGS as a register.
llvm-svn: 4707
2002-11-14 22:32:30 +00:00
Chris Lattner
57e3d39384
Remove dead method, add new method
...
llvm-svn: 4700
2002-11-12 15:57:28 +00:00
Chris Lattner
2ecb91e1c1
Almost complete rewrite of BU closure code
...
llvm-svn: 4693
2002-11-11 21:34:34 +00:00
Chris Lattner
47457c43f4
add method
...
llvm-svn: 4686
2002-11-10 23:47:02 +00:00
Chris Lattner
aaabf591d2
Add code to be able to merge two call sites
...
llvm-svn: 4685
2002-11-10 23:46:51 +00:00
Chris Lattner
db1822a429
Add hasGraph() methods to all of the passes for the printer
...
llvm-svn: 4676
2002-11-10 06:53:19 +00:00
Chris Lattner
7cb6ecd396
Implement swapping
...
llvm-svn: 4674
2002-11-10 06:48:24 +00:00
Chris Lattner
fbfba19b2f
Implement support for swapping. Callsites now sort by callee
...
llvm-svn: 4673
2002-11-10 06:48:11 +00:00
Chris Lattner
667b09146f
Add capability to set a preference of what call vector is printed to dot files
...
llvm-svn: 4672
2002-11-10 06:47:35 +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
0752756a6a
Add globals graphs to all three passes
...
llvm-svn: 4663
2002-11-09 21:12:07 +00:00
Chris Lattner
c2eca7c7bc
Move maskNodeTypes from cpp file
...
llvm-svn: 4662
2002-11-09 21:02:30 +00:00
Chris Lattner
e726eb5ea7
Clean up DSGraph::removeDeadNodes interface
...
llvm-svn: 4660
2002-11-09 21:00:49 +00:00
Chris Lattner
f17ffc0cc5
Make removeTriviallyDeadNodes a private interface
...
llvm-svn: 4658
2002-11-09 20:55:04 +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
0db8dff751
Remove unneccesary #include
...
llvm-svn: 4653
2002-11-09 19:24:41 +00:00
Chris Lattner
a81c52f557
Remove GlobalDSGraph delcaration
...
llvm-svn: 4652
2002-11-09 19:21:56 +00:00
Chris Lattner
fa3cdfdcf7
Fix release build
...
llvm-svn: 4647
2002-11-09 00:48:52 +00:00
Chris Lattner
15e2b6ddb9
Add new methods
...
llvm-svn: 4646
2002-11-08 23:22:48 +00:00
Chris Lattner
a6520dea5c
Add another option to cloneGraph
...
llvm-svn: 4641
2002-11-08 22:28:55 +00:00
Chris Lattner
5f0b273a70
- 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
llvm-svn: 4631
2002-11-08 21:24:51 +00:00
Chris Lattner
2698f71007
Add a method "getMainFunction()" that efficiently locates 'main' in a module
...
llvm-svn: 4629
2002-11-08 20:34:02 +00:00
Chris Lattner
de23b0e031
Use DSNodeHandle for persistent maps
...
llvm-svn: 4623
2002-11-08 05:03:37 +00:00
Chris Lattner
9330d88b02
Add flag that may be used to determine if dead nodes are used. It's temporary
...
llvm-svn: 4620
2002-11-08 01:22:26 +00:00
Vikram S. Adve
8ad057e4ec
Restore a #include because this header file needs the definitions
...
of DSCallSite::~DSCallSite and DSNodeHandle::~DSNodeHandle.
llvm-svn: 4616
2002-11-08 00:23:23 +00:00
Chris Lattner
adac673c17
Add interfaces for ResolveCallSiteModRefInfo
...
llvm-svn: 4601
2002-11-07 07:11:49 +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
aa7b1a3e3a
Add new method
...
llvm-svn: 4598
2002-11-07 06:30:17 +00:00
Chris Lattner
48a0cb745d
Expose isPointerType to clients of dsanalysis
...
llvm-svn: 4597
2002-11-07 05:21:15 +00:00
Chris Lattner
9bcd1e1b61
Add a comment
...
llvm-svn: 4586
2002-11-06 23:26:21 +00:00
Chris Lattner
9870fb032e
Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes,
...
implement the mod/ref bit masking
llvm-svn: 4578
2002-11-06 19:59:33 +00:00
Chris Lattner
f7e839f435
Add a stub to implement the context sensitive mod/ref info for call sites
...
llvm-svn: 4577
2002-11-06 19:38:43 +00:00
Chris Lattner
00de4338dc
Give a back pointer to the IPModRef object to the FunctionModRefInfo object
...
llvm-svn: 4576
2002-11-06 19:07:13 +00:00
Chris Lattner
a90e3aa6b2
Remove a couple of #includes, move some code to .cpp file
...
llvm-svn: 4574
2002-11-06 18:38:10 +00:00
Chris Lattner
09a2cc9a4a
Make PointerShift/Size be enums so they are constants instead of globals
...
llvm-svn: 4571
2002-11-06 18:02:26 +00:00
Vikram S. Adve
201d4e3639
Make query operations non-const to allow demand-driven analyses.
...
llvm-svn: 4569
2002-11-06 17:17:55 +00:00
Vikram S. Adve
2a1c1171e7
An interprocedural analysis pass that computes flow-insensitive
...
IP Mod and Ref information for every function and every call site.
llvm-svn: 4567
2002-11-06 17:02:03 +00:00
Vikram S. Adve
05cfe7d191
Add const version of function getNodeForValue:
...
const DSNodeHandle &getNodeForValue(Value *V) const.
llvm-svn: 4566
2002-11-06 17:00:41 +00:00
Chris Lattner
d0387e7e11
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
llvm-svn: 4562
2002-11-06 06:20:27 +00:00
Chris Lattner
f1d0314c32
Remove stripscalars argument to cloneInto
...
llvm-svn: 4561
2002-11-06 06:18:56 +00:00
Chris Lattner
c9dc8840ff
Add a bunch of assertions
...
llvm-svn: 4549
2002-11-04 23:59:41 +00:00
Chris Lattner
facce8e131
Implement methods needed to print out call graph
...
llvm-svn: 4522
2002-11-04 02:53:39 +00:00
Chris Lattner
aaf17e11b1
Allow the call graph to be called from analyze naturally with print implemented
...
llvm-svn: 4517
2002-11-04 00:21:19 +00:00
Chris Lattner
8d63aab886
Rename ValueMap to ScalarMap
...
llvm-svn: 4516
2002-11-03 21:27:48 +00:00
Chris Lattner
0ee058644e
Rename NewNode flag to HeapNode
...
llvm-svn: 4515
2002-11-03 21:24:04 +00:00
Chris Lattner
eb49618531
Check in header file that was missing, thus broke the build
...
llvm-svn: 4513
2002-11-03 19:24:49 +00:00