Chris Lattner
837ab8fcf6
Remove dead methods
...
llvm-svn: 15698
2004-08-12 18:37:15 +00:00
Chris Lattner
f25f80a0b3
Fix warning
...
llvm-svn: 15697
2004-08-12 18:36:28 +00:00
Chris Lattner
2fb2b0517a
Instead of a virtual method call, lets try a direct constant reference
...
llvm-svn: 15696
2004-08-12 18:29:05 +00:00
Chris Lattner
f5f45868a7
Virtual method calls are overrated
...
llvm-svn: 15695
2004-08-12 18:20:55 +00:00
Chris Lattner
a2d1e8f290
Virtual method calls are overrated.
...
llvm-svn: 15694
2004-08-12 18:20:41 +00:00
Chris Lattner
5ba5260225
Forward substitute some constants into their users
...
llvm-svn: 15693
2004-08-12 18:10:18 +00:00
Chris Lattner
8d142c6f87
The only target that uses this code (v9) always has argsOnStackHaveFixedSize
...
set to true (obviously)
llvm-svn: 15692
2004-08-12 18:06:35 +00:00
Chris Lattner
8af864daa3
Remove dead methods
...
llvm-svn: 15691
2004-08-12 17:58:27 +00:00
Chris Lattner
ad0a1f3eee
When we want a constant, just use it, instead of calling through layers of
...
virtual methods and register name mapping functions
llvm-svn: 15690
2004-08-12 17:56:01 +00:00
Misha Brukman
f2c87f4794
Disable PPC64 backend by default because LLC cannot choose automatically between
...
SparcV9 and PowerPC64 without target triples, since they are both 64-bit
big-endian targets.
llvm-svn: 15688
2004-08-12 17:16:43 +00:00
Chris Lattner
32ad5d0bab
This patch makes the inliner refuse to inline functions that have alloca
...
instructions in the body of the function (not the entry block). This fixes
test/Programs/SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c
and test/Programs/External/SPEC/CINT2000/176.gcc on zion.
This should obviously be pulled into 1.3.
llvm-svn: 15684
2004-08-12 05:45:09 +00:00
Misha Brukman
bf93b04c17
* Correct 64-bit version: blr 1 (not 0)
...
* BuildMI() can build 0-param instructions (e.g., NOP)
llvm-svn: 15681
2004-08-12 03:30:03 +00:00
Misha Brukman
e281f3a2ac
* Print out full names for non-GPR or -FPR registers
...
* BuildMI() really *does* handle 0 params!
llvm-svn: 15680
2004-08-12 03:28:47 +00:00
Chris Lattner
85e2339cfa
Fix code extraction of unwind blocks. This fixed bugs that bugpoint can
...
run into. This should go into 1.3
llvm-svn: 15679
2004-08-12 03:17:02 +00:00
Misha Brukman
2851d39ec4
* Pointers are 8 bytes, hence cLong type on 64-bit PPC
...
* Fix loading of GlobalValues
llvm-svn: 15678
2004-08-12 02:53:01 +00:00
Misha Brukman
8bcb04dd35
Eliminate special-casing 14-bit immediate load/store opcodes
...
llvm-svn: 15677
2004-08-12 02:51:38 +00:00
Chris Lattner
430578a835
Hrm, this pass didn't compile. This bugfix should go into 1.3!
...
llvm-svn: 15676
2004-08-12 02:44:23 +00:00
Chris Lattner
8966ce8f41
If the block extractor fails, actually emit the bc file that failed to extract
...
llvm-svn: 15675
2004-08-12 02:36:50 +00:00
Misha Brukman
1149a822a2
Correctly print out ASCII literal strings on AIX
...
llvm-svn: 15674
2004-08-12 01:01:13 +00:00
Misha Brukman
d9b3a360fc
Mark R2 as available for allocation on Darwin/PPC32, but not AIX/PPC64
...
llvm-svn: 15673
2004-08-12 00:10:01 +00:00
Misha Brukman
14bf47d0d9
* Move AIX into the llvm namespace to be accessed from RegisterInfo
...
* Mark InstrInfo with 32 vs. 64 bit flag
* Enable the 64-bit isel and asm printer
llvm-svn: 15672
2004-08-11 23:47:08 +00:00
Misha Brukman
c24851b980
Set the is64bit flag and propagate it to PowerPCRegisterInfo
...
llvm-svn: 15671
2004-08-11 23:45:43 +00:00
Misha Brukman
42e53e4d94
* Set the is64bit boolean flag in PowerPCRegisterInfo
...
* Doubles are 8 bytes in 64-bit PowerPC, and use the general register class
* Use double-word loads and stores for restoring from/saving to stack
* Do not allocate R2 if compiling for AIX
llvm-svn: 15670
2004-08-11 23:44:55 +00:00
Misha Brukman
fc82624aab
64-bit instruction selector and AIX-specific 64-bit asm printer
...
llvm-svn: 15669
2004-08-11 23:42:15 +00:00
Misha Brukman
0b67e02e9c
Fix names of 64-bit CMP*D* opcodes, add LWA and STD* opcodes
...
llvm-svn: 15668
2004-08-11 23:33:34 +00:00
Misha Brukman
08b8a09113
Add support for 64-bit CMPDI, CMPLDI, and CMPLD opcodes
...
llvm-svn: 15667
2004-08-11 20:56:14 +00:00
Misha Brukman
7325a6c790
Add doubleword load/store (64-bit only).
...
llvm-svn: 15665
2004-08-11 15:54:36 +00:00
Misha Brukman
d34a40864a
Simple hand-coded tests to aid in early development of backends, along with a
...
Makefile to run ad-hoc tests easily.
llvm-svn: 15664
2004-08-11 14:16:34 +00:00
Misha Brukman
1f4fb14301
Hyphenate ##-bit and remove first-person from comments.
...
llvm-svn: 15663
2004-08-11 13:35:44 +00:00
Nate Begeman
6120e8f04f
Clean up 32/64bit and Darwin/AIX split. Next steps: 64 bit ISel, AIX asm printer.
...
llvm-svn: 15662
2004-08-11 07:40:04 +00:00
Chris Lattner
2903154b98
Fix a case where constantexprs could leak into the PPC isel.
...
llvm-svn: 15661
2004-08-11 07:34:50 +00:00
Chris Lattner
5e7e9b6c26
Remove a bunch of ad-hoc target-specific flags that were only used by the
...
old asmprinter.
llvm-svn: 15660
2004-08-11 07:12:04 +00:00
Chris Lattner
b09bc9d4e3
Remove a dead method
...
llvm-svn: 15659
2004-08-11 07:07:14 +00:00
Chris Lattner
3fc9d4490c
Finally, the entire instruction asmprinter is now generated from tblgen, woo!
...
llvm-svn: 15658
2004-08-11 07:02:04 +00:00
Chris Lattner
3cef2f82ff
Add asmprintergen support for the last X86 instruction that needs it: pcrelative calls.
...
llvm-svn: 15657
2004-08-11 06:59:12 +00:00
Chris Lattner
309873fed0
This file is long dead
...
llvm-svn: 15656
2004-08-11 06:55:12 +00:00
Chris Lattner
9c171be048
Scrunch memoperands, add a few more for floating point memops
...
Eliminate the FPI*m classes, converting them to use FPI instead.
llvm-svn: 15655
2004-08-11 06:50:10 +00:00
Chris Lattner
f34003128d
Move hacks up
...
llvm-svn: 15654
2004-08-11 06:09:55 +00:00
Chris Lattner
b287047c3f
Make FPI take asm string and operand list
...
llvm-svn: 15653
2004-08-11 05:54:16 +00:00
Chris Lattner
c304bf7e03
Nuke the Im*i* patterns, by asmprintergenifying all users.
...
llvm-svn: 15652
2004-08-11 05:31:07 +00:00
Chris Lattner
65ab459759
X86 instructions that read-modify-write memory are not LLVM two-address instructions.
...
llvm-svn: 15651
2004-08-11 05:07:25 +00:00
Chris Lattner
384711a69c
Get rid of the Im8, Im16, Im32 classes, converting more instructions over to
...
asmprintergeneration
llvm-svn: 15650
2004-08-11 04:31:00 +00:00
Chris Lattner
a86411806a
Fix minor bug in previous checkin
...
llvm-svn: 15649
2004-08-11 04:08:36 +00:00
Nate Begeman
c07b78eaa2
Fix 255.vortex by using getClassB instead of getClass
...
llvm-svn: 15648
2004-08-11 03:30:55 +00:00
Chris Lattner
24279a8ac8
Remove dead method
...
llvm-svn: 15647
2004-08-11 02:26:39 +00:00
Chris Lattner
b66b9cd4a9
Convert asmprinter to new style of instruction printer
...
Start asmprintergen'ifying machine instrs with memory operands.
llvm-svn: 15646
2004-08-11 02:25:00 +00:00
Chris Lattner
0f301f495b
change how we invoke the printer. Instead of passing in the MO directly,
...
pass in the MI, operand number, and the type of the operand.
llvm-svn: 15645
2004-08-11 02:23:23 +00:00
Chris Lattner
a88aec6972
Start parsing more information from the Operand information
...
llvm-svn: 15644
2004-08-11 02:22:39 +00:00
Chris Lattner
c8ac0bf803
Remove special case hacks
...
llvm-svn: 15643
2004-08-11 01:53:58 +00:00
Chris Lattner
27e1f4f412
Fill out immediate operand classes, add a new Operand class
...
llvm-svn: 15642
2004-08-11 01:53:34 +00:00