Vikram S. Adve
d44e2577de
Bug fix: need to initialize new CallArgsDescriptor pointer.
...
llvm-svn: 4453
2002-10-30 20:38:49 +00:00
Vikram S. Adve
beba0cd579
Bug fix in setting an implicit ref.
...
llvm-svn: 4452
2002-10-30 20:38:16 +00:00
Chris Lattner
be221c6013
Allow BuildMI that helps automate construction of SSA information
...
llvm-svn: 4443
2002-10-30 01:48:41 +00:00
Chris Lattner
19f27845eb
* Add new "Target Specific Flags" field to instruction descriptor
...
* Rename iclass to Flags
llvm-svn: 4439
2002-10-30 01:06:53 +00:00
Chris Lattner
c7854f4c8f
Add new optional getRegisterInfo to TargetMachine
...
llvm-svn: 4436
2002-10-30 00:53:02 +00:00
Chris Lattner
55da33fe73
Add support for structured printing
...
llvm-svn: 4432
2002-10-30 00:46:48 +00:00
Chris Lattner
4430feb9b5
Improve comments, add methods for structured printing
...
llvm-svn: 4431
2002-10-30 00:46:31 +00:00
Chris Lattner
e78186b693
Add method
...
llvm-svn: 4428
2002-10-29 23:40:30 +00:00
Chris Lattner
82a3299cf1
Add capability to have machine instruction autoinsert when it is created
...
llvm-svn: 4424
2002-10-29 23:18:23 +00:00
Misha Brukman
453ccb15f5
Fixed spelling of `propagation'.
...
llvm-svn: 4422
2002-10-29 22:55:11 +00:00
Chris Lattner
87eb530014
Eliminate virtual methods that are sparc specific
...
llvm-svn: 4419
2002-10-29 22:01:26 +00:00
Chris Lattner
5d798b7887
* Privatize the TargetName
...
* Move optSizeForSubWordData to TargetData
* Remove unused fields
llvm-svn: 4417
2002-10-29 21:48:17 +00:00
Chris Lattner
eec571dce8
Allow TargetMachine to refuse static code gen
...
llvm-svn: 4415
2002-10-29 21:12:46 +00:00
Chris Lattner
cc026ad4fc
Rename Sparc.h to TargetMachineImpls.h. Add hook for X86 target
...
llvm-svn: 4412
2002-10-29 20:51:29 +00:00
Chris Lattner
8d372a1161
Add hook for JIT compiler
...
llvm-svn: 4411
2002-10-29 20:51:10 +00:00
Chris Lattner
16081ceef1
Move to TargetMachineImpls.h
...
llvm-svn: 4405
2002-10-29 20:44:18 +00:00
Chris Lattner
fc88414ffd
Merge with sparc backend
...
llvm-svn: 4403
2002-10-29 20:10:58 +00:00
Chris Lattner
2859640d1c
Merge to MachineInstrInfo.h
...
llvm-svn: 4402
2002-10-29 20:10:19 +00:00
Chris Lattner
fdbc0f40ce
X86 merge complete, eliminate dead code
...
llvm-svn: 4401
2002-10-29 20:07:50 +00:00
Chris Lattner
0ac25d509c
X86 merge is complete, eliminate unused code
...
llvm-svn: 4400
2002-10-29 20:07:16 +00:00
Vikram S. Adve
4acb69b4ea
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.
llvm-svn: 4399
2002-10-29 19:41:18 +00:00
Vikram S. Adve
1730a958ea
Move CallArgsDescriptor into this class instead of making it an
...
annotation on the machine instruction.
llvm-svn: 4398
2002-10-29 19:38:46 +00:00
Chris Lattner
b49e35e745
Move TargetInstrDescriptors extern to the one .cpp file that refers to it:
...
MachineInstr.cpp
llvm-svn: 4392
2002-10-29 17:40:30 +00:00
Chris Lattner
4c00b1bb14
Rename opCodeString to Name, add new getName() method
...
llvm-svn: 4388
2002-10-29 17:35:09 +00:00
Chris Lattner
4cb6ebc9a1
Rename MachineInstrInfo::getDescriptor to MachineInstrInfo::get
...
llvm-svn: 4387
2002-10-29 17:26:26 +00:00
Chris Lattner
b4ee80190b
Remove old entrypoint
...
llvm-svn: 4385
2002-10-29 17:15:01 +00:00
Chris Lattner
8feac53561
Remove unneeded #include
...
llvm-svn: 4384
2002-10-29 17:14:10 +00:00
Chris Lattner
0493b81eef
De-inline methods
...
llvm-svn: 4379
2002-10-29 16:50:33 +00:00
Chris Lattner
4aba455989
Remove unneeded #include
...
llvm-svn: 4377
2002-10-29 16:50:06 +00:00
Chris Lattner
0cff6f7e16
Make assertIGNode be private to the InterferenceGraph.cpp file
...
llvm-svn: 4375
2002-10-29 16:42:34 +00:00
Chris Lattner
54eff4bcba
Remove unneccesary #include
...
llvm-svn: 4374
2002-10-29 16:34:12 +00:00
Chris Lattner
0a2b3a9a7b
Delete unused header file
...
llvm-svn: 4373
2002-10-29 16:32:08 +00:00
Chris Lattner
8869c9be36
MachineInstrInfo doesn't need a TargetMachine member
...
llvm-svn: 4371
2002-10-29 15:44:40 +00:00
Chris Lattner
d5faf681bb
Minor cleanups, remove noncopyable so dot doesn't cluster unrelated stuff
...
llvm-svn: 4365
2002-10-28 23:54:23 +00:00
Chris Lattner
dce27e5927
Strip a bunch of #includes from the file, move some virtual functions to
...
.cpp file
llvm-svn: 4364
2002-10-28 23:53:56 +00:00
Chris Lattner
d5953f5c63
Inline some code from the cpp file
...
llvm-svn: 4363
2002-10-28 23:53:32 +00:00
Chris Lattner
be89ca4b5a
Minor comment updates
...
llvm-svn: 4361
2002-10-28 21:43:42 +00:00
Chris Lattner
8727a8f2d1
Initial checkin of MachineInstrBuilder class
...
llvm-svn: 4360
2002-10-28 21:31:48 +00:00
Chris Lattner
566b2147f9
Remove all traces of the "Opcode Mask" field in the MachineInstr class
...
llvm-svn: 4359
2002-10-28 21:17:20 +00:00
Chris Lattner
11f52470a0
Remove more default arguments that are never used
...
llvm-svn: 4358
2002-10-28 21:02:40 +00:00
Chris Lattner
990e074c2e
Remove default operands that are never used
...
llvm-svn: 4357
2002-10-28 20:59:49 +00:00
Chris Lattner
de6ac9b0ff
* 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.
llvm-svn: 4356
2002-10-28 20:48:39 +00:00
Misha Brukman
0daac26c02
Iterator functions now line up together.
...
llvm-svn: 4350
2002-10-28 19:58:38 +00:00
Chris Lattner
74f9160190
Remove two arguments that are never specified
...
llvm-svn: 4348
2002-10-28 19:46:59 +00:00
Chris Lattner
f2cd0a8266
s/method/function
...
llvm-svn: 4338
2002-10-28 05:58:46 +00:00
Chris Lattner
7cdc2977f0
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!
llvm-svn: 4337
2002-10-28 05:30:46 +00:00
Chris Lattner
c32337fb08
* s/unsigned int/unsigned
...
* Make MachineInstrDescriptor only keep a const char * instead of a string
for the opcode name.
llvm-svn: 4335
2002-10-28 04:55:56 +00:00
Chris Lattner
ec393ff469
Make scheduling class variables be 'unsigned' instead of 'int'
...
llvm-svn: 4334
2002-10-28 04:53:18 +00:00
Chris Lattner
a215fe71ce
Remove typedef that is unneccesary
...
llvm-svn: 4332
2002-10-28 04:50:01 +00:00
Chris Lattner
e309cdbc95
Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType()
...
llvm-svn: 4331
2002-10-28 04:45:29 +00:00
Chris Lattner
a7cfe8ccb5
Add new getOperandType(i) method to MachineInstr
...
llvm-svn: 4330
2002-10-28 04:30:20 +00:00
Chris Lattner
7000bbb63f
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
llvm-svn: 4329
2002-10-28 04:24:49 +00:00
Chris Lattner
824d112715
Make MachineInstr.h not #include MachineInstrInfo.h
...
llvm-svn: 4328
2002-10-28 02:29:46 +00:00
Chris Lattner
10a01c1620
Remvoe a bunch of unneeded forward decls
...
llvm-svn: 4326
2002-10-28 02:27:07 +00:00
Chris Lattner
a7e9d3e90f
Don't #include <Support/*>, #include "Support/*"
...
llvm-svn: 4325
2002-10-28 02:11:53 +00:00
Chris Lattner
daf162b45a
Add BasicBlock list to MchineFunction that will eventually be the only
...
way to access MachineBasicBlocks. For now, it is never filled.
llvm-svn: 4324
2002-10-28 02:08:43 +00:00
Chris Lattner
2b2fbdf33c
MachineFunction.h now includes MachineBasicBlock.h in preparation for
...
list changes.
llvm-svn: 4321
2002-10-28 02:01:06 +00:00
Chris Lattner
85e7d46739
Remvoe dead fixme and typedef
...
llvm-svn: 4320
2002-10-28 01:55:26 +00:00
Chris Lattner
46509e42f8
MachineBasicBlock doesn't need basicblock.h, it needs Annotation.h
...
llvm-svn: 4319
2002-10-28 01:53:00 +00:00
Chris Lattner
cd476842d3
Rename file to MachineBasicBlock.h
...
llvm-svn: 4316
2002-10-28 01:39:21 +00:00
Chris Lattner
384e13e39c
Add note about state that should be removed when time permits
...
llvm-svn: 4315
2002-10-28 01:27:51 +00:00
Chris Lattner
310d9124e3
Fixes to previous checkin
...
llvm-svn: 4314
2002-10-28 01:27:30 +00:00
Chris Lattner
4f2c612b21
Inline some methods from .cpp files into .h files, minor cleanups
...
llvm-svn: 4313
2002-10-28 01:21:55 +00:00
Chris Lattner
d711c00823
Add prototypes for creation/destruction passes
...
llvm-svn: 4309
2002-10-28 01:11:58 +00:00
Chris Lattner
8e5f672533
* Doxygenify comments
...
* Move addPassesToEmitAssembly back to Sparc.cpp because it really is
sparc specific
llvm-svn: 4306
2002-10-28 01:02:24 +00:00
Chris Lattner
ecbd9d640d
This header is renamed to MachineFunction.h
...
llvm-svn: 4304
2002-10-28 00:45:06 +00:00
Chris Lattner
778ffa3786
We don't need the forwarding typedef
...
llvm-svn: 4303
2002-10-28 00:44:09 +00:00
Misha Brukman
142795fd17
Changed MachineCodeForMethod' to
MachineFunction'.
...
llvm-svn: 4301
2002-10-28 00:28:31 +00:00
Chris Lattner
e9a1ab1e0a
Add support or other operand types
...
llvm-svn: 4298
2002-10-27 21:17:45 +00:00
Chris Lattner
2bc0fd8115
Prune #includes
...
llvm-svn: 4295
2002-10-27 20:49:47 +00:00
Chris Lattner
8f38efd9dd
Add #include
...
llvm-svn: 4291
2002-10-27 19:08:03 +00:00
Chris Lattner
4eae2fc3ad
Initial checkin of target support for X86 backend.
...
llvm-svn: 4287
2002-10-25 23:00:40 +00:00
Chris Lattner
65c82a0310
Initial checkin of Machine Code representation for X86 backend. This will
...
eventually be merged with the sparc backend.
llvm-svn: 4286
2002-10-25 23:00:13 +00:00
Chris Lattner
7a26bbcc83
Fix typo
...
llvm-svn: 4281
2002-10-25 22:53:56 +00:00
Chris Lattner
5ae74dd3ef
* Remove unneccesary #includes
...
* Fix typeo in the (unused) MachineInstrInfo::isArith method
llvm-svn: 4275
2002-10-24 22:34:41 +00:00
Chris Lattner
e68a9a15dd
Minor cleanups
...
llvm-svn: 4267
2002-10-23 01:11:51 +00:00
Chris Lattner
dfc8fbf16b
- 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!
llvm-svn: 4261
2002-10-22 23:16:21 +00:00
Chris Lattner
58781838b7
We need to know the call sites each function hosts
...
llvm-svn: 4258
2002-10-22 15:58:23 +00:00
Chris Lattner
535d54ef22
Allow modification of callee
...
llvm-svn: 4257
2002-10-22 15:57:58 +00:00
Chris Lattner
1fb6129889
Small space optimization: Make MachineOperands take 16 bytes instead of
...
20 on intel or 24 on sparc
llvm-svn: 4256
2002-10-22 00:15:13 +00:00
Chris Lattner
b565d3ac5b
- Rename AnalysisUsage::preservesAll to getPreservesAll & preservesCFG to
...
setPreservesCFG to be less confusing.
llvm-svn: 4255
2002-10-21 20:00:28 +00:00
Chris Lattner
1157e5dafb
Delete unused arguments to DSGraph::cloneInto method
...
llvm-svn: 4253
2002-10-21 19:50:29 +00:00
Chris Lattner
4410178282
- 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.
llvm-svn: 4252
2002-10-21 19:47:18 +00:00
Chris Lattner
7588e35aa8
Add another copy ctor form
...
llvm-svn: 4251
2002-10-21 15:32:34 +00:00
Chris Lattner
1276c50e7b
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.
llvm-svn: 4250
2002-10-21 15:04:18 +00:00
Chris Lattner
f8b59c1c75
Make sure to initialize isArray member
...
llvm-svn: 4247
2002-10-21 13:38:07 +00:00
Chris Lattner
eed53d4b81
Remove a 'using' directives from a header file. Using directives cause
...
global changes, so aren't good for headers.
llvm-svn: 4245
2002-10-21 13:24:50 +00:00
Chris Lattner
cd13b5e27f
Add a missing std:: qualifier
...
llvm-svn: 4244
2002-10-21 13:23:42 +00:00
Chris Lattner
ca982e6b42
Two callsites are equivalent even if they are from two completely different
...
call instructions
llvm-svn: 4241
2002-10-21 02:09:03 +00:00
Chris Lattner
2914391ab6
- 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.
llvm-svn: 4240
2002-10-21 02:08:03 +00:00
Vikram S. Adve
85a358583f
Remove spurious caller pointer in DSCallSite.
...
Also add functions to access pointer argument nodes cleanly.
llvm-svn: 4235
2002-10-20 21:41:02 +00:00
Chris Lattner
9c264543b5
Add isArray flag
...
llvm-svn: 4230
2002-10-20 20:28:35 +00:00
Vikram S. Adve
32689f8214
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.
llvm-svn: 4229
2002-10-20 18:08:55 +00:00
Vikram S. Adve
2a6ec82970
Added a first-class representation for each call site that can be used
...
in the DS graphs.
llvm-svn: 4227
2002-10-20 18:04:43 +00:00
Chris Lattner
efc251af3d
Convert typerec to be a structure instead of a pair
...
llvm-svn: 4226
2002-10-18 18:22:46 +00:00
Chris Lattner
d9b76794a0
Add interface for mod/ref info to be captures by dsgraphs
...
llvm-svn: 4222
2002-10-17 21:03:49 +00:00
Chris Lattner
68ac171c62
* Add data structures to BU pass to keep track of call sites for functions
...
* Reenable the TD analysis
llvm-svn: 4212
2002-10-17 04:23:05 +00:00
Chris Lattner
bb28060fb4
* Remove a lot of obsolete #if 0'd code
...
* Add a simple getNodeForValue method to access the ValueMap.
llvm-svn: 4211
2002-10-17 04:22:16 +00:00
Chris Lattner
80332e579c
Use the forward declaration for GraphTraits instead of #including
...
the header
llvm-svn: 4210
2002-10-17 01:36:08 +00:00
Chris Lattner
df9733a0a1
Be const correct. Handle both DSGraph* and const DSGraph*'s
...
llvm-svn: 4208
2002-10-17 01:01:06 +00:00