summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Codegen (Reg|imm)+&GV as an LEA, because we cannot put it into the immediate ↵Chris Lattner2005-01-091-2/+2
| | | | | | | | | | | | | | | | 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 llvm-svn: 19420
* Add a simple transformation. This allows us to compile one of the innerChris Lattner2005-01-091-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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! llvm-svn: 19419
* Fix copy and pasto's for FP -> Int. This fixes fldryChris Lattner2005-01-091-2/+2
| | | | llvm-svn: 19418
* Fix a bug legalizing call instructions (make sure to remember all resultChris Lattner2005-01-091-16/+10
| | | | | | values), and eliminate some switch statements. llvm-svn: 19417
* Fix a minor bug legalizing dynamic_stackalloc. This allows us to compileChris Lattner2005-01-091-0/+2
| | | | | | | | 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++ llvm-svn: 19416
* Teach legalize to deal with DYNAMIC_STACKALLOC (aka a dynamic llvm alloca)Chris Lattner2005-01-091-1/+16
| | | | llvm-svn: 19415
* Initial implementation of FP->INT and INT->FP castsChris Lattner2005-01-091-3/+220
| | | | | | Also, fix zero_extend from bool to i8, which fixes Shootout/objinst. llvm-svn: 19414
* Get lib/Analysis/DataStructure to compile with VC++Jeff Cohen2005-01-096-2/+75
| | | | llvm-svn: 19412
* Workaround a VC++ bug. Microsoft puts the hash_map class in namespace ↵Jeff Cohen2005-01-091-1/+1
| | | | | | | | | | 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. llvm-svn: 19411
* Fix a subtle bug involving constant expr casts from int to fpChris Lattner2005-01-091-2/+2
| | | | llvm-svn: 19410
* Handle static alloca arguments to PHI nodes.Chris Lattner2005-01-091-3/+8
| | | | llvm-svn: 19409
* Implement varargs and returnaddress/frameaddress intrinsics. With thisChris Lattner2005-01-091-1/+66
| | | | | | patch, all of SingleSource/UnitTests passes. llvm-svn: 19408
* Use new interfaces to correctly lower varargs and return/frame address ↵Chris Lattner2005-01-091-25/+61
| | | | | | intrinsics. llvm-svn: 19407
* Add interfaces to lower varargs and return/frame address intrinsics.Chris Lattner2005-01-091-0/+31
| | | | llvm-svn: 19406
* Test fails on all platforms, not just linuxJeff Cohen2005-01-081-1/+1
| | | | llvm-svn: 19405
* Add support for llvm.setjmp and longjmp. Only 3 SingleSource/UnitTests fail ↵Chris Lattner2005-01-081-1/+8
| | | | | | now. llvm-svn: 19404
* Fix VC++ compilation errorJeff Cohen2005-01-081-0/+1
| | | | llvm-svn: 19403
* Add even more missing createXxxPass functions.Jeff Cohen2005-01-089-7/+94
| | | | llvm-svn: 19402
* rename linscan -> LLCBETA as it should beChris Lattner2005-01-081-1/+1
| | | | llvm-svn: 19401
* Okay 15th time is the charm. Looking at the vector size is useless as itChris Lattner2005-01-081-1/+1
| | | | | | gets clobbered by a previous statement. This fixes all calls finally. llvm-svn: 19399
* Okay, my off by one was actually off by two. This fixes ↵Chris Lattner2005-01-081-1/+1
| | | | | | Generic/2003-07-07-BadLongConst.ll llvm-svn: 19398
* Tighten up assertions.Chris Lattner2005-01-081-8/+6
| | | | llvm-svn: 19397
* Fix off by one errorChris Lattner2005-01-081-1/+1
| | | | llvm-svn: 19396
* Allow arrays to have more than 4G elements.Chris Lattner2005-01-081-5/+5
| | | | llvm-svn: 19395
* Allow array types to have 64-bit size.Chris Lattner2005-01-081-4/+4
| | | | llvm-svn: 19394
* Use size_t instead of long to represent memory usage. long is 32 bitsJeff Cohen2005-01-085-16/+16
| | | | | | on 64-bit Windows. llvm-svn: 19393
* Silence warningsChris Lattner2005-01-081-2/+2
| | | | llvm-svn: 19392
* Silence VS warnings.Chris Lattner2005-01-081-37/+37
| | | | llvm-svn: 19391
* Silence VS warnings.Chris Lattner2005-01-083-5/+12
| | | | llvm-svn: 19390
* Silence VS warningsChris Lattner2005-01-081-4/+4
| | | | llvm-svn: 19389
* Silence VS warningsChris Lattner2005-01-081-7/+8
| | | | llvm-svn: 19388
* Adjust prototypeChris Lattner2005-01-081-1/+2
| | | | llvm-svn: 19387
* Silence warnings from VSChris Lattner2005-01-082-3/+5
| | | | llvm-svn: 19386
* Silence VS warningsChris Lattner2005-01-082-2/+2
| | | | llvm-svn: 19385
* Silence VS warnings.Chris Lattner2005-01-083-7/+7
| | | | llvm-svn: 19384
* Fix VS warningsChris Lattner2005-01-082-13/+13
| | | | llvm-svn: 19383
* Fix VS warnings.Chris Lattner2005-01-082-4/+5
| | | | llvm-svn: 19382
* Fix uint64_t -> unsigned VS warnings.Chris Lattner2005-01-082-12/+13
| | | | llvm-svn: 19381
* Silence VS warnings.Chris Lattner2005-01-081-5/+7
| | | | llvm-svn: 19380
* Silence warningsChris Lattner2005-01-082-3/+4
| | | | llvm-svn: 19379
* Do not throw away bits for no reasonChris Lattner2005-01-081-1/+1
| | | | llvm-svn: 19378
* Silence a VS warning.Chris Lattner2005-01-081-1/+1
| | | | llvm-svn: 19377
* Adjust to changes in LowerCallTo interfaceChris Lattner2005-01-081-30/+39
| | | | | | Minor bugfixes llvm-svn: 19376
* Implement handling of most long operators through libcalls.Chris Lattner2005-01-081-5/+65
| | | | | | Fix a bug legalizing "ret (Val,Val)" llvm-svn: 19375
* Adjust to changes in LowerCAllTo interfacesChris Lattner2005-01-081-14/+27
| | | | llvm-svn: 19374
* Make LowerCallTo more generic and useful.Chris Lattner2005-01-081-3/+6
| | | | llvm-svn: 19373
* Another year, another copyright update.John Criswell2005-01-081-1/+1
| | | | llvm-svn: 19372
* Add a few more passes to LinkAllPasses.hJeff Cohen2005-01-082-0/+7
| | | | llvm-svn: 19371
* Add more missing createXxxPass functions.Jeff Cohen2005-01-086-1/+30
| | | | llvm-svn: 19370
* Add support for FP->INT conversions and back.Chris Lattner2005-01-083-17/+42
| | | | llvm-svn: 19369
OpenPOWER on IntegriCloud