Chris Lattner
7d47b6c164
MachineOperand:
...
- Add getParent() accessors.
- Move SubReg out of the AuxInfo union, to make way for future changes.
- Remove the getImmedValue/setImmedValue methods.
- in some MachineOperand::Create* methods, stop initializing fields that are dead.
MachineInstr:
- Delete one copy of the MachineInstr printing code, now there is only one dump
format and one copy of the code.
- Make MachineOperand use the parent field to get info about preg register names if
no target info is otherwise available.
- Move def/use/kill/dead flag printing to the machineoperand printer, so they are
always printed for an operand.
llvm-svn: 45460
2007-12-30 21:31:53 +00:00
Chris Lattner
d6051f028d
make machine operands fatter: give each one an up-pointer to the
...
machineinstr that owns it.
llvm-svn: 45449
2007-12-30 06:11:04 +00:00
Chris Lattner
9a820ae865
split machineoperand out into its own header file.
...
llvm-svn: 45445
2007-12-30 04:40:25 +00:00
Chris Lattner
ed584991ba
remove unneeded #includes.
...
llvm-svn: 45439
2007-12-30 01:11:43 +00:00
Chris Lattner
0331a3297f
remove a bunch of now-dead methods.
...
llvm-svn: 45438
2007-12-30 01:04:05 +00:00
Chris Lattner
171f5ea6c4
make offset operand optional.
...
llvm-svn: 45434
2007-12-30 00:50:55 +00:00
Chris Lattner
4d0361fbf2
Shrinkify the machine operand creation method names.
...
llvm-svn: 45433
2007-12-30 00:45:46 +00:00
Chris Lattner
8b6d0b0fab
1. Make a static MachineOperand::create* method for every
...
operand type.
2. Move these create methods below the accessors.
3. Simplify all the MachineInstr::add* methods to use these.
llvm-svn: 45430
2007-12-30 00:29:19 +00:00
Chris Lattner
e868c77f16
simplify some code by factoring operand construction better.
...
llvm-svn: 45428
2007-12-30 00:12:25 +00:00
Chris Lattner
e0b1ee937a
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change. Boy are my fingers tired. ;-)
llvm-svn: 45411
2007-12-29 19:59:42 +00:00
Evan Cheng
50d29ebb6b
Shrinkfy.
...
llvm-svn: 44197
2007-11-17 00:31:16 +00:00
Evan Cheng
fd33cb316f
Clean up sub-register implementation by moving subReg information back to
...
MachineOperand auxInfo. Previous clunky implementation uses an external map
to track sub-register uses. That works because register allocator uses
a new virtual register for each spilled use. With interval splitting (coming
soon), we may have multiple uses of the same register some of which are
of using different sub-registers from others. It's too fragile to constantly
update the information.
llvm-svn: 44104
2007-11-14 07:59:08 +00:00
Evan Cheng
2262b2a792
Optionally create a MachineInstr without default implicit operands.
...
llvm-svn: 42945
2007-10-13 02:23:01 +00:00
Evan Cheng
d11cd4a095
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like
...
(almost) a register copy. However, it always coalesced to the register of the
RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub-
register uses which adds subtle complications to load folding, spiller rewrite,
etc.
llvm-svn: 42899
2007-10-12 08:50:34 +00:00
Dan Gohman
fb60c0dfed
Remove isReg, isImm, and isMBB, and change all their users to use
...
isRegister, isImmediate, and isMachineBasicBlock, which are equivalent,
and more popular.
llvm-svn: 41958
2007-09-14 20:33:02 +00:00
Dan Gohman
53119779c2
Remove spurious consts. This fixes warnings with compilers that
...
are strict about such things.
llvm-svn: 41956
2007-09-14 20:08:19 +00:00
Evan Cheng
0862876c80
Added CreateFrameIndex to create a FrameIndex MachineOperand without a MachineInstr.
...
llvm-svn: 41596
2007-08-30 05:50:32 +00:00
Christopher Lamb
cb63a77a51
Remove subreg index from MachineInstr's and also keep vregs as unsigned when adding operands.
...
llvm-svn: 40514
2007-07-26 07:00:46 +00:00
Dan Gohman
27de646c66
Add keyword explicit.
...
llvm-svn: 37624
2007-06-18 14:11:31 +00:00
Evan Cheng
13a9ca69bc
No longer needed.
...
llvm-svn: 37598
2007-06-15 19:05:13 +00:00
Evan Cheng
d8b25a2091
Add missing const qualifiers.
...
llvm-svn: 37341
2007-05-29 18:35:22 +00:00
Evan Cheng
3b10540b5e
Rename M_PREDICATED to M_PREDICABLE; Move TargetInstrInfo::isPredicatable() to MachineInstr::isPredicable().
...
llvm-svn: 37115
2007-05-16 20:43:42 +00:00
Evan Cheng
eea85a767e
Added getNumExplicitOperands and findFirstPredOperand.
...
llvm-svn: 37064
2007-05-15 01:26:09 +00:00
Nate Begeman
767ee95d29
llvm bug #1350 , parts 1, 2, and 3.
...
llvm-svn: 36618
2007-05-01 05:57:02 +00:00
Evan Cheng
eff332e3e1
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion.
...
llvm-svn: 36483
2007-04-26 19:00:32 +00:00
Evan Cheng
7edd354721
Minor speed tweak.
...
llvm-svn: 36432
2007-04-25 07:24:13 +00:00
Evan Cheng
201771637e
Change findRegisterUseOperand() to return operand index instead.
...
llvm-svn: 35363
2007-03-26 22:37:45 +00:00
Evan Cheng
561bf1736e
Pass IsImp, IsKill, and IsDead to ChangeToRegister.
...
llvm-svn: 34688
2007-02-27 21:06:57 +00:00
Evan Cheng
387f1c2bdf
Use findRegisterUseOperand to find a kill of particular register.
...
llvm-svn: 34512
2007-02-23 01:04:26 +00:00
Evan Cheng
e4ab9c032b
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.
...
llvm-svn: 34428
2007-02-19 21:49:54 +00:00
Reid Spencer
b27fcf3482
For PR1207:
...
Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
llvm-svn: 34399
2007-02-19 03:20:00 +00:00
Evan Cheng
35f59a6dd2
Added findRegisterDefOperand().
...
llvm-svn: 34380
2007-02-17 11:10:18 +00:00
Bill Wendling
7f6a73eb5c
Added an automatic cast to "std::ostream*" etc. from OStream. We then can
...
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
2006-12-17 05:15:13 +00:00
Jeff Cohen
c396e18e8e
The best unbreakage yet, addressing Bill's concerns.
...
llvm-svn: 32622
2006-12-16 02:15:42 +00:00
Jeff Cohen
03161dd132
An even better unbreakage...
...
llvm-svn: 32617
2006-12-15 22:57:14 +00:00
Jeff Cohen
0c3a14bea7
Complete unbreak of VC++ (Chris identified the simple fix).
...
llvm-svn: 32615
2006-12-15 22:06:08 +00:00
Bill Wendling
a3246c4272
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Evan Cheng
59494f9e3d
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand().
...
llvm-svn: 32273
2006-12-06 08:27:42 +00:00
Evan Cheng
cb65ba1821
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode.
...
- Remove the ugly TargetInstrDescriptors hack.
llvm-svn: 32032
2006-11-30 07:08:44 +00:00
Bill Wendling
4157840bd6
Added a temporary hack to get the llvm-streams to work for future checkins.
...
llvm-svn: 31978
2006-11-28 22:21:29 +00:00
Evan Cheng
98fa7ab4d7
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead
...
of opcode and number of operands.
llvm-svn: 31947
2006-11-27 23:37:22 +00:00
Chris Lattner
31f45746ad
setOperand should not zap the operand list or add implicit operands to an
...
instruction. Doing so breaks the FP stackifier, the alpha branch selector
the sparc fpmover.
This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll
llvm-svn: 31876
2006-11-20 17:57:22 +00:00
Chris Lattner
3a34164b82
Implement operator<< for machine basic blocks to make it easier to dump them.
...
llvm-svn: 31857
2006-11-18 21:47:36 +00:00
Evan Cheng
40fe5349ea
ChangeToRegister should clear IsImp bit.
...
llvm-svn: 31772
2006-11-15 23:55:03 +00:00
Evan Cheng
21b524d10f
Add copyKillDeadInfo to copy kill / dead info; other minor updates.
...
llvm-svn: 31758
2006-11-15 20:48:17 +00:00
Evan Cheng
7cabf9d02c
- Let MachineInstr ctors add implicit def and use operands. Other operands
...
will be inserted before these operands. If the opcode changes (by
setOpcode), the implicit operands are updated as well.
- Added IsKill, IsDead fields to MachineOperand in preparation for changes
that move kill / dead info to MachineInstr's.
llvm-svn: 31711
2006-11-13 23:34:06 +00:00
Evan Cheng
7dab9abfb8
Add methods to add implicit def use operands to a MI.
...
llvm-svn: 31675
2006-11-11 10:20:02 +00:00
Jim Laskey
900444d686
Shut up the warning.
...
llvm-svn: 31635
2006-11-10 14:44:12 +00:00
Evan Cheng
b5ca73688b
Add implicit def / use operands to MachineInstr.
...
llvm-svn: 31632
2006-11-10 08:32:14 +00:00
Chris Lattner
bcd43c46ab
add a method for hacking on JTIdx's
...
llvm-svn: 31270
2006-10-28 18:18:36 +00:00