summaryrefslogtreecommitdiffstats
path: root/llvm/lib
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-091-1/+2
| | | | llvm-svn: 19412
* 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 support for llvm.setjmp and longjmp. Only 3 SingleSource/UnitTests fail ↵Chris Lattner2005-01-081-1/+8
| | | | | | now. llvm-svn: 19404
* Add even more missing createXxxPass functions.Jeff Cohen2005-01-087-0/+25
| | | | llvm-svn: 19402
* 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
* Use size_t instead of long to represent memory usage. long is 32 bitsJeff Cohen2005-01-083-9/+9
| | | | | | 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
* 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-082-5/+4
| | | | 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
* Add more missing createXxxPass functions.Jeff Cohen2005-01-083-0/+9
| | | | llvm-svn: 19370
* Add support for FP->INT conversions and back.Chris Lattner2005-01-083-17/+42
| | | | llvm-svn: 19369
* Wrap long line.Chris Lattner2005-01-081-2/+2
| | | | llvm-svn: 19367
* Implement the 'store FPIMM, Ptr' -> 'store INTIMM, Ptr' optimization forChris Lattner2005-01-081-0/+25
| | | | | | all targets. llvm-svn: 19366
* 1ULL << 64 is undefined, don't do it.Chris Lattner2005-01-081-2/+3
| | | | llvm-svn: 19365
* The X86 instruction selector already handles codegen of:Chris Lattner2005-01-081-8/+33
| | | | | | | | | | | 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 llvm-svn: 19364
* Fix a pointer invalidation problem. This fixes Generic/badarg6.llChris Lattner2005-01-071-13/+7
| | | | llvm-svn: 19361
* Fold conditional branches on constants away.Chris Lattner2005-01-071-0/+6
| | | | llvm-svn: 19360
* Fix a thinko in the reassociation code, fixing Generic/badlive.llChris Lattner2005-01-071-1/+1
| | | | llvm-svn: 19359
* Add support for truncating integer casts from long.Chris Lattner2005-01-071-1/+13
| | | | llvm-svn: 19358
* Fix a bug in load expansion legalization and ret legalization. This fixesChris Lattner2005-01-071-9/+17
| | | | | | CodeGen/Generic/select.ll:castconst. llvm-svn: 19357
* Legalize unconditional branches tooChris Lattner2005-01-071-0/+6
| | | | llvm-svn: 19356
OpenPOWER on IntegriCloud