oota-llvm.git
18 years agoTeach the addressing mode stuff to fold "%lo" into 'ri' addressing modes,
Chris Lattner [Sun, 18 Dec 2005 02:27:00 +0000 (02:27 +0000)]
Teach the addressing mode stuff to fold "%lo" into 'ri' addressing modes,
allowing us to compile this:

to this:

%G1 = external global int
%G2 = external global int
void %test() {
        %X = load int* %G1
        store int %X, int* %G2
        ret void
}

test:
        save -96, %sp, %sp
        sethi %hi(G1), %l0
        ld [%l0+%lo(G1)], %l0
        sethi %hi(G2), %l1
        st %l0, [%l1+%lo(G2)]
        restore %g0, %g0, %g0
        retl
        nop

instead of this:

test:
        save -96, %sp, %sp
        sethi %hi(G1), %l0
        or %g0, %lo(G1), %l1
        ld [%l1+%l0], %l0
        sethi %hi(G2), %l1
        or %g0, %lo(G2), %l2
        st %l0, [%l2+%l1]
        restore %g0, %g0, %g0
        retl
        nop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24812 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd initial support for global variables, and fix a bug in addr mode selection
Chris Lattner [Sun, 18 Dec 2005 02:10:39 +0000 (02:10 +0000)]
Add initial support for global variables, and fix a bug in addr mode selection
where we didn't select the operands.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24811 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoClaiming that branch targets are registers is not very wholesome. Change them
Chris Lattner [Sun, 18 Dec 2005 01:46:58 +0000 (01:46 +0000)]
Claiming that branch targets are registers is not very wholesome.  Change them
to be basic blocks.  Also, add uncond branches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24810 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd unordered comparisons
Chris Lattner [Sun, 18 Dec 2005 01:41:39 +0000 (01:41 +0000)]
Add unordered comparisons

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24809 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd patterns to the rest of the int condbranches and some of the fp branches
Chris Lattner [Sun, 18 Dec 2005 01:38:19 +0000 (01:38 +0000)]
Add patterns to the rest of the int condbranches and some of the fp branches

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24808 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd initial conditional branch support. This doesn't actually work yet due
Chris Lattner [Sun, 18 Dec 2005 01:20:35 +0000 (01:20 +0000)]
Add initial conditional branch support.  This doesn't actually work yet due
to a bug in the scheduler.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24807 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSimplify code
Chris Lattner [Sun, 18 Dec 2005 01:03:46 +0000 (01:03 +0000)]
Simplify code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24806 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoEliminate CMPri, which is a synonym for SUBCCri
Chris Lattner [Sat, 17 Dec 2005 23:52:08 +0000 (23:52 +0000)]
Eliminate CMPri, which is a synonym for SUBCCri

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24805 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoallow custom expansion of BR_CC
Chris Lattner [Sat, 17 Dec 2005 23:46:46 +0000 (23:46 +0000)]
allow custom expansion of BR_CC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24804 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd fneg,fabs,fsqrt instructions
Chris Lattner [Sat, 17 Dec 2005 23:20:27 +0000 (23:20 +0000)]
add fneg,fabs,fsqrt instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24803 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd patterns for fround/fextend and the funny fsmuld instruction
Chris Lattner [Sat, 17 Dec 2005 23:14:30 +0000 (23:14 +0000)]
Add patterns for fround/fextend and the funny fsmuld instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24802 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd FP +,-,*,/
Chris Lattner [Sat, 17 Dec 2005 23:10:46 +0000 (23:10 +0000)]
Add FP +,-,*,/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24801 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoGive patterns to F3_3 instructions
Chris Lattner [Sat, 17 Dec 2005 23:05:35 +0000 (23:05 +0000)]
Give patterns to F3_3 instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24800 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoImplement 64-bit add/sub, make sure to receive and return 64-bit args with
Chris Lattner [Sat, 17 Dec 2005 22:55:57 +0000 (22:55 +0000)]
Implement 64-bit add/sub, make sure to receive and return 64-bit args with
the right halves in the right regs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24799 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoimplement div and rem
Chris Lattner [Sat, 17 Dec 2005 22:39:19 +0000 (22:39 +0000)]
implement div and rem

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24798 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoimplement MULHU/MULHS for 64-bit multiplies
Chris Lattner [Sat, 17 Dec 2005 22:30:00 +0000 (22:30 +0000)]
implement MULHU/MULHS for 64-bit multiplies

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24797 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd patterns for multiply, simplify Y register handling stuff, add RDY instruction
Chris Lattner [Sat, 17 Dec 2005 22:22:53 +0000 (22:22 +0000)]
Add patterns for multiply, simplify Y register handling stuff, add RDY instruction

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24796 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoMake the addressing modes smarter
Chris Lattner [Sat, 17 Dec 2005 21:25:27 +0000 (21:25 +0000)]
Make the addressing modes smarter

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24795 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove some unused instructions
Chris Lattner [Sat, 17 Dec 2005 21:13:50 +0000 (21:13 +0000)]
remove some unused instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24794 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd andn/orn/xorn patterns. This allows us to compile this:
Chris Lattner [Sat, 17 Dec 2005 21:05:49 +0000 (21:05 +0000)]
add andn/orn/xorn patterns.  This allows us to compile this:

long %test(ubyte, short, long %X, long %Y) {
  %A = xor long %X, -1
  %B = and long %Y, %A
  ret long %B
}

to this:

test:
        save -96, %sp, %sp
        andn %i4, %i2, %i0
        andn %i5, %i3, %i1
        restore %g0, %g0, %g0
        retl
        nop

instead of this:

test:
        save -96, %sp, %sp
        xor %i2, -1, %l0
        xor %i3, -1, %l1
        and %i4, %l0, %i0
        and %i5, %l1, %i1
        restore %g0, %g0, %g0
        retl
        nop

The simpleisel emits:  :(

test:
        save -96, %sp, %sp
        or %g0, -1, %l0
        or %g0, -1, %l0
        or %g0, -1, %l0
        or %g0, -1, %l1
        xor %i2, %l0, %l0
        xor %i3, %l1, %l1
        and %i4, %l0, %i0
        and %i5, %l1, %i1
        restore %g0, %g0, %g0
        retl
        nop

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24793 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd support for 64-bit arguments
Chris Lattner [Sat, 17 Dec 2005 20:59:06 +0000 (20:59 +0000)]
Add support for 64-bit arguments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24792 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSparc doesn't have sext_inreg
Chris Lattner [Sat, 17 Dec 2005 20:50:42 +0000 (20:50 +0000)]
Sparc doesn't have sext_inreg

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24791 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd patterns for FP stores
Chris Lattner [Sat, 17 Dec 2005 20:47:16 +0000 (20:47 +0000)]
add patterns for FP stores

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24790 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd [reg+reg] integer stores
Chris Lattner [Sat, 17 Dec 2005 20:44:36 +0000 (20:44 +0000)]
Add [reg+reg] integer stores

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24789 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd store patterns
Chris Lattner [Sat, 17 Dec 2005 20:42:55 +0000 (20:42 +0000)]
Add store patterns

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24788 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd truncstore
Chris Lattner [Sat, 17 Dec 2005 20:42:29 +0000 (20:42 +0000)]
add truncstore

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24787 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd fp load patterns, switch rest of loads and stores to use addrmodes
Chris Lattner [Sat, 17 Dec 2005 20:32:47 +0000 (20:32 +0000)]
add fp load patterns, switch rest of loads and stores to use addrmodes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24786 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd integer load[r+r] forms.
Chris Lattner [Sat, 17 Dec 2005 20:26:45 +0000 (20:26 +0000)]
Add integer load[r+r] forms.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24785 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRename load/store instructions to include an RI suffix
Chris Lattner [Sat, 17 Dec 2005 20:18:49 +0000 (20:18 +0000)]
Rename load/store instructions to include an RI suffix

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24784 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd patterns for the rest of the loads. Add 'ri' suffixes to the load and store...
Chris Lattner [Sat, 17 Dec 2005 20:18:24 +0000 (20:18 +0000)]
Add patterns for the rest of the loads.  Add 'ri' suffixes to the load and store insts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24783 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd basic addressing mode support and one load.
Chris Lattner [Sat, 17 Dec 2005 20:04:49 +0000 (20:04 +0000)]
Add basic addressing mode support and one load.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24782 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoeliminate some redundancy
Chris Lattner [Sat, 17 Dec 2005 19:47:05 +0000 (19:47 +0000)]
eliminate some redundancy

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24781 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse a combination of sethi and or to build arbitrary immediates.
Chris Lattner [Sat, 17 Dec 2005 19:41:43 +0000 (19:41 +0000)]
Use a combination of sethi and or to build arbitrary immediates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24780 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse sethi to build large immediates with zeros at the bottom
Chris Lattner [Sat, 17 Dec 2005 19:37:00 +0000 (19:37 +0000)]
Use sethi to build large immediates with zeros at the bottom

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24779 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd shift and small immediate support
Chris Lattner [Sat, 17 Dec 2005 19:07:57 +0000 (19:07 +0000)]
Add shift and small immediate support

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24778 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd some basic reg-reg instructions
Chris Lattner [Sat, 17 Dec 2005 18:53:33 +0000 (18:53 +0000)]
Add some basic reg-reg instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24777 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd empty patterns to all F3_1 instructions
Chris Lattner [Sat, 17 Dec 2005 18:49:14 +0000 (18:49 +0000)]
Add empty patterns to all F3_1 instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24776 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDarwin API issue: indirect load of external and weak symbols.
Evan Cheng [Sat, 17 Dec 2005 09:13:43 +0000 (09:13 +0000)]
Darwin API issue: indirect load of external and weak symbols.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24775 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd some simple integer patterns. This allows us to compile this:
Chris Lattner [Sat, 17 Dec 2005 08:26:38 +0000 (08:26 +0000)]
Add some simple integer patterns.  This allows us to compile this:

int %test(int %A) {
  %B = add int %A, 1
  %C = xor int %B, 123
  ret int %C
}

into this:

test:
        save -96, %sp, %sp
        add %i0, 1, %l0
        xor %l0, 123, %i0
        restore %g0, %g0, %g0
        retl
        nop

for example.  I guess it would make sense to add reg/reg versions too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24774 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoImplement ret with operand, giving us this:
Chris Lattner [Sat, 17 Dec 2005 08:15:09 +0000 (08:15 +0000)]
Implement ret with operand, giving us this:

int %test(int %A) {
  ret int %A
}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24773 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a pattern for 'ret'. This now compiles:
Chris Lattner [Sat, 17 Dec 2005 08:08:42 +0000 (08:08 +0000)]
Add a pattern for 'ret'.  This now compiles:

void %test() { ret void }

:)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24772 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd empty patterns for F3_2 instructions
Chris Lattner [Sat, 17 Dec 2005 08:06:43 +0000 (08:06 +0000)]
Add empty patterns for F3_2 instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24771 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoImplement LowerArguments, at least for the first 6 integer args
Chris Lattner [Sat, 17 Dec 2005 08:03:24 +0000 (08:03 +0000)]
Implement LowerArguments, at least for the first 6 integer args

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24770 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd the framework for a dag-dag isel
Chris Lattner [Sat, 17 Dec 2005 07:47:01 +0000 (07:47 +0000)]
Add the framework for a dag-dag isel

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24769 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove a few lines of dead code.
Evan Cheng [Sat, 17 Dec 2005 07:18:44 +0000 (07:18 +0000)]
Remove a few lines of dead code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24768 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoasmprinter done, added crucial missing step
Chris Lattner [Sat, 17 Dec 2005 07:17:59 +0000 (07:17 +0000)]
asmprinter done, added crucial missing step

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24767 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse the AsmPrinter for global variable init printing. This eliminates a
Chris Lattner [Sat, 17 Dec 2005 07:17:08 +0000 (07:17 +0000)]
Use the AsmPrinter for global variable init printing.  This eliminates a
bunch of code and causes V8 to start using the fancy .asciz directive that
the sun assembler supports.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24766 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSwitch constant pool printing over to use the Shared AsmPrinter version
Chris Lattner [Sat, 17 Dec 2005 07:11:43 +0000 (07:11 +0000)]
Switch constant pool printing over to use the Shared AsmPrinter version

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24765 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse the shared AsmPrinter code for some basic stuff. No functionality
Chris Lattner [Sat, 17 Dec 2005 07:04:29 +0000 (07:04 +0000)]
Use the shared AsmPrinter code for some basic stuff.  No functionality
change except for fewer .section directives emitted

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24764 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded an idea about any_extend for performance tuning.
Evan Cheng [Sat, 17 Dec 2005 06:54:43 +0000 (06:54 +0000)]
Added an idea about any_extend for performance tuning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24763 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoConvert the remaining instructions over, branches and calls. Fix a couple
Chris Lattner [Sat, 17 Dec 2005 06:54:41 +0000 (06:54 +0000)]
Convert the remaining instructions over, branches and calls.  Fix a couple
minor bugs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24762 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoconvert FP instructions to use an asmstring and operand list, allowing FP
Chris Lattner [Sat, 17 Dec 2005 06:32:52 +0000 (06:32 +0000)]
convert FP instructions to use an asmstring and operand list, allowing FP
programs to work on V8 again

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24761 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded truncate.
Evan Cheng [Sat, 17 Dec 2005 02:02:50 +0000 (02:02 +0000)]
Added truncate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24760 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded anyext, modelled as zext on X86.
Evan Cheng [Sat, 17 Dec 2005 01:47:57 +0000 (01:47 +0000)]
Added anyext, modelled as zext on X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24759 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoYet another variant of getTargetNode().
Evan Cheng [Sat, 17 Dec 2005 01:44:51 +0000 (01:44 +0000)]
Yet another variant of getTargetNode().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24758 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded some isel ideas.
Evan Cheng [Sat, 17 Dec 2005 01:25:19 +0000 (01:25 +0000)]
Added some isel ideas.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24757 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded support for cmp, test, and conditional move instructions.
Evan Cheng [Sat, 17 Dec 2005 01:24:02 +0000 (01:24 +0000)]
Added support for cmp, test, and conditional move instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24756 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoOnly lower SELECT when using DAG based isel.
Evan Cheng [Sat, 17 Dec 2005 01:22:13 +0000 (01:22 +0000)]
Only lower SELECT when using DAG based isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24755 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoX86 lowers SELECT to a cmp / test followed by a conditional move.
Evan Cheng [Sat, 17 Dec 2005 01:21:05 +0000 (01:21 +0000)]
X86 lowers SELECT to a cmp / test followed by a conditional move.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24754 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSupport for read / write from explicit registers with FlagVT type.
Evan Cheng [Sat, 17 Dec 2005 01:19:28 +0000 (01:19 +0000)]
Support for read / write from explicit registers with FlagVT type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24753 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove hidden DOS characters.
Evan Cheng [Sat, 17 Dec 2005 01:03:57 +0000 (01:03 +0000)]
Remove hidden DOS characters.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24752 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix VC++ level 4 warnings. Because a base class has declared these private, VC+...
Jeff Cohen [Sat, 17 Dec 2005 00:19:22 +0000 (00:19 +0000)]
Fix VC++ level 4 warnings.  Because a base class has declared these private, VC++ complains it cannot automatically generate this methods.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24751 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix VC++ level 4 warnings.
Jeff Cohen [Sat, 17 Dec 2005 00:18:06 +0000 (00:18 +0000)]
Fix VC++ level 4 warnings.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24750 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoTurn on string pooling for smaller binaries.
Jeff Cohen [Sat, 17 Dec 2005 00:14:47 +0000 (00:14 +0000)]
Turn on string pooling for smaller binaries.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24749 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded source file/line correspondence for dwarf (PowerPC only at this point.)
Jim Laskey [Fri, 16 Dec 2005 22:45:29 +0000 (22:45 +0000)]
Added source file/line correspondence for dwarf (PowerPC only at this point.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24748 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoWeak and linkonce global vars should still have a .globl emitted for them
Chris Lattner [Fri, 16 Dec 2005 21:46:14 +0000 (21:46 +0000)]
Weak and linkonce global vars should still have a .globl emitted for them

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24747 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a second vector type to the VRRC register class, and fix some patterns
Nate Begeman [Fri, 16 Dec 2005 09:19:13 +0000 (09:19 +0000)]
Add a second vector type to the VRRC register class, and fix some patterns
so that tablegen can infer all types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24746 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd some notes
Chris Lattner [Fri, 16 Dec 2005 07:20:53 +0000 (07:20 +0000)]
add some notes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24745 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a couple more instrs
Chris Lattner [Fri, 16 Dec 2005 07:18:48 +0000 (07:18 +0000)]
Add a couple more instrs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24744 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoremove some dead code
Chris Lattner [Fri, 16 Dec 2005 07:16:02 +0000 (07:16 +0000)]
remove some dead code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24743 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoasmprint pseudo instrs
Chris Lattner [Fri, 16 Dec 2005 07:13:26 +0000 (07:13 +0000)]
asmprint pseudo instrs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24742 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAutogenerate asmprinter for F3_2 instructions
Chris Lattner [Fri, 16 Dec 2005 07:10:02 +0000 (07:10 +0000)]
Autogenerate asmprinter for F3_2 instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24741 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoSwitch F3_1 instructions over to use AsmStrings
Chris Lattner [Fri, 16 Dec 2005 06:52:00 +0000 (06:52 +0000)]
Switch F3_1 instructions over to use AsmStrings

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24740 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoPlug in basic hooks for an autogenerated asm printer to fill in.
Chris Lattner [Fri, 16 Dec 2005 06:34:17 +0000 (06:34 +0000)]
Plug in basic hooks for an autogenerated asm printer to fill in.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24739 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd operand info for F3_[12] instructions, getting V8 back to basic functionality.
Chris Lattner [Fri, 16 Dec 2005 06:25:42 +0000 (06:25 +0000)]
Add operand info for F3_[12] instructions, getting V8 back to basic functionality.
With this, Regression/CodeGen/SparcV8/basictest.ll now passes.  Lets hear it
for regression tests :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24738 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoA truly trivial testcase to ensure sparcv8 doesn't get completely broken
Chris Lattner [Fri, 16 Dec 2005 06:24:55 +0000 (06:24 +0000)]
A truly trivial testcase to ensure sparcv8 doesn't get completely broken
again.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24737 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove JIT support, which doesn't work.
Chris Lattner [Fri, 16 Dec 2005 06:06:07 +0000 (06:06 +0000)]
Remove JIT support, which doesn't work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24736 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoadd some simple operand info
Chris Lattner [Fri, 16 Dec 2005 06:02:58 +0000 (06:02 +0000)]
add some simple operand info

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24735 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorename option for consistency with -mcpu -mattr etc
Chris Lattner [Fri, 16 Dec 2005 05:19:55 +0000 (05:19 +0000)]
rename option for consistency with -mcpu -mattr etc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24734 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorename options
Chris Lattner [Fri, 16 Dec 2005 05:19:35 +0000 (05:19 +0000)]
rename options

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24733 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agorename option
Chris Lattner [Fri, 16 Dec 2005 05:19:18 +0000 (05:19 +0000)]
rename option

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24732 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDocument -mcpu -mattr -triple
Chris Lattner [Fri, 16 Dec 2005 05:18:53 +0000 (05:18 +0000)]
Document -mcpu -mattr -triple

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24731 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprovide an option to override the target triple in a module from the commandline.
Chris Lattner [Fri, 16 Dec 2005 05:00:21 +0000 (05:00 +0000)]
provide an option to override the target triple in a module from the commandline.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24730 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoprovide an option to override the target triple in a module from the command
Chris Lattner [Fri, 16 Dec 2005 04:59:57 +0000 (04:59 +0000)]
provide an option to override the target triple in a module from the command
line.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24729 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUpdate the darwin handling of linkonce & weak functions and GV stubs. This
Chris Lattner [Fri, 16 Dec 2005 00:22:14 +0000 (00:22 +0000)]
Update the darwin handling of linkonce & weak functions and GV stubs. This
should work in all permutations.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24728 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDon't globalize internal functions
Chris Lattner [Fri, 16 Dec 2005 00:07:30 +0000 (00:07 +0000)]
Don't globalize internal functions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24727 91177308-0d34-0410-b5e6-96231b3b80d8

18 years ago* Promote all 1 bit entities to 8 bit.
Evan Cheng [Thu, 15 Dec 2005 19:49:23 +0000 (19:49 +0000)]
* Promote all 1 bit entities to 8 bit.
* Handling extload (1 bit -> 8 bit) and remove C++ code that handle 1 bit
zextload.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24726 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoDon't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support
Chris Lattner [Thu, 15 Dec 2005 19:02:38 +0000 (19:02 +0000)]
Don't create SEXTLOAD/ZEXTLOAD instructions that the target doesn't support
if after legalize.  This fixes IA64 failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24725 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded frameindex, constpool, globaladdr, and externalsym as root nodes of
Evan Cheng [Thu, 15 Dec 2005 08:31:04 +0000 (08:31 +0000)]
Added frameindex, constpool, globaladdr, and externalsym as root nodes of
leaaddr.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24724 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded constpool, frameindex, and externalsym nodes.
Evan Cheng [Thu, 15 Dec 2005 08:29:48 +0000 (08:29 +0000)]
Added constpool, frameindex, and externalsym nodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24723 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoHandling zero extension of 1 bit value.
Evan Cheng [Thu, 15 Dec 2005 01:02:48 +0000 (01:02 +0000)]
Handling zero extension of 1 bit value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24722 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse MOV8rm to load 1 bit value.
Evan Cheng [Thu, 15 Dec 2005 00:59:17 +0000 (00:59 +0000)]
Use MOV8rm to load 1 bit value.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24721 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoRemove a now unused statistic.
Nate Begeman [Wed, 14 Dec 2005 22:56:16 +0000 (22:56 +0000)]
Remove a now unused statistic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24720 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoUse the new predicate support that Evan Cheng added to remove some code
Nate Begeman [Wed, 14 Dec 2005 22:54:33 +0000 (22:54 +0000)]
Use the new predicate support that Evan Cheng added to remove some code
from the DAGToDAG cpp file.  This adds pattern support for vector and
scalar fma, which passes test/Regression/CodeGen/PowerPC/fma.ll, and
does the right thing in the presence of -disable-excess-fp-precision.

Allows us to match:
void %foo(<4 x float> * %a) {
entry:
  %tmp1 = load <4 x float> * %a;
  %tmp2 = mul <4 x float> %tmp1, %tmp1
  %tmp3 = add <4 x float> %tmp2, %tmp1
  store <4 x float> %tmp3, <4 x float> *%a
  ret void
}

As:

_foo:
        li r2, 0
        lvx v0, r2, r3
        vmaddfp v0, v0, v0, v0
        stvx v0, r2, r3
        blr

Or, with llc -disable-excess-fp-precision,

_foo:
        li r2, 0
        lvx v0, r2, r3
        vxor v1, v1, v1
        vmaddfp v1, v0, v0, v1
        vaddfp v0, v1, v0
        stvx v0, r2, r3
        blr

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24719 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdd a case for float just to make sure the patterns for both precisions
Nate Begeman [Wed, 14 Dec 2005 22:51:13 +0000 (22:51 +0000)]
Add a case for float just to make sure the patterns for both precisions
are matching

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24718 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFixed a typo: line 2323: MOVSX16rm8 -> MOVZX16rm8. This was the cause fo 12/14/2005...
Evan Cheng [Wed, 14 Dec 2005 22:28:18 +0000 (22:28 +0000)]
Fixed a typo: line 2323: MOVSX16rm8 -> MOVZX16rm8. This was the cause fo 12/14/2005 hbd failure.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24717 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded predicate !NoExcessFPPrecision to FMADD, FMADDS, FMSUB, and FMSUBS.
Evan Cheng [Wed, 14 Dec 2005 22:07:12 +0000 (22:07 +0000)]
Added predicate !NoExcessFPPrecision to FMADD, FMADDS, FMSUB, and FMSUBS.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24716 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoAdded support to specify predicates.
Evan Cheng [Wed, 14 Dec 2005 22:02:59 +0000 (22:02 +0000)]
Added support to specify predicates.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24715 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFix printing of the instructions.
Chris Lattner [Wed, 14 Dec 2005 22:01:07 +0000 (22:01 +0000)]
Fix printing of the instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24714 91177308-0d34-0410-b5e6-96231b3b80d8

18 years agoFixed extload type profile. The 4th operand is a ValueType node with type
Evan Cheng [Wed, 14 Dec 2005 19:40:54 +0000 (19:40 +0000)]
Fixed extload type profile. The 4th operand is a ValueType node with type
OtherVT, it cannot be compare to type of 1st operand which is an integer type.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24713 91177308-0d34-0410-b5e6-96231b3b80d8