oota-llvm.git
19 years agoLower to the correct functions. This fixes FreeBench/fourinarow
Chris Lattner [Mon, 10 Jan 2005 21:02:37 +0000 (21:02 +0000)]
Lower to the correct functions.  This fixes FreeBench/fourinarow

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

19 years agoImplement 8-bit multiply for X86.
Chris Lattner [Mon, 10 Jan 2005 20:55:48 +0000 (20:55 +0000)]
Implement 8-bit multiply for X86.

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

19 years agoRework constant pool handling so that function constant pools are no longer
Chris Lattner [Mon, 10 Jan 2005 18:23:22 +0000 (18:23 +0000)]
Rework constant pool handling so that function constant pools are no longer
leaked to the system.  Now they are destroyed with the JITMemoryManager is
destroyed.

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

19 years agoApply feedback from Chris.
Jeff Cohen [Mon, 10 Jan 2005 04:23:32 +0000 (04:23 +0000)]
Apply feedback from Chris.

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

19 years agoApply feed back from Chris:
Jeff Cohen [Mon, 10 Jan 2005 03:56:27 +0000 (03:56 +0000)]
Apply feed back from Chris:
  1. Rename createLoaderPass to CreateProfileLoaderPass
  2. Opt shouldn't use the pass registered in CodeGen.

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

19 years agoImplement a couple of more simplifications. This lets us codegen:
Chris Lattner [Mon, 10 Jan 2005 02:03:02 +0000 (02:03 +0000)]
Implement a couple of more simplifications.  This lets us codegen:

int test2(int * P, int* Q, int A, int B) {
        return P+A == P;
}

into:

test2:
        movl 4(%esp), %eax
        movl 12(%esp), %eax
        shll $2, %eax
        cmpl $0, %eax
        sete %al
        movzbl %al, %eax
        ret

instead of:

test2:
        movl 4(%esp), %eax
        movl 12(%esp), %ecx
        leal (%eax,%ecx,4), %ecx
        cmpl %eax, %ecx
        sete %al
        movzbl %al, %eax
        ret

ICC is producing worse code:

test2:
        movl      4(%esp), %eax                                 #8.5
        movl      12(%esp), %edx                                #8.5
        lea       (%edx,%edx), %ecx                             #9.9
        addl      %ecx, %ecx                                    #9.9
        addl      %eax, %ecx                                    #9.9
        cmpl      %eax, %ecx                                    #9.16
        movl      $0, %eax                                      #9.16
        sete      %al                                           #9.16
        ret                                                     #9.16

as is GCC (looks like our old code):

test2:
        movl    4(%esp), %edx
        movl    12(%esp), %eax
        leal    (%edx,%eax,4), %ecx
        cmpl    %edx, %ecx
        sete    %al
        movzbl  %al, %eax
        ret

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

19 years agoFix incorrect constant folds, fixing Stepanov after the SHR patch.
Chris Lattner [Mon, 10 Jan 2005 01:16:03 +0000 (01:16 +0000)]
Fix incorrect constant folds, fixing Stepanov after the SHR patch.

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

19 years agoUpdate System project in Visual Studio to reflect renamed files.
Jeff Cohen [Mon, 10 Jan 2005 00:50:11 +0000 (00:50 +0000)]
Update System project in Visual Studio to reflect renamed files.

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

19 years agoConstant fold shifts, turning this loop:
Chris Lattner [Mon, 10 Jan 2005 00:07:15 +0000 (00:07 +0000)]
Constant fold shifts, turning this loop:

.LBB_Z5test0PdS__3:     # no_exit.1
        fldl data(,%eax,8)
        fldl 24(%esp)
        faddp %st(1)
        fstl 24(%esp)
        incl %eax
        movl $16000, %ecx
        sarl $3, %ecx
        cmpl %eax, %ecx
        fstpl 16(%esp)
        #FP_REG_KILL
        jg .LBB_Z5test0PdS__3   # no_exit.1

into:

.LBB_Z5test0PdS__3:     # no_exit.1
        fldl data(,%eax,8)
        fldl 24(%esp)
        faddp %st(1)
        fstl 24(%esp)
        incl %eax
        cmpl $2000, %eax
        fstpl 16(%esp)
        #FP_REG_KILL
        jl .LBB_Z5test0PdS__3   # no_exit.1

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

19 years agoRename Unix/*.cpp and Win32/*.cpp to have a *.inc suffix so that the silly
Reid Spencer [Sun, 9 Jan 2005 23:29:00 +0000 (23:29 +0000)]
Rename Unix/*.cpp and Win32/*.cpp to have a *.inc suffix so that the silly
gdb debugger doesn't get confused on which file it is reading (the one in
lib/System or the one in lib/System/{Win32,Unix})

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

19 years agoAdd some folds for == and != comparisons. This allows us to
Chris Lattner [Sun, 9 Jan 2005 20:52:51 +0000 (20:52 +0000)]
Add some folds for == and != comparisons.  This allows us to
codegen this loop in stepanov:

no_exit.i:              ; preds = %entry, %no_exit.i, %then.i, %_Z5checkd.exit
        %i.0.0 = phi int [ 0, %entry ], [ %i.0.0, %no_exit.i ], [ %inc.0, %_Z5checkd.exit ], [ %inc.012, %then.i ]              ; <int> [#uses=3]
        %indvar = phi uint [ %indvar.next, %no_exit.i ], [ 0, %entry ], [ 0, %then.i ], [ 0, %_Z5checkd.exit ]          ; <uint> [#uses=3]
        %result_addr.i.0 = phi double [ %tmp.4.i.i, %no_exit.i ], [ 0.000000e+00, %entry ], [ 0.000000e+00, %then.i ], [ 0.000000e+00, %_Z5checkd.exit ]          ; <double> [#uses=1]
        %first_addr.0.i.2.rec = cast uint %indvar to int                ; <int> [#uses=1]
        %first_addr.0.i.2 = getelementptr [2000 x double]* %data, int 0, uint %indvar           ; <double*> [#uses=1]
        %inc.i.rec = add int %first_addr.0.i.2.rec, 1           ; <int> [#uses=1]
        %inc.i = getelementptr [2000 x double]* %data, int 0, int %inc.i.rec            ; <double*> [#uses=1]
        %tmp.3.i.i = load double* %first_addr.0.i.2             ; <double> [#uses=1]
        %tmp.4.i.i = add double %result_addr.i.0, %tmp.3.i.i            ; <double> [#uses=2]
        %tmp.2.i = seteq double* %inc.i, getelementptr ([2000 x double]* %data, int 0, int 2000)                ; <bool> [#uses=1]
        %indvar.next = add uint %indvar, 1              ; <uint> [#uses=1]
        br bool %tmp.2.i, label %_Z10accumulateIPddET0_T_S2_S1_.exit, label %no_exit.i

To this:

.LBB_Z4testIPddEvT_S1_T0__1:    # no_exit.i
        fldl data(,%eax,8)
        fldl 16(%esp)
        faddp %st(1)
        fstpl 16(%esp)
        incl %eax
        movl %eax, %ecx
        shll $3, %ecx
        cmpl $16000, %ecx
        #FP_REG_KILL
        jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i

instead of this:

.LBB_Z4testIPddEvT_S1_T0__1:    # no_exit.i
        fldl data(,%eax,8)
        fldl 16(%esp)
        faddp %st(1)
        fstpl 16(%esp)
        incl %eax
        leal data(,%eax,8), %ecx
        leal data+16000, %edx
        cmpl %edx, %ecx
        #FP_REG_KILL
        jne .LBB_Z4testIPddEvT_S1_T0__1 # no_exit.i

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

19 years agoAdd last four createXxxPass functions
Jeff Cohen [Sun, 9 Jan 2005 20:42:52 +0000 (20:42 +0000)]
Add last four createXxxPass functions

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

19 years agoFix VC++ compilation error
Jeff Cohen [Sun, 9 Jan 2005 20:41:56 +0000 (20:41 +0000)]
Fix VC++ compilation error

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

19 years agoPrint the DAG out more like a DAG in nested format.
Chris Lattner [Sun, 9 Jan 2005 20:38:33 +0000 (20:38 +0000)]
Print the DAG out more like a DAG in nested format.

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

19 years agoPrint out nodes sorted by their address to make it easier to find them in a list.
Chris Lattner [Sun, 9 Jan 2005 20:26:36 +0000 (20:26 +0000)]
Print out nodes sorted by their address to make it easier to find them in a list.

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

19 years agoCodegen (Reg|imm)+&GV as an LEA, because we cannot put it into the immediate field
Chris Lattner [Sun, 9 Jan 2005 20:20:29 +0000 (20:20 +0000)]
Codegen (Reg|imm)+&GV as an LEA, because we cannot put it into the immediate field
of an ADDri (due to current restrictions on MachineOperand :( ).  This allows
us to generate:

        leal Data+16000, %edx

instead of:

        movl $Data, %edx
        addl $16000, %edx

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

19 years agoAdd a simple transformation. This allows us to compile one of the inner
Chris Lattner [Sun, 9 Jan 2005 20:09:57 +0000 (20:09 +0000)]
Add a simple transformation.  This allows us to compile one of the inner
loops in stepanov to this:

.LBB_Z5test0PdS__2:     # no_exit.1
        fldl data(,%eax,8)
        fldl 24(%esp)
        faddp %st(1)
        fstl 24(%esp)
        incl %eax
        cmpl $2000, %eax
        fstpl 16(%esp)
        #FP_REG_KILL
        jl .LBB_Z5test0PdS__2

instead of this:

.LBB_Z5test0PdS__2:     # no_exit.1
        fldl data(,%eax,8)
        fldl 24(%esp)
        faddp %st(1)
        fstl 24(%esp)
        incl %eax
        movl $data, %ecx
        movl %ecx, %edx
        addl $16000, %edx
        subl %ecx, %edx
        movl %edx, %ecx
        sarl $2, %ecx
        shrl $29, %ecx
        addl %ecx, %edx
        sarl $3, %edx
        cmpl %edx, %eax
        fstpl 16(%esp)
        #FP_REG_KILL
        jl .LBB_Z5test0PdS__2

The old instruction selector produced:

.LBB_Z5test0PdS__2:     # no_exit.1
        fldl 24(%esp)
        faddl data(,%eax,8)
        fstl 24(%esp)
        movl %eax, %ecx
        incl %ecx
        incl %eax
        leal data+16000, %edx
        movl $data, %edi
        subl %edi, %edx
        movl %edx, %edi
        sarl $2, %edi
        shrl $29, %edi
        addl %edi, %edx
        sarl $3, %edx
        cmpl %edx, %ecx
        fstpl 16(%esp)
        #FP_REG_KILL
        jl .LBB_Z5test0PdS__2   # no_exit.1

Which is even worse!

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

19 years agoFix copy and pasto's for FP -> Int. This fixes fldry
Chris Lattner [Sun, 9 Jan 2005 19:49:59 +0000 (19:49 +0000)]
Fix copy and pasto's for FP -> Int.  This fixes fldry

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

19 years agoFix a bug legalizing call instructions (make sure to remember all result
Chris Lattner [Sun, 9 Jan 2005 19:43:23 +0000 (19:43 +0000)]
Fix a bug legalizing call instructions (make sure to remember all result
values), and eliminate some switch statements.

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

19 years agoFix a minor bug legalizing dynamic_stackalloc. This allows us to compile
Chris Lattner [Sun, 9 Jan 2005 19:07:54 +0000 (19:07 +0000)]
Fix a minor bug legalizing dynamic_stackalloc.  This allows us to compile
std::__pad<wchar_t, std::char_traits<wchar_t> >::_S_pad(std::ios_base&, wchar_t, wchar_t*, wchar_t const*, int, int, bool)

from libstdc++

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

19 years agoTeach legalize to deal with DYNAMIC_STACKALLOC (aka a dynamic llvm alloca)
Chris Lattner [Sun, 9 Jan 2005 19:03:49 +0000 (19:03 +0000)]
Teach legalize to deal with DYNAMIC_STACKALLOC (aka a dynamic llvm alloca)

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

19 years agoInitial implementation of FP->INT and INT->FP casts
Chris Lattner [Sun, 9 Jan 2005 18:52:44 +0000 (18:52 +0000)]
Initial implementation of FP->INT and INT->FP casts

Also, fix zero_extend from bool to i8, which fixes Shootout/objinst.

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

19 years agoGet lib/Analysis/DataStructure to compile with VC++
Jeff Cohen [Sun, 9 Jan 2005 04:18:28 +0000 (04:18 +0000)]
Get lib/Analysis/DataStructure to compile with VC++

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

19 years agoWorkaround a VC++ bug. Microsoft puts the hash_map class in namespace stdext, but
Jeff Cohen [Sun, 9 Jan 2005 04:13:09 +0000 (04:13 +0000)]
Workaround a VC++ bug.  Microsoft puts the hash_map class in namespace stdext, but
this classes uses a utility function in namespace std.  But Microsoft apparently
assumes everyone will "using namespace std;".  As LLVM doesn't....  Add a
"use std::_Distance;" to get it working.

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

19 years agoFix a subtle bug involving constant expr casts from int to fp
Chris Lattner [Sun, 9 Jan 2005 01:49:29 +0000 (01:49 +0000)]
Fix a subtle bug involving constant expr casts from int to fp

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

19 years agoHandle static alloca arguments to PHI nodes.
Chris Lattner [Sun, 9 Jan 2005 01:16:24 +0000 (01:16 +0000)]
Handle static alloca arguments to PHI nodes.

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

19 years agoImplement varargs and returnaddress/frameaddress intrinsics. With this
Chris Lattner [Sun, 9 Jan 2005 00:01:27 +0000 (00:01 +0000)]
Implement varargs and returnaddress/frameaddress intrinsics.  With this
patch, all of SingleSource/UnitTests passes.

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

19 years agoUse new interfaces to correctly lower varargs and return/frame address intrinsics.
Chris Lattner [Sun, 9 Jan 2005 00:00:49 +0000 (00:00 +0000)]
Use new interfaces to correctly lower varargs and return/frame address intrinsics.

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

19 years agoAdd interfaces to lower varargs and return/frame address intrinsics.
Chris Lattner [Sun, 9 Jan 2005 00:00:31 +0000 (00:00 +0000)]
Add interfaces to lower varargs and return/frame address intrinsics.

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

19 years agoTest fails on all platforms, not just linux
Jeff Cohen [Sat, 8 Jan 2005 23:44:03 +0000 (23:44 +0000)]
Test fails on all platforms, not just linux

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

19 years agoAdd support for llvm.setjmp and longjmp. Only 3 SingleSource/UnitTests fail now.
Chris Lattner [Sat, 8 Jan 2005 22:48:57 +0000 (22:48 +0000)]
Add support for llvm.setjmp and longjmp.  Only 3 SingleSource/UnitTests fail now.

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

19 years agoFix VC++ compilation error
Jeff Cohen [Sat, 8 Jan 2005 22:44:06 +0000 (22:44 +0000)]
Fix VC++ compilation error

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

19 years agoAdd even more missing createXxxPass functions.
Jeff Cohen [Sat, 8 Jan 2005 22:01:16 +0000 (22:01 +0000)]
Add even more missing createXxxPass functions.

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

19 years agorename linscan -> LLCBETA as it should be
Chris Lattner [Sat, 8 Jan 2005 21:03:58 +0000 (21:03 +0000)]
rename linscan -> LLCBETA as it should be

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

19 years agoOkay 15th time is the charm. Looking at the vector size is useless as it
Chris Lattner [Sat, 8 Jan 2005 20:51:36 +0000 (20:51 +0000)]
Okay 15th time is the charm.  Looking at the vector size is useless as it
gets clobbered by a previous statement.  This fixes all calls finally.

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

19 years agoOkay, my off by one was actually off by two. This fixes Generic/2003-07-07-BadLongCo...
Chris Lattner [Sat, 8 Jan 2005 20:39:31 +0000 (20:39 +0000)]
Okay, my off by one was actually off by two.  This fixes Generic/2003-07-07-BadLongConst.ll

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

19 years agoTighten up assertions.
Chris Lattner [Sat, 8 Jan 2005 20:35:13 +0000 (20:35 +0000)]
Tighten up assertions.

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

19 years agoFix off by one error
Chris Lattner [Sat, 8 Jan 2005 20:31:34 +0000 (20:31 +0000)]
Fix off by one error

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

19 years agoAllow arrays to have more than 4G elements.
Chris Lattner [Sat, 8 Jan 2005 20:19:51 +0000 (20:19 +0000)]
Allow arrays to have more than 4G elements.

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

19 years agoAllow array types to have 64-bit size.
Chris Lattner [Sat, 8 Jan 2005 20:19:27 +0000 (20:19 +0000)]
Allow array types to have 64-bit size.

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

19 years agoUse size_t instead of long to represent memory usage. long is 32 bits
Jeff Cohen [Sat, 8 Jan 2005 20:15:57 +0000 (20:15 +0000)]
Use size_t instead of long to represent memory usage.  long is 32 bits
on 64-bit Windows.

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

19 years agoSilence warnings
Chris Lattner [Sat, 8 Jan 2005 20:13:44 +0000 (20:13 +0000)]
Silence warnings

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

19 years agoSilence VS warnings.
Chris Lattner [Sat, 8 Jan 2005 20:13:19 +0000 (20:13 +0000)]
Silence VS warnings.

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

19 years agoSilence VS warnings.
Chris Lattner [Sat, 8 Jan 2005 20:07:03 +0000 (20:07 +0000)]
Silence VS warnings.

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

19 years agoSilence VS warnings
Chris Lattner [Sat, 8 Jan 2005 20:05:34 +0000 (20:05 +0000)]
Silence VS warnings

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

19 years agoSilence VS warnings
Chris Lattner [Sat, 8 Jan 2005 19:59:10 +0000 (19:59 +0000)]
Silence VS warnings

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

19 years agoAdjust prototype
Chris Lattner [Sat, 8 Jan 2005 19:57:49 +0000 (19:57 +0000)]
Adjust prototype

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

19 years agoSilence warnings from VS
Chris Lattner [Sat, 8 Jan 2005 19:55:00 +0000 (19:55 +0000)]
Silence warnings from VS

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

19 years agoSilence VS warnings
Chris Lattner [Sat, 8 Jan 2005 19:53:50 +0000 (19:53 +0000)]
Silence VS warnings

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

19 years agoSilence VS warnings.
Chris Lattner [Sat, 8 Jan 2005 19:52:31 +0000 (19:52 +0000)]
Silence VS warnings.

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

19 years agoFix VS warnings
Chris Lattner [Sat, 8 Jan 2005 19:48:40 +0000 (19:48 +0000)]
Fix VS warnings

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

19 years agoFix VS warnings.
Chris Lattner [Sat, 8 Jan 2005 19:45:31 +0000 (19:45 +0000)]
Fix VS warnings.

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

19 years agoFix uint64_t -> unsigned VS warnings.
Chris Lattner [Sat, 8 Jan 2005 19:42:22 +0000 (19:42 +0000)]
Fix uint64_t -> unsigned VS warnings.

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

19 years agoSilence VS warnings.
Chris Lattner [Sat, 8 Jan 2005 19:37:20 +0000 (19:37 +0000)]
Silence VS warnings.

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

19 years agoSilence warnings
Chris Lattner [Sat, 8 Jan 2005 19:34:41 +0000 (19:34 +0000)]
Silence warnings

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

19 years agoDo not throw away bits for no reason
Chris Lattner [Sat, 8 Jan 2005 19:32:59 +0000 (19:32 +0000)]
Do not throw away bits for no reason

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

19 years agoSilence a VS warning.
Chris Lattner [Sat, 8 Jan 2005 19:31:31 +0000 (19:31 +0000)]
Silence a VS warning.

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

19 years agoAdjust to changes in LowerCallTo interface
Chris Lattner [Sat, 8 Jan 2005 19:28:19 +0000 (19:28 +0000)]
Adjust to changes in LowerCallTo interface
Minor bugfixes

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

19 years agoImplement handling of most long operators through libcalls.
Chris Lattner [Sat, 8 Jan 2005 19:27:05 +0000 (19:27 +0000)]
Implement handling of most long operators through libcalls.
Fix a bug legalizing "ret (Val,Val)"

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

19 years agoAdjust to changes in LowerCAllTo interfaces
Chris Lattner [Sat, 8 Jan 2005 19:26:18 +0000 (19:26 +0000)]
Adjust to changes in LowerCAllTo interfaces

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

19 years agoMake LowerCallTo more generic and useful.
Chris Lattner [Sat, 8 Jan 2005 19:25:39 +0000 (19:25 +0000)]
Make LowerCallTo more generic and useful.

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

19 years agoAnother year, another copyright update.
John Criswell [Sat, 8 Jan 2005 19:10:44 +0000 (19:10 +0000)]
Another year, another copyright update.

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

19 years agoAdd a few more passes to LinkAllPasses.h
Jeff Cohen [Sat, 8 Jan 2005 18:15:23 +0000 (18:15 +0000)]
Add a few more passes to LinkAllPasses.h

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

19 years agoAdd more missing createXxxPass functions.
Jeff Cohen [Sat, 8 Jan 2005 17:21:40 +0000 (17:21 +0000)]
Add more missing createXxxPass functions.

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

19 years agoAdd support for FP->INT conversions and back.
Chris Lattner [Sat, 8 Jan 2005 08:08:56 +0000 (08:08 +0000)]
Add support for FP->INT conversions and back.

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

19 years agoAdd operators for FP -> INT conversions and back.
Chris Lattner [Sat, 8 Jan 2005 08:08:49 +0000 (08:08 +0000)]
Add operators for FP -> INT conversions and back.

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

19 years agoWrap long line.
Chris Lattner [Sat, 8 Jan 2005 06:59:50 +0000 (06:59 +0000)]
Wrap long line.

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

19 years agoImplement the 'store FPIMM, Ptr' -> 'store INTIMM, Ptr' optimization for
Chris Lattner [Sat, 8 Jan 2005 06:25:56 +0000 (06:25 +0000)]
Implement the 'store FPIMM, Ptr' -> 'store INTIMM, Ptr' optimization for
all targets.

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

19 years ago1ULL << 64 is undefined, don't do it.
Chris Lattner [Sat, 8 Jan 2005 06:24:30 +0000 (06:24 +0000)]
1ULL << 64 is undefined, don't do it.

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

19 years agoThe X86 instruction selector already handles codegen of:
Chris Lattner [Sat, 8 Jan 2005 05:45:24 +0000 (05:45 +0000)]
The X86 instruction selector already handles codegen of:

  store float 123.45, float* %P

as an integer store.  This adds handling of float immediate stores as integers
for arguments passed function calls.

This is now tested by CodeGen/X86/store-fp-constant.ll

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

19 years agoNew testcase.
Chris Lattner [Sat, 8 Jan 2005 05:44:07 +0000 (05:44 +0000)]
New testcase.

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

19 years agoEliminate empty sub-list
Misha Brukman [Sat, 8 Jan 2005 01:11:15 +0000 (01:11 +0000)]
Eliminate empty sub-list

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

19 years agoFix a pointer invalidation problem. This fixes Generic/badarg6.ll
Chris Lattner [Fri, 7 Jan 2005 23:32:00 +0000 (23:32 +0000)]
Fix a pointer invalidation problem.  This fixes Generic/badarg6.ll

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

19 years agoFold conditional branches on constants away.
Chris Lattner [Fri, 7 Jan 2005 22:49:57 +0000 (22:49 +0000)]
Fold conditional branches on constants away.

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

19 years agoFix a thinko in the reassociation code, fixing Generic/badlive.ll
Chris Lattner [Fri, 7 Jan 2005 22:44:09 +0000 (22:44 +0000)]
Fix a thinko in the reassociation code, fixing Generic/badlive.ll

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

19 years agoAdd support for truncating integer casts from long.
Chris Lattner [Fri, 7 Jan 2005 22:37:48 +0000 (22:37 +0000)]
Add support for truncating integer casts from long.

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

19 years agoFix a bug in load expansion legalization and ret legalization. This fixes
Chris Lattner [Fri, 7 Jan 2005 22:28:47 +0000 (22:28 +0000)]
Fix a bug in load expansion legalization and ret legalization.  This fixes
CodeGen/Generic/select.ll:castconst.

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

19 years agoLegalize unconditional branches too
Chris Lattner [Fri, 7 Jan 2005 22:12:08 +0000 (22:12 +0000)]
Legalize unconditional branches too

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

19 years agoCleanup a bunch of tests. In particular do not allow target directives in
Chris Lattner [Fri, 7 Jan 2005 22:05:31 +0000 (22:05 +0000)]
Cleanup a bunch of tests.  In particular do not allow target directives in
the .ll file or it forces the V9 backend.  This is the CodeGen/Generic dir,
so there is no use in doing that.

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

19 years agoImplement support for long GEP indices on 32-bit archs and support for
Chris Lattner [Fri, 7 Jan 2005 21:56:57 +0000 (21:56 +0000)]
Implement support for long GEP indices on 32-bit archs and support for
int GEP indices on 64-bit archs.

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

19 years agoSimplify: truncate ({zero|sign}_extend (X))
Chris Lattner [Fri, 7 Jan 2005 21:56:24 +0000 (21:56 +0000)]
Simplify: truncate ({zero|sign}_extend (X))

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

19 years agoimplement legalization of a bunch more operators.
Chris Lattner [Fri, 7 Jan 2005 21:45:56 +0000 (21:45 +0000)]
implement legalization of a bunch more operators.

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

19 years agoMake this test a bit more interesting by making there actually be a use of the
Chris Lattner [Fri, 7 Jan 2005 21:37:13 +0000 (21:37 +0000)]
Make this test a bit more interesting by making there actually be a use of the
PHI node.

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

19 years agoFix another bug legalizing calls!
Chris Lattner [Fri, 7 Jan 2005 21:35:32 +0000 (21:35 +0000)]
Fix another bug legalizing calls!

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

19 years agoFix handling of dead PHI nodes.
Chris Lattner [Fri, 7 Jan 2005 21:34:19 +0000 (21:34 +0000)]
Fix handling of dead PHI nodes.

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

19 years agoFix a bug legalizing calls
Chris Lattner [Fri, 7 Jan 2005 21:34:13 +0000 (21:34 +0000)]
Fix a bug legalizing calls

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

19 years agomodernize and clean up this test.
Chris Lattner [Fri, 7 Jan 2005 21:15:58 +0000 (21:15 +0000)]
modernize and clean up this test.

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

19 years agoAfter legalizing a DAG, delete dead nodes to save space.
Chris Lattner [Fri, 7 Jan 2005 21:09:37 +0000 (21:09 +0000)]
After legalizing a DAG, delete dead nodes to save space.

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

19 years agoImplement RemoveDeadNodes
Chris Lattner [Fri, 7 Jan 2005 21:09:16 +0000 (21:09 +0000)]
Implement RemoveDeadNodes

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

19 years agoAdd a new SelectionDAG::RemoveDeadNodes method
Chris Lattner [Fri, 7 Jan 2005 21:08:55 +0000 (21:08 +0000)]
Add a new SelectionDAG::RemoveDeadNodes method

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

19 years agoFix include. Too easy to make mistakes like this on Windows :(
Jeff Cohen [Fri, 7 Jan 2005 19:21:49 +0000 (19:21 +0000)]
Fix include.  Too easy to make mistakes like this on Windows :(

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

19 years agoRemove the open projects page from the docs directory.
Chris Lattner [Fri, 7 Jan 2005 18:57:33 +0000 (18:57 +0000)]
Remove the open projects page from the docs directory.

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

19 years agoCapitalize Bugpoint.
Misha Brukman [Fri, 7 Jan 2005 17:00:44 +0000 (17:00 +0000)]
Capitalize Bugpoint.

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

19 years agoGet new SelectionDAG stuff building with Visual Studio.
Jeff Cohen [Fri, 7 Jan 2005 15:52:36 +0000 (15:52 +0000)]
Get new SelectionDAG stuff building with Visual Studio.

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

19 years agoTeach legalize how to handle condbranches
Chris Lattner [Fri, 7 Jan 2005 08:19:42 +0000 (08:19 +0000)]
Teach legalize how to handle condbranches

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

19 years agoAdd a testcase I forgot to commit earlier.
Chris Lattner [Fri, 7 Jan 2005 07:56:08 +0000 (07:56 +0000)]
Add a testcase I forgot to commit earlier.

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

19 years agoX86 BE requires SelectionDAG
Chris Lattner [Fri, 7 Jan 2005 07:51:25 +0000 (07:51 +0000)]
X86 BE requires SelectionDAG

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

19 years agoX86 JIT requires the selection dag library.
Chris Lattner [Fri, 7 Jan 2005 07:51:11 +0000 (07:51 +0000)]
X86 JIT requires the selection dag library.

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

19 years agoAllow the selection-dag based selector to be diabled with -disable-pattern-isel.
Chris Lattner [Fri, 7 Jan 2005 07:50:50 +0000 (07:50 +0000)]
Allow the selection-dag based selector to be diabled with -disable-pattern-isel.

For now, this is the default, as the current selector is missing some big pieces.
To enable the new selector, pass -disable-pattern-isel=false to llc or lli.

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

19 years agoReimplementation of the X86 pattern isel. This is still missing many large
Chris Lattner [Fri, 7 Jan 2005 07:49:41 +0000 (07:49 +0000)]
Reimplementation of the X86 pattern isel.  This is still missing many large
pieces, but can already do amazing things in some cases.

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