Chris Lattner
3f7905bdec
Add definitions for TEST instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6498 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01 01:56:39 +00:00
Chris Lattner
8d8e0c6e83
Add new cmovne32 instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6496 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01 00:05:15 +00:00
Chris Lattner
a92dc19397
Fix bug: CBackend/2003-05-31-MissingStructName.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6495 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 23:30:52 +00:00
Chris Lattner
8afdc7de1c
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6494 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 23:27:10 +00:00
Chris Lattner
c16e631e94
Fix bug: FunctionResolve/2003-05-31-AllInternalDecls.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6486 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:57:06 +00:00
Chris Lattner
3ce0ea8fd8
Add support for: -o -
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6485 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:47:16 +00:00
Chris Lattner
eea93839eb
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6484 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:33:08 +00:00
Chris Lattner
8a143e8810
New testcase for behavior we depend on.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6483 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:14:45 +00:00
Chris Lattner
12ce59d3c5
Fix bug: FuncResolve/2003-05-31-InternalDecl.ll
...
Count resolutions correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6482 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:08:45 +00:00
Chris Lattner
cfea29ff6d
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6481 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 21:04:39 +00:00
Chris Lattner
40c4959e9f
Simplify funcresolve a bit more
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6480 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 20:44:46 +00:00
Chris Lattner
567cceea49
Fix bug: FunctionResolve/2003-05-31-FuncPointerResolve.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6479 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 20:33:31 +00:00
Chris Lattner
87a09562d5
Add another testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6478 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 20:33:09 +00:00
Chris Lattner
c036cfafe0
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6477 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 20:21:13 +00:00
Tanya Lattner
658c5bcdb2
Fixed comment width, changed arg to be const, fixed indentation, removed unnecessary includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6476 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 20:01:37 +00:00
Chris Lattner
39698a5e55
* Correct title
...
* Give credit to John for making the page
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6475 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 19:55:19 +00:00
John Criswell
0a0d0dcc4d
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6474 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 16:46:21 +00:00
Vikram S. Adve
3fd7bf4257
Made a single common InvalidRegNum = -1.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6473 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:44:07 +00:00
Vikram S. Adve
2263df029a
Renamed a variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6472 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:43:41 +00:00
Vikram S. Adve
9f495b54fa
Support for annul/pred and other future flags on op codes.
...
Support for recording the physical register for implcit references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6471 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:43:01 +00:00
Vikram S. Adve
5cdb12f958
Minor changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6470 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:41:54 +00:00
Vikram S. Adve
f3d3ca18b5
Added MachineCodeForInstruction object as an argument to
...
TmpInstruction constructors because every TmpInstruction object has
to be registered with a MachineCodeForInstruction to prevent leaks.
This simplifies the user's code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6469 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:41:24 +00:00
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
7952d6088e
Changes to allow explicit physical register arguments that have been
...
preallocated. While reg-to-reg dependences were already handled, this
change required new code for adding edges to/from call instructions.
This was part of the extensive changes to the way code generation occurs
for function call arguments and return values.
See log for CodeGen/PhyRegAlloc.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6467 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:37:05 +00:00
Vikram S. Adve
9635867d6f
Several bug fixes: globals in call operands were not being pulled out;
...
globals in some other places may not have been pulled out either;
globals in phi operands were being put just before the phi instead of
in the predecessor basic blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6466 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:34:57 +00:00
Vikram S. Adve
d0d06ad4f3
Extensive changes to the way code generation occurs for function
...
call arguments and return values:
Now all copy operations before and after a call are generated during
selection instead of during register allocation.
The values are copied to virtual registers (or to the stack), but
in the former case these operands are marked with the correct physical
registers according to the calling convention.
Although this complicates scheduling and does not work well with
live range analysis, it simplifies the machine-dependent part of
register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6465 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:32:01 +00:00
Vikram S. Adve
af9fd51da2
Reverting previous beautification changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6464 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 07:27:17 +00:00
Misha Brukman
f86d635e20
Fixed rewriting of branches -- they now work forward and backward.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6463 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:26:48 +00:00
Misha Brukman
dcbe712841
Removed useless code -- the byte order of output code is correct as is.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6462 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:26:06 +00:00
Misha Brukman
33cc12319c
The 'rd' register is consistently mentioned last in instruction definitions.
...
Created new classes from which instructions inherit their ordering of fields.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6461 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:25:19 +00:00
Misha Brukman
286903909f
* Put back into action SLL/SRL/SRA{r,i}6 instructions
...
* Fixed page numbers referring to the Sparc manual
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6460 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:24:29 +00:00
Misha Brukman
b3fabe0c83
Code beautification, no functional changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6459 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 06:22:37 +00:00
Vikram S. Adve
162421522b
3 more bugs from the SPEC codes and from richards_benchmark.c
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6458 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 04:45:56 +00:00
Misha Brukman
b17343d81e
Enabling some of these passes causes lli to break
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6457 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 04:23:04 +00:00
Misha Brukman
c89d256e95
The actual order of parameters in a 2-reg-immediate assembly instructions is
...
"rs1, imm, rd": most importantly, rd goes last.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6456 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-31 04:22:26 +00:00
Chris Lattner
e236eca7bb
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6454 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 21:03:00 +00:00
Misha Brukman
417a7c06e8
Since malloc is no longer used, no need to free() memory.
...
Fixed BasicBlock patching by supplying correct type for the displacement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6453 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:39:37 +00:00
Misha Brukman
88ba25444c
When converting virtual registers to immediate constants, change the opcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6452 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:36:27 +00:00
Misha Brukman
da3a8b19ce
Added saveBBreferences() for BasicBlock resolution.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6451 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:32:45 +00:00
Misha Brukman
e7800b5458
getValueOp() now takes a MachineInstr as well as a MachineOperand.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6450 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:32:01 +00:00
Misha Brukman
a9f7f6e25d
Added:
...
* ability to save BasicBlock references to be resolved later
* register remappings from the enum values to the real hardware numbers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6449 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:17:33 +00:00
Misha Brukman
f3453d1695
Fixed the namespace to match SparcInternals.h; added notes on some missing
...
sections of instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6448 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:15:59 +00:00
Misha Brukman
d3d97be4d1
The register types need to be visible outside of the class to be useful.
...
For one, converting register numbers based on class in the code emitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6447 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:12:42 +00:00
Misha Brukman
7b647942ef
Moved and expanded convertOpcodeFromRegToImm() to conver more opcodes.
...
Code beautification for the rest of the code: changed layout to match the rest
of the code base.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6446 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:11:56 +00:00
Misha Brukman
d1ef7a816e
Make LLI behave just like LLC with regard to the compile passes it uses.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6444 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 20:00:13 +00:00
Chris Lattner
42ed21b151
Add SRoA pass to gccas
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:24:06 +00:00
Chris Lattner
4dc3535e7a
Move indvars pass after mem2reg pass where it is more likely to be useful
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:23:10 +00:00
Chris Lattner
b37923f9a1
Okay totally give up on trying to optimize aggregates that cannot be completely
...
broken up into their elements. Too many programs break because of this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6440 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:22:14 +00:00
Misha Brukman
ed36fd8da6
Made the register and immediate versions of instructions consecutive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6439 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:14:01 +00:00
Chris Lattner
26d2ca1d13
add a check that allows the SRoA pass to avoid breaking programs, even if their
...
behavior is technically undefined
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6438 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 18:09:57 +00:00