Vikram S. Adve
3497782f38
Allow explicit physical registers for implicit operands.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6468 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:39:06 +00:00
Vikram S. Adve
5f2180c533
(1) Added special register class containing (for now) %fsr.
...
Fixed spilling of %fcc[0-3] which are part of %fsr.
(2) Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
(3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly()
and related functions and flags. Fixed several bugs where only
"isDef" was being checked, not "isDefAndUse".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6341 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-27 00:05:23 +00:00
Chris Lattner
b66fdc2934
Remove obsolete ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5301 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-15 19:47:02 +00:00
Chris Lattner
3501feab81
Rename MachineInstrInfo -> TargetInstrInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:00:31 +00:00
Chris Lattner
8d95ef4973
Add support for 3 new forms of MachineOperand
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5217 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13 00:23:24 +00:00
Chris Lattner
10cb79b484
* Add printing support for FrameIndex operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5194 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28 20:37:37 +00:00
Chris Lattner
2109f502d6
Implement printing of MBB arguments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5053 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-15 20:35:25 +00:00
Chris Lattner
af55be15df
Print is const!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4737 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-17 23:22:13 +00:00
Chris Lattner
570f55de8d
Remove only uses of markDef/markDefAndUse methods
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4719 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-17 22:14:08 +00:00
Chris Lattner
188732c971
Remove fixme
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4447 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 02:02:37 +00:00
Chris Lattner
6a592271fb
Add special code to make printing SSA form machine instructions nicer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 01:55:38 +00:00
Chris Lattner
2a79a0927c
Use MRegisterInfo, if available, to print symbolic register names
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4438 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:58:19 +00:00
Chris Lattner
1049164aa6
Implement structured machine code printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4435 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-30 00:48:05 +00:00
Chris Lattner
ddd7fcb887
Implement autoinserting ctor
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4426 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 23:19:00 +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
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
d9512caca8
Use higher level methods, don't use TargetInstrDescriptors directly!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4389 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-29 17:35:39 +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
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
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
0be79c6c1b
Add #includes now that MachineInstr.h doesn't include llvm/Target/MachineInstrInfo.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4327 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 02:28:39 +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
Vikram S. Adve
e8b57ef260
Add method MachineInstr::replace to rewrite a machine instruction in place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20 00:47:49 +00:00
Vikram S. Adve
8c6936a58b
Dump routine now writes out allocated register numbers if available.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3737 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-16 15:18:53 +00:00
Vikram S. Adve
e2a78e3186
Add method MachineInstr::substituteValue() which substitutes
...
one Value with another one in all operands and implicit references
of the machine instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3306 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-14 16:52:58 +00:00
Chris Lattner
035dfbe7f2
* Removed extraneous #includes
...
* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3278 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 20:08:06 +00:00
Chris Lattner
0c0edf8afc
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3075 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 06:17:51 +00:00
Vikram S. Adve
3bc9ef9317
Add support for marking each operand as a %hh, %hm, %lm or %lo.
...
Represent previous bools and these ones with flags in a single byte
per operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2860 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-10 21:45:04 +00:00
Vikram S. Adve
7a4be9580e
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}.
...
An (explicit or implicit) operand may now be both a def and a use.
Also add a set of regs used by each instruction.
dump() no longer takes an optional argument, which doesn't work in gdb.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-08 22:38:45 +00:00
Vikram S. Adve
93240fe6b1
Improve printing during dumps.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-25 04:31:18 +00:00
Chris Lattner
4d669b510c
s/method/function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2177 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:01:15 +00:00
Vikram S. Adve
c356e565a6
Bug fix in setting CC register.
...
Also use distinct names for the three types of SetMachineOperand
to avoid painful overloading problems and errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1904 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:35:24 +00:00
Chris Lattner
3801f6d383
* Prune #includes
...
* Remove MachineCodeFor(Method|VMInstr) code to their own .cpp files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1649 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:46:01 +00:00
Chris Lattner
697954c15d
Changes to build successfully with GCC 3.02
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-20 22:54:45 +00:00
Chris Lattner
7a17675206
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 00:03:30 +00:00
Ruchira Sasanka
07c7086bd2
Added naming to inserted phi copy values - for easy debugging
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1325 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 20:46:40 +00:00
Vikram S. Adve
7c47c7201d
Modify AllocateLocalVar method to take a size argument.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1318 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15 15:22:26 +00:00
Ruchira Sasanka
8d24337eea
Small changed to printing a machine operand - It the operand is a def, it prints
...
a star after it - only for debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1309 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14 20:05:23 +00:00
Vikram S. Adve
e492c9d4d1
Bug fix in offset alignment computations: don't subtract the padding
...
value from size *before* subtracting size from offset!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1283 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 23:26:23 +00:00
Vikram S. Adve
d9beb975f2
Improved printing routines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1263 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 14:19:47 +00:00
Vikram S. Adve
5567e942c0
Adjust all stack variable offsets to be aligned by size.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1261 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12 05:17:23 +00:00
Vikram S. Adve
f1a0a10813
Fix errors in computing downgrowing offsets, and in
...
computing size of extra outgoing args.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1256 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-11 21:23:33 +00:00
Vikram S. Adve
be49526193
Major overhaul of stack frame management.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 04:47:06 +00:00
Vikram S. Adve
df1c3b8398
Make reg. numbers signed ints.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1137 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05 03:56:02 +00:00
Vikram S. Adve
1d6158f98f
Added class MachineCodeForMethod.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@947 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:51:33 +00:00
Ruchira Sasanka
69917e27af
Added implict operand printing for operator( ostream, MachineInstr&)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@912 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-18 22:40:02 +00:00
Vikram S. Adve
6d35326cd5
1. Add a bottom-up pass on BURG trees that is used to fix constant operands.
...
Needs to be bottom up because constant values may be forward-substituted
to their uses (i.e., into the parent in the BURG tree).
2. Move most of the constant-fixup code into machine-indepedent file
InstrSelectionSupport.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@859 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-17 23:57:50 +00:00
Vikram S. Adve
9aba1d3307
Moved code generation support routines to InstrSelectionSupport.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@717 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-10 20:49:07 +00:00
Chris Lattner
1d87bcf490
Convert more code to use new style casts
...
Eliminate old style casts from value.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 20:11:19 +00:00
Vikram S. Adve
e949da5bb1
Improved dump for disp type operand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@679 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:44:19 +00:00
Vikram S. Adve
6e44718192
Minor changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@613 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-18 12:56:28 +00:00
Ruchira Sasanka
ed8f674b9a
added setRegForValue to MachineOperand class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@591 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-15 19:07:45 +00:00
Chris Lattner
c2a2396e17
Eliminate MainTreeNode function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@550 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 23:22:43 +00:00
Chris Lattner
b221a76386
Fix a bug I introduced (assertion failed: Unknown operand type), and convert to predicate style for type checks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@531 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 19:43:38 +00:00
Chris Lattner
990f2a5a1a
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@524 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 23:01:32 +00:00
Chris Lattner
e6fdb11e1a
Fix problems with freeing memory twice
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@520 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 22:26:29 +00:00
Chris Lattner
56786d268f
Fix build breakage. :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@511 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 19:52:23 +00:00
Chris Lattner
822b4fb896
The header file for a translation unit should always be included first
...
System headers should be last
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@475 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 17:18:30 +00:00
Vikram S. Adve
5b79591450
Moved function PrintMachineInstructions here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@392 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:02:39 +00:00
Vikram S. Adve
149977b48a
Always set isDef for operand in position resultPos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-13 16:32:45 +00:00
Ruchira Sasanka
b0cdcda42a
Changed SetMachineOpernad calls in Set3OperandsFromInstr so that the
...
result position is a def (i.e., added true to the end of call) -- Ruchira
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-13 16:26:28 +00:00
Ruchira Sasanka
0b03c6a492
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-07 21:01:23 +00:00
Ruchira Sasanka
45c171ee25
added a default isDef arg to SetMachineOperand method - Ruchira
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-07 20:16:52 +00:00
Vikram S. Adve
1885da4f49
Allow machine instructions with variable numbers of arguments.
...
This is used only by Phi for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-31 21:49:28 +00:00
Vikram S. Adve
6a175e01eb
Eliminate separate enum for operand register type.
...
Use union for alternative data for different operand types.
Add iterator over Value* operands in a MachineInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 04:06:37 +00:00
Chris Lattner
4bc3daaa3f
Eliminated the Unique class in favor of NonCopyable and NonCopyableV
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 18:26:21 +00:00
Chris Lattner
68498cefe6
Eliminate lots of unnecessary #includes and forward decls
...
there are probably more to kill
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 23:24:48 +00:00
Chris Lattner
7e583cfafe
Renamed include/llvm/Codegen to include/llvm/CodeGen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 20:58:30 +00:00
Vikram S. Adve
70bc4b5d1a
Instruction selection via pattern matching on instruction trees using BURG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 12:41:50 +00:00