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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Chris Lattner [Fri, 7 Jan 2005 07:49:05 +0000 (07:49 +0000)]
This file is now dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19333
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:48:33 +0000 (07:48 +0000)]
Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19332
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:47:53 +0000 (07:47 +0000)]
Initial implementation of the SelectionDAGISel class. This contains most
of the code for lowering from LLVM code to a SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19331
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:47:23 +0000 (07:47 +0000)]
This file is obsolete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19330
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:47:09 +0000 (07:47 +0000)]
Initial implementation of the DAG legalization. This still has a long way
to go, but it does work for some non-trivial cases now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19329
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeff Cohen [Fri, 7 Jan 2005 07:46:40 +0000 (07:46 +0000)]
But not the identation of THAT line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19328
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:46:32 +0000 (07:46 +0000)]
Complete rewrite of the SelectionDAG class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19327
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:46:03 +0000 (07:46 +0000)]
Common base class for SelectionDAG-based instruction selectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19326
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:45:27 +0000 (07:45 +0000)]
Initial implementation of the nodes in a SelectionDAG.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19325
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 7 Jan 2005 07:44:53 +0000 (07:44 +0000)]
First draft of new Target interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19324
91177308-0d34-0410-b5e6-
96231b3b80d8