summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Removing even more <iostream> includes.Bill Wendling2006-12-071-17/+15
| | | | llvm-svn: 32320
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-3/+3
| | | | | | is 'unsigned'. llvm-svn: 32279
* For better or worse, load from i1 is assumed to be zero extended. Do notChris Lattner2006-11-271-1/+6
| | | | | | form a load from i1 from larger loads that may not be zext'd. llvm-svn: 31933
* Fix PR1011 and CodeGen/Generic/2006-11-20-DAGCombineCrash.llChris Lattner2006-11-201-2/+2
| | | | llvm-svn: 31878
* Fix an incorrectly inverted condition.Evan Cheng2006-11-161-1/+1
| | | | llvm-svn: 31773
* disallow preinc of a frameindex. This is not profitable and causes 2-addrChris Lattner2006-11-111-5/+11
| | | | | | pass to explode. This fixes a bunch of llc-beta failures on ppc last night. llvm-svn: 31661
* reduce indentation by using early exits. No functionality change.Chris Lattner2006-11-111-154/+161
| | | | llvm-svn: 31660
* move big chunks of code out-of-line, no functionality change.Chris Lattner2006-11-111-235/+241
| | | | llvm-svn: 31658
* Fix a dag combiner bug exposed by my recent instcombine patch. This fixesChris Lattner2006-11-101-1/+1
| | | | | | CodeGen/Generic/2006-11-10-DAGCombineMiscompile.ll and PPC gsm/toast llvm-svn: 31644
* When forming a pre-indexed store, make sure ptr isn't the same or is a pred ↵Evan Cheng2006-11-101-7/+16
| | | | | | of value being stored. It would cause a cycle. llvm-svn: 31631
* Don't attempt expensive pre-/post- indexed dag combine if target does not ↵Evan Cheng2006-11-091-1/+18
| | | | | | support them. llvm-svn: 31598
* Rename ISD::MemOpAddrMode to ISD::MemIndexedModeEvan Cheng2006-11-091-2/+2
| | | | llvm-svn: 31595
* getPostIndexedAddressParts change: passes in load/store instead of its ↵Evan Cheng2006-11-091-3/+1
| | | | | | loaded / stored VT. llvm-svn: 31584
* Match more post-indexed ops.Evan Cheng2006-11-081-2/+6
| | | | llvm-svn: 31569
* Remove redundant <cmath>.Jim Laskey2006-11-081-1/+0
| | | | llvm-svn: 31561
* - When performing pre-/post- indexed load/store transformation, do not worryEvan Cheng2006-11-081-90/+29
| | | | | | | | about whether the new base ptr would be live below the load/store. Let two address pass split it back to non-indexed ops. - Minor tweaks / fixes. llvm-svn: 31544
* Fixed a minor bug preventing some pre-indexed load / store transformation.Evan Cheng2006-11-081-3/+3
| | | | llvm-svn: 31543
* Fix a obscure post-indexed load / store dag combine bug.Evan Cheng2006-11-081-1/+1
| | | | llvm-svn: 31537
* Add post-indexed load / store transformations.Evan Cheng2006-11-071-49/+198
| | | | llvm-svn: 31498
* Add comment.Evan Cheng2006-11-061-4/+10
| | | | llvm-svn: 31473
* Unbreak VC++ build.Jeff Cohen2006-11-051-1/+1
| | | | llvm-svn: 31464
* Added pre-indexed store support.Evan Cheng2006-11-051-10/+24
| | | | llvm-svn: 31459
* RenameEvan Cheng2006-11-031-1/+1
| | | | llvm-svn: 31413
* Remove dead variable. Fix 80 column violations.Reid Spencer2006-11-031-3/+3
| | | | llvm-svn: 31412
* Added DAG combiner transformation to generate pre-indexed loads.Evan Cheng2006-11-031-0/+112
| | | | llvm-svn: 31410
* For PR786:Reid Spencer2006-11-021-9/+5
| | | | | | | | | | Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. llvm-svn: 31380
* Add option for controlling inclusion of global AA.Jim Laskey2006-10-181-6/+12
| | | | llvm-svn: 31040
* Use global info for alias analysis.Jim Laskey2006-10-181-9/+38
| | | | llvm-svn: 31035
* Fix CodeGen/PowerPC/2006-10-17-brcc-miscompile.llChris Lattner2006-10-171-1/+1
| | | | llvm-svn: 31019
* Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty ↵Jim Laskey2006-10-171-8/+4
| | | | | | optimization. llvm-svn: 31009
* Make sure operand does have size and element type operands.Evan Cheng2006-10-171-1/+2
| | | | llvm-svn: 30999
* Be careful when looking through a vbit_convert. Optimizing this:Evan Cheng2006-10-161-2/+11
| | | | | | | | | | | (vector_shuffle (vbitconvert (vbuildvector (copyfromreg v4f32), 1, v4f32), 4, f32), (undef, undef, undef, undef), (0, 0, 0, 0), 4, f32) to the vbitconvert is a very bad idea. llvm-svn: 30989
* Pass AliasAnalysis thru to DAGCombiner.Jim Laskey2006-10-161-4/+11
| | | | llvm-svn: 30984
* Tidy up after truncstore changes.Jim Laskey2006-10-141-46/+9
| | | | llvm-svn: 30961
* Make sure that the node returned by SimplifySetCC is added to the worklistChris Lattner2006-10-141-0/+5
| | | | | | so that it can be deleted if unused. llvm-svn: 30955
* fold setcc of a setcc.Chris Lattner2006-10-141-24/+40
| | | | llvm-svn: 30953
* When SimplifySetCC was moved to the DAGCombiner, it was never removed fromChris Lattner2006-10-141-40/+8
| | | | | | | | | | SelectionDAG and it has since bitrotted. Remove the copy from SelectionDAG. Next, remove the constant folding piece of DAGCombiner::SimplifySetCC into a new FoldSetCC method which can be used by getNode() and SimplifySetCC. This fixes obscure bugs. llvm-svn: 30952
* Reduce the workload by not adding chain users to work list.Jim Laskey2006-10-131-13/+29
| | | | llvm-svn: 30948
* Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.Evan Cheng2006-10-131-42/+34
| | | | llvm-svn: 30945
* Lower X%C into X/C+stuff. This allows the 'division by a constant' logic toChris Lattner2006-10-121-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | apply to rems as well as divs. This fixes PR945 and speeds up ReedSolomon from 14.57s to 10.90s (which is now faster than gcc). It compiles CodeGen/X86/rem.ll into: _test1: subl $4, %esp movl %esi, (%esp) movl $2155905153, %ecx movl 8(%esp), %esi movl %esi, %eax imull %ecx addl %esi, %edx movl %edx, %eax shrl $31, %eax sarl $7, %edx addl %eax, %edx imull $255, %edx, %eax subl %eax, %esi movl %esi, %eax movl (%esp), %esi addl $4, %esp ret _test2: movl 4(%esp), %eax movl %eax, %ecx sarl $31, %ecx shrl $24, %ecx addl %eax, %ecx andl $4294967040, %ecx subl %ecx, %eax ret _test3: subl $4, %esp movl %esi, (%esp) movl $2155905153, %ecx movl 8(%esp), %esi movl %esi, %eax mull %ecx shrl $7, %edx imull $255, %edx, %eax subl %eax, %esi movl %esi, %eax movl (%esp), %esi addl $4, %esp ret instead of div/idiv instructions. llvm-svn: 30920
* add a minor dag combine noticed when looking at PR945Chris Lattner2006-10-121-0/+7
| | | | llvm-svn: 30915
* D'oh - need to use the rigth kind of store.Jim Laskey2006-10-121-3/+6
| | | | llvm-svn: 30903
* Alias analysis of TRUNCSTORE.Jim Laskey2006-10-111-1/+28
| | | | llvm-svn: 30889
* Handle aliasing of loadext.Jim Laskey2006-10-111-15/+19
| | | | llvm-svn: 30883
* Fix regression in combiner alias analysis.Jim Laskey2006-10-111-22/+33
| | | | llvm-svn: 30880
* Naming consistency.Evan Cheng2006-10-111-10/+10
| | | | llvm-svn: 30878
* Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.Evan Cheng2006-10-091-144/+155
| | | | llvm-svn: 30844
* 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
* Make use of getStore().Evan Cheng2006-10-051-8/+4
| | | | llvm-svn: 30759
OpenPOWER on IntegriCloud