summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Eliminate more token factors by taking advantage of transitivity:Chris Lattner2006-10-081-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | if TF depends on A and B, and A depends on B, TF just needs to depend on A. With Jim's alias-analysis stuff enabled, this compiles the testcase in PR892 into: __Z4test3Val: subl $44, %esp call L__Z3foov$stub movl %edx, 28(%esp) movl %eax, 32(%esp) movl %eax, 24(%esp) movl %edx, 36(%esp) movl 52(%esp), %ecx movl %ecx, 4(%esp) movl %eax, 8(%esp) movl %edx, 12(%esp) movl 48(%esp), %eax movl %eax, (%esp) call L__Z3bar3ValS_$stub addl $44, %esp ret instead of: __Z4test3Val: subl $44, %esp call L__Z3foov$stub movl %eax, 24(%esp) movl %edx, 28(%esp) movl 24(%esp), %eax movl %eax, 32(%esp) movl 28(%esp), %eax movl %eax, 36(%esp) movl 32(%esp), %eax movl 36(%esp), %ecx movl 52(%esp), %edx movl %edx, 4(%esp) movl %eax, 8(%esp) movl %ecx, 12(%esp) movl 48(%esp), %eax movl %eax, (%esp) call L__Z3bar3ValS_$stub addl $44, %esp ret llvm-svn: 30821
* Combiner alias analysis passes Multisource (release-asserts.)Jim Laskey2006-10-071-88/+71
| | | | llvm-svn: 30818
* completely disable folding of loads into scalar sse instructions and provideChris Lattner2006-10-072-14/+61
| | | | | | | | | | a framework for doing it right. This fixes CodeGen/X86/2006-10-07-ScalarSSEMiscompile.ll. Once X86DAGToDAGISel::SelectScalarSSELoad is implemented right, this task will be done. llvm-svn: 30817
* convert packed FP add/sub/mul/div to use a multiclass.Chris Lattner2006-10-071-63/+32
| | | | llvm-svn: 30815
* one multiclass now defines all 8 variants of binary-scalar-sse-fp operations.Chris Lattner2006-10-071-49/+64
| | | | llvm-svn: 30814
* Switch ADD/MUL/DIV/SUB scalarsse fp ops to a multiclassChris Lattner2006-10-071-53/+27
| | | | llvm-svn: 30813
* Random acts of shrinkageChris Lattner2006-10-071-34/+24
| | | | llvm-svn: 30812
* Convert pand/por/pxor to use multiclassChris Lattner2006-10-071-25/+4
| | | | llvm-svn: 30811
* Convert some more instructions over to use a new multiclass.Chris Lattner2006-10-071-27/+19
| | | | | | Fix a bug where the asmstring for PSUBQrm was wrong. llvm-svn: 30810
* Fix a bug where PADDQrm printed paddd instead of paddq.Chris Lattner2006-10-071-1/+1
| | | | llvm-svn: 30809
* Add multiclass for SSE2 instructions that correspond to simple binops.Chris Lattner2006-10-071-56/+35
| | | | llvm-svn: 30808
* rename:Chris Lattner2006-10-071-40/+40
| | | | | | | | | PDI_binop_rm -> PDI_binop_rm_int PDI_binop_rmi -> PDI_binop_rmi_int to make it clear that these are for use with intrinsics. llvm-svn: 30807
* Convert saturating PADD/PSUB's to use a multiclassChris Lattner2006-10-071-72/+10
| | | | llvm-svn: 30806
* Convert PAVG*, PMADDWD, and PMUL* to use multiclasses.Chris Lattner2006-10-071-84/+39
| | | | llvm-svn: 30805
* Fix typo in packsswb instr definition, where the load had the wrong type.Chris Lattner2006-10-071-15/+1
| | | | | | This allows us to use the multiclass for other packs. llvm-svn: 30804
* implement FUITOS and FUITODRafael Espindola2006-10-072-1/+31
| | | | llvm-svn: 30803
* implement FLDDRafael Espindola2006-10-072-5/+11
| | | | llvm-svn: 30802
* implement fadds, faddd, fmuls and fmuldRafael Espindola2006-10-071-0/+18
| | | | llvm-svn: 30801
* handle pmin/pmax with multiclassesChris Lattner2006-10-071-50/+10
| | | | llvm-svn: 30800
* simplify pack and shift intrinsics with multiclassesChris Lattner2006-10-071-137/+46
| | | | llvm-svn: 30797
* Use a multiclass to simplify 'SSE2 Integer comparison'Chris Lattner2006-10-071-61/+19
| | | | llvm-svn: 30796
* move class defns close to uses to make it easier to readChris Lattner2006-10-071-17/+18
| | | | llvm-svn: 30795
* simplify horizontal op definitionsChris Lattner2006-10-071-26/+21
| | | | llvm-svn: 30794
* remove more unneeded type infoChris Lattner2006-10-071-51/+51
| | | | llvm-svn: 30793
* remove unneeded definitions and type infoChris Lattner2006-10-071-3/+0
| | | | llvm-svn: 30792
* remove some unneeded type infoChris Lattner2006-10-071-30/+28
| | | | llvm-svn: 30791
* simplify patterns by merging in operand infoChris Lattner2006-10-071-33/+29
| | | | llvm-svn: 30790
* Factor operands into packed unary classesChris Lattner2006-10-071-24/+20
| | | | llvm-svn: 30789
* remove dead/duplicate instructionsChris Lattner2006-10-071-21/+0
| | | | llvm-svn: 30788
* Pull operand info up into parent class for scalar sse intrinsics.Chris Lattner2006-10-071-58/+38
| | | | llvm-svn: 30787
* convert the sole sd unary intrinsic to a multiclass for consistencyChris Lattner2006-10-071-19/+9
| | | | llvm-svn: 30786
* pull operand string into the multiclassChris Lattner2006-10-071-10/+9
| | | | llvm-svn: 30785
* Remove RSQRTSS[rm] RCPSS[rm], which are dead.Chris Lattner2006-10-071-21/+16
| | | | | | Introduce SS_IntUnary, a multiclass to replace SS_Int[rm]. llvm-svn: 30784
* eliminate redundancyChris Lattner2006-10-071-60/+32
| | | | llvm-svn: 30783
* Fix a bug legalizing zero-extending i64 loads into 32-bit loads. The bottomChris Lattner2006-10-071-3/+2
| | | | | | part was always forced to be sextload, even when we needed an zextload. llvm-svn: 30782
* Set the jt sectionChris Lattner2006-10-061-0/+1
| | | | llvm-svn: 30781
* initialize ivarChris Lattner2006-10-061-0/+1
| | | | llvm-svn: 30780
* If a target uses a GOT, put it in the jt data section, not the textChris Lattner2006-10-061-4/+12
| | | | | | | section. This will fix alpha when Andrew implements AlphaTargetMachine::getTargetLowering(). llvm-svn: 30779
* Alpha uses a gotChris Lattner2006-10-061-0/+2
| | | | llvm-svn: 30778
* jump tables handle picChris Lattner2006-10-061-5/+0
| | | | llvm-svn: 30776
* print labels even if a MBB doesn't have a corresponding LLVM BB, just don'tChris Lattner2006-10-061-3/+4
| | | | | | print the LLVM BB label. llvm-svn: 30775
* add optional input flag to FMRRDRafael Espindola2006-10-062-3/+4
| | | | llvm-svn: 30774
* add support for calling functions that return doubleRafael Espindola2006-10-061-8/+19
| | | | llvm-svn: 30771
* 80 col violation.Evan Cheng2006-10-061-3/+4
| | | | llvm-svn: 30770
* ugly codegenChris Lattner2006-10-061-0/+22
| | | | llvm-svn: 30769
* Fix a miscompilation of:Chris Lattner2006-10-061-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | long long foo(long long X) { return (long long)(signed char)(int)X; } Instead of: _foo: extsb r2, r4 srawi r3, r4, 31 mr r4, r2 blr we now produce: _foo: extsb r4, r4 srawi r3, r4, 31 blr This fixes a miscompilation in ConstantFolding.cpp. llvm-svn: 30768
* fix some bugs affecting functions with no argumentsRafael Espindola2006-10-061-2/+4
| | | | llvm-svn: 30767
* fix the stack alignmentRafael Espindola2006-10-061-0/+3
| | | | llvm-svn: 30766
* add support for calling functions that have double argumentsRafael Espindola2006-10-061-7/+22
| | | | llvm-svn: 30765
* Still need to support -mcpu=<> or cross compilation will fail. Doh.Evan Cheng2006-10-064-7/+195
| | | | llvm-svn: 30764
OpenPOWER on IntegriCloud