Chris Lattner
f2da7241f5
New isAssociative/isCommutative inspection methods, graciously contributed by
...
Casey Carter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4459 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 04:14:01 +00:00
Chris Lattner
4932b31dce
Statistic class should return const reference to *this, not a reference to
...
the data type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4458 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:50:27 +00:00
Chris Lattner
a24e09df76
Add interface to update domfrontier info, thanks to Casey Carter for impl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4456 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 02:39:48 +00:00
Vikram S. Adve
601899d196
Bug fix: need to initialize new CallArgsDescriptor pointer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4453 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 20:38:49 +00:00
Vikram S. Adve
8f211a4ab0
Bug fix in setting an implicit ref.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4452 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 20:38:16 +00:00
Chris Lattner
9cc361579b
Allow BuildMI that helps automate construction of SSA information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4443 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:48:41 +00:00
Chris Lattner
75e961ae6b
* Add new "Target Specific Flags" field to instruction descriptor
...
* Rename iclass to Flags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4439 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:06:53 +00:00
Chris Lattner
478df7a7ae
Add new optional getRegisterInfo to TargetMachine
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4436 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:53:02 +00:00
Chris Lattner
fa78fbf446
Add support for structured printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4432 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:46:48 +00:00
Chris Lattner
dea73839f6
Improve comments, add methods for structured printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4431 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:46:31 +00:00
Chris Lattner
8815c79ea4
Add method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4428 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:40:30 +00:00
Chris Lattner
7db458fb07
Add capability to have machine instruction autoinsert when it is created
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4424 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:18:23 +00:00
Misha Brukman
81619b121c
Fixed spelling of `propagation'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4422 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:55:11 +00:00
Chris Lattner
272ba1d0ad
Eliminate virtual methods that are sparc specific
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4419 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 22:01:26 +00:00
Chris Lattner
c56406c236
* Privatize the TargetName
...
* Move optSizeForSubWordData to TargetData
* Remove unused fields
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4417 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:48:17 +00:00
Chris Lattner
6334205cb5
Allow TargetMachine to refuse static code gen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4415 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 21:12:46 +00:00
Chris Lattner
a74db854a3
Rename Sparc.h to TargetMachineImpls.h. Add hook for X86 target
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4412 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:51:29 +00:00
Chris Lattner
5c1b5244b9
Add hook for JIT compiler
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4411 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:51:10 +00:00
Chris Lattner
5f9a61a598
Move to TargetMachineImpls.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4405 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:44:18 +00:00
Chris Lattner
ba64363562
Merge with sparc backend
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4403 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:10:58 +00:00
Chris Lattner
c1f49e4b35
Merge to MachineInstrInfo.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4402 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:10:19 +00:00
Chris Lattner
35c9a6ded7
X86 merge complete, eliminate dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4401 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:07:50 +00:00
Chris Lattner
495fe2e087
X86 merge is complete, eliminate unused code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4400 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 20:07:16 +00:00
Vikram S. Adve
a2bae305fb
Remove separate vector of implicit refs from MachineInstr, and
...
instead record them as extra operands in the operands[] vector.
Also, move CallArgsDescriptor into this class instead of making it an
annotation on the machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4399 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 19:41:18 +00:00
Vikram S. Adve
e68a3435ee
Move CallArgsDescriptor into this class instead of making it an
...
annotation on the machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4398 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 19:38:46 +00:00
Chris Lattner
f1757c414c
Move TargetInstrDescriptors extern to the one .cpp file that refers to it:
...
MachineInstr.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4392 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:40:30 +00:00
Chris Lattner
4683f9bfb4
Rename opCodeString to Name, add new getName() method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4388 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:35:09 +00:00
Chris Lattner
e30eeaaf72
Rename MachineInstrInfo::getDescriptor to MachineInstrInfo::get
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4387 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:26:26 +00:00
Chris Lattner
ad3136fee4
Remove old entrypoint
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4385 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:15:01 +00:00
Chris Lattner
898c72b4d8
Remove unneeded #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4384 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:14:10 +00:00
Chris Lattner
770feb4bfc
De-inline methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4379 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 16:50:33 +00:00
Chris Lattner
97d688515e
Remove unneeded #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4377 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 16:50:06 +00:00
Chris Lattner
28760f4e77
Make assertIGNode be private to the InterferenceGraph.cpp file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4375 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 16:42:34 +00:00
Chris Lattner
9979895976
Remove unneccesary #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4374 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 16:34:12 +00:00
Chris Lattner
4b28abb57f
Delete unused header file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4373 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 16:32:08 +00:00
Chris Lattner
d020801aea
MachineInstrInfo doesn't need a TargetMachine member
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4371 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 15:44:40 +00:00
Chris Lattner
de0e87bb83
Minor cleanups, remove noncopyable so dot doesn't cluster unrelated stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4365 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 23:54:23 +00:00
Chris Lattner
2cc214c06c
Strip a bunch of #includes from the file, move some virtual functions to
...
.cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4364 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 23:53:56 +00:00
Chris Lattner
534124d0e3
Inline some code from the cpp file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4363 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 23:53:32 +00:00
Chris Lattner
9ed63ee0fc
Minor comment updates
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4361 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 21:43:42 +00:00
Chris Lattner
f0136b376e
Initial checkin of MachineInstrBuilder class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4360 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 21:31:48 +00:00
Chris Lattner
9a8e4121aa
Remove all traces of the "Opcode Mask" field in the MachineInstr class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4359 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 21:17:20 +00:00
Chris Lattner
b98a53f201
Remove more default arguments that are never used
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4358 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 21:02:40 +00:00
Chris Lattner
7279122e66
Remove default operands that are never used
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4357 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 20:59:49 +00:00
Chris Lattner
413746e983
* Make MachineOperand ctors private, so MachineOperand can only be created
...
by MachineInstr.
* Add a bunch of new methods to allow incremental addition of operands to the
machine instr instance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4356 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 20:48:39 +00:00
Misha Brukman
d5806ffb40
Iterator functions now line up together.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4350 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 19:58:38 +00:00
Chris Lattner
2f305989b3
Remove two arguments that are never specified
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4348 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 19:46:59 +00:00
Chris Lattner
335d5c399b
s/method/function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4338 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 05:58:46 +00:00
Chris Lattner
d0aa0cdbc6
Change MachineBasicBlock's to not be Annotations, instead they are kept as
...
part of a linked list tracked by MachineFunction. MachineBasicBlock::get
is now linear time instead of constant time, and thus is deprecated!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4337 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 05:30:46 +00:00
Chris Lattner
c7e65fb7d8
* s/unsigned int/unsigned
...
* Make MachineInstrDescriptor only keep a const char * instead of a string
for the opcode name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4335 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:55:56 +00:00
Chris Lattner
c188b733ba
Make scheduling class variables be 'unsigned' instead of 'int'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4334 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:53:18 +00:00
Chris Lattner
1294a7e936
Remove typedef that is unneccesary
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4332 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:50:01 +00:00
Chris Lattner
133f079c8c
Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4331 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:45:29 +00:00
Chris Lattner
6d6c3f8618
Add new getOperandType(i) method to MachineInstr
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4330 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:30:20 +00:00
Chris Lattner
572f5c8c0c
Fairly major overhaul of MachineInstr & Operand classes
...
- Inline methods that are mostly a single line anyway
- Eliminate several methods that were never called
- Group methods a bit more consistently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4329 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 04:24:49 +00:00
Chris Lattner
054c1f6cb6
Make MachineInstr.h not #include MachineInstrInfo.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4328 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:29:46 +00:00
Chris Lattner
67e4132caa
Remvoe a bunch of unneeded forward decls
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4326 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:27:07 +00:00
Chris Lattner
4a63b72df9
Don't #include <Support/*>, #include "Support/*"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4325 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:11:53 +00:00
Chris Lattner
8e7ae9860b
Add BasicBlock list to MchineFunction that will eventually be the only
...
way to access MachineBasicBlocks. For now, it is never filled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4324 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:08:43 +00:00
Chris Lattner
0551f542ab
MachineFunction.h now includes MachineBasicBlock.h in preparation for
...
list changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4321 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:01:06 +00:00
Chris Lattner
506676de32
Remvoe dead fixme and typedef
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4320 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:55:26 +00:00
Chris Lattner
aec11f1dec
MachineBasicBlock doesn't need basicblock.h, it needs Annotation.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4319 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:53:00 +00:00
Chris Lattner
92eba0c49b
Rename file to MachineBasicBlock.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4316 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:39:21 +00:00
Chris Lattner
9c6342d0cc
Add note about state that should be removed when time permits
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4315 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:27:51 +00:00
Chris Lattner
a4f808b54e
Fixes to previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4314 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:27:30 +00:00
Chris Lattner
51a8d85281
Inline some methods from .cpp files into .h files, minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4313 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:21:55 +00:00
Chris Lattner
e42a84f64f
Add prototypes for creation/destruction passes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4309 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:11:58 +00:00
Chris Lattner
ebb1af16be
* Doxygenify comments
...
* Move addPassesToEmitAssembly back to Sparc.cpp because it really is
sparc specific
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4306 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:02:24 +00:00
Chris Lattner
09124ab3e2
This header is renamed to MachineFunction.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4304 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 00:45:06 +00:00
Chris Lattner
2fce4132c6
We don't need the forwarding typedef
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4303 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 00:44:09 +00:00
Misha Brukman
fce1143bcf
Changed MachineCodeForMethod' to
MachineFunction'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4301 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 00:28:31 +00:00
Chris Lattner
e4108ae577
Add support or other operand types
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4298 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-27 21:17:45 +00:00
Chris Lattner
e8b5413e5d
Prune #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4295 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-27 20:49:47 +00:00
Chris Lattner
df6f5835e9
Add neccesary #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4294 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-27 19:16:27 +00:00
Chris Lattner
ab77194e2a
Old GCC's don't have an <ostream>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4293 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-27 19:12:37 +00:00
Chris Lattner
9550dc2df2
Add #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4291 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-27 19:08:03 +00:00
Chris Lattner
3d7771a387
Initial checkin of target support for X86 backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4287 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 23:00:40 +00:00
Chris Lattner
d4dec05036
Initial checkin of Machine Code representation for X86 backend. This will
...
eventually be merged with the sparc backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4286 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 23:00:13 +00:00
Chris Lattner
2ee9aa1072
Fix typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4281 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 22:53:56 +00:00
Chris Lattner
502374a58f
* Remove unneccesary #includes
...
* Fix typeo in the (unused) MachineInstrInfo::isArith method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4275 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-24 22:34:41 +00:00
Chris Lattner
37ae4056bb
Minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4267 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-23 01:11:51 +00:00
Chris Lattner
27a08935ca
- Two minor improvements to the MachineInstr class to reduce footprint and
...
overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a
bitvector. Sped up LLC a little less than 10% in a debug build!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4261 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 23:16:21 +00:00
Chris Lattner
3ec9a0a5cf
We need to know the call sites each function hosts
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4258 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 15:58:23 +00:00
Chris Lattner
0e6949fe1c
Allow modification of callee
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4257 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 15:57:58 +00:00
Chris Lattner
1a33e6eb74
Small space optimization: Make MachineOperands take 16 bytes instead of
...
20 on intel or 24 on sparc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4256 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 00:15:13 +00:00
Chris Lattner
cb2610ea03
- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to
...
setPreservesCFG to be less confusing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4255 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 20:00:28 +00:00
Chris Lattner
e4ae3041f9
Delete unused arguments to DSGraph::cloneInto method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4253 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 19:50:29 +00:00
Chris Lattner
198be22cec
- Add "ResolvingCaller" to the CallSite record. This keeps track of which
...
function was finally able to resolve the function call. Adding this allows
the TD pass to actually work right!
- Temporarily disable dead node pruning. This will be reenabled soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4252 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 19:47:18 +00:00
Chris Lattner
eff0da9d33
Add another copy ctor form
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 15:32:34 +00:00
Chris Lattner
99a22847ba
As it turns out, we don't need a fully generic mapping copy ctor, we just need
...
something that maps through a std::map. Since this simplified the client and
implementation code, do so now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4250 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 15:04:18 +00:00
Chris Lattner
2bf30fd65a
Make sure to initialize isArray member
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4247 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:38:07 +00:00
Chris Lattner
756a55000b
Remove a 'using' directives from a header file. Using directives cause
...
global changes, so aren't good for headers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4245 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:24:50 +00:00
Chris Lattner
c5819944a2
Add a missing std:: qualifier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4244 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:23:42 +00:00
Chris Lattner
b0a37b70e8
Two callsites are equivalent even if they are from two completely different
...
call instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4241 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 02:09:03 +00:00
Chris Lattner
0969c50cb8
- Make DSCallSite not inherit from std::vector. Renamed methods slightly.
...
Make copy ctor have two versions to avoid dealing with conditional template
argument. DSCallSite ctor now takes all arguments instead of taking one
and being populated later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4240 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 02:08:03 +00:00
Vikram S. Adve
26b98265b7
Remove spurious caller pointer in DSCallSite.
...
Also add functions to access pointer argument nodes cleanly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4235 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 21:41:02 +00:00
Chris Lattner
d9faa34339
Add isArray flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4230 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 20:28:35 +00:00
Vikram S. Adve
3c579faece
Added a first-class representation for each call site that can be
...
used in the DS graphs in DSGraph.h. With that, the special-purpose
class BUDataStructure::CallSite is no longer needed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4229 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 18:08:55 +00:00
Vikram S. Adve
726bafda65
Added a first-class representation for each call site that can be used
...
in the DS graphs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4227 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 18:04:43 +00:00
Chris Lattner
a3f8586d9d
Convert typerec to be a structure instead of a pair
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4226 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-18 18:22:46 +00:00
Chris Lattner
137d399fae
Don't emit braces around something without outgoing edges
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4225 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-18 14:55:44 +00:00
Chris Lattner
b65dfff141
Add interface for mod/ref info to be captures by dsgraphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4222 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 21:03:49 +00:00
Chris Lattner
8d00c8210e
* Add data structures to BU pass to keep track of call sites for functions
...
* Reenable the TD analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4212 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:23:05 +00:00
Chris Lattner
a2c5c2b23a
* Remove a lot of obsolete #if 0'd code
...
* Add a simple getNodeForValue method to access the ValueMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4211 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:22:16 +00:00
Chris Lattner
375b8e5128
Use the forward declaration for GraphTraits instead of #including
...
the header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4210 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 01:36:08 +00:00
Chris Lattner
8ebb1c4023
Be const correct. Handle both DSGraph* and const DSGraph*'s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4208 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 01:01:06 +00:00
Chris Lattner
dc05fffe2b
Break up the GraphWriter into smaller chunks to be used in different ways
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4207 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 00:59:59 +00:00
Chris Lattner
a16adb7dd2
As wierd as it feels to type it, const void* is more generic than void*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4206 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 00:16:39 +00:00
Joel Stanley
61315bc367
Added partial specialization of GraphTraits for the DominatorTree class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4205 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 23:26:00 +00:00
Chris Lattner
7be17dd233
Allow simple nodes to have outgoing edges
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4202 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 20:15:38 +00:00
Chris Lattner
96f5493100
* Factor printing code again, add emitSimpleNode method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4198 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 02:03:18 +00:00
Chris Lattner
834a9d12f3
* Add new DOTGraphTraits::addCustomGraphFeatures method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4197 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:44:59 +00:00
Chris Lattner
ff5feedf28
The second element of the iterator is really an offset, not a link
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4196 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:43:11 +00:00
Chris Lattner
8c836ce4f8
* Significantly refactor GraphWriter into a class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4194 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:34:18 +00:00
Chris Lattner
63a32de776
- Generic graph printing infrastructure changes:
...
* Only print outgoing edges from a cell if the destination isn't null.
This is important for DSGraphs, which have sources with no edges.
* Allow Node attributes to override shape of the node
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4192 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:18:14 +00:00
Chris Lattner
d6d8f41699
Allow direct access to mergemap for printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4191 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:17:16 +00:00
Chris Lattner
0dad6e9c95
- Eliminate SymbolTable::ParentSymTab, ST::localLookup, and
...
Function::ParentSymTab. These aren't needed at all.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4186 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-15 21:26:29 +00:00
Chris Lattner
85131c8277
- Add an endianness field to the TargetData datastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4174 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-14 22:41:13 +00:00
Vikram S. Adve
efc9433960
Removed misleading const keyword.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4169 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-14 16:32:24 +00:00
Chris Lattner
34048e2ace
- Dramatically simplify the Constant::mutateReferences implementation,
...
allowing it to be called on all constant types (structures/arrays)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4160 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-14 03:30:23 +00:00
Chris Lattner
0b16ae209a
- Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to
...
reflect the fact that it's a range being defined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4147 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 19:39:16 +00:00
Chris Lattner
2576aef32b
First crack at reimplementing graph traits for DSGraphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4145 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 19:31:34 +00:00
Chris Lattner
d063725c3c
disable the unused "pointer" member
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4144 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 19:30:44 +00:00
Chris Lattner
b38e4fd8b0
Add dummy entries to document what members can be added
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4141 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 17:12:05 +00:00
Vikram S. Adve
5aefcad35b
Use vectors instead of hash_maps for issueGaps and conflictLists.
...
These hash lookups were a major sink of time because they happen so often!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4136 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 00:37:46 +00:00
Misha Brukman
a27229013f
Added capability to get execution count of a loop if it is a predictable
...
number of iterations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4113 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11 05:34:32 +00:00
Misha Brukman
6b290a5440
Added helper functions in LoopInfo: isLoopExit and numBackEdges.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4112 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11 05:31:10 +00:00
Chris Lattner
f77b57097d
Expose API to graph library to allow iteration over all nodes, even unreachable ones
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4111 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-10 22:31:31 +00:00
Chris Lattner
ab363148fb
Change reference
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4110 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-10 22:31:02 +00:00
Chris Lattner
f6516da9b3
* Don't only print out reachable nodes in the graph.
...
* use new api to get all nodes in the graph
* Allow custom graph traits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4109 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-10 22:29:51 +00:00
Chris Lattner
e9812838ee
Add new getGraphProperties that may be specialized by graphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4108 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-10 22:29:10 +00:00
Chris Lattner
c582c66f63
Rename DataStructureGraph.h to DSGraphTraits.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4107 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-10 20:36:37 +00:00
Chris Lattner
c251f9e0ae
- Add new Constant::replaceUsesOfWithOnConstant which has an end result
...
similar to User::replaceUsesOfWith but actually does the right thing for
constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4102 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 23:12:25 +00:00
Chris Lattner
4bbd839d10
Make isExtern() be a virtual function inherited from GlobalValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4101 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 23:11:33 +00:00
Chris Lattner
806fd40074
- Detemplatize UseTy<> in Value.h, because it's only instantiated for one
...
type!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4093 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 00:42:03 +00:00
Chris Lattner
4e5e2edf6a
- Remove Value::use_push_back & Value::use_remove
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4089 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 00:25:01 +00:00
Chris Lattner
fe3c2e006d
By default PHINode::removeIncomingValue will delete the phi node if the last
...
incoming value is deleted!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4076 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:31:56 +00:00
Chris Lattner
e802a023d9
Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 21:06:27 +00:00
Chris Lattner
7ca266fe1f
Expose new "recalculate" method from dominatorset
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4074 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-08 19:12:08 +00:00
Chris Lattner
9106a58806
Don't rotate paper.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4066 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 22:37:03 +00:00
Chris Lattner
95b923d548
- Allow printing generic LLVM graphs to 'dot' files, so they can be
...
visualized easily.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4061 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 18:37:10 +00:00
Chris Lattner
8f1717f697
Fix bug in last checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4058 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 17:13:22 +00:00
Chris Lattner
5554a1de08
Implement operator= for SuccIterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4055 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-07 16:53:22 +00:00
Chris Lattner
ac8a58d500
- Add new isExternal() method to GlobalVariable to mirror Function.
...
- doxygenize comments and add new comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4046 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-06 22:29:58 +00:00
Chris Lattner
b0d0f5b473
The wall clock timer (implementing using the RTC or cycle counter on x86) is
...
so much more accurate than the per process timers that we get better results
(less noise) by sorting according to wall time than process time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4034 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03 21:08:20 +00:00
Chris Lattner
0d0244d06a
Remove commented out stuff
...
DataStructure.h doesn't include DSGraph.h now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4028 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 22:14:17 +00:00
Chris Lattner
60a398ed0f
Move GlobalDSGraph class defn to the end of the file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4027 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 21:55:52 +00:00
Chris Lattner
e5346ec9ed
This file doesn't need Pass.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4026 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 21:55:24 +00:00
Chris Lattner
27236ac089
* Implement fully general merging of array subscripts on demand! This
...
does not handle the initial pointer index case yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4011 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 06:24:29 +00:00
Chris Lattner
8b719877b1
Checkin the "meat" of the Data structure graph itself. I forgot to check
...
this in before. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4009 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 04:58:12 +00:00