summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Use global info for alias analysis.Jim Laskey2006-10-181-9/+38
| | | | llvm-svn: 31035
* Teach the branch folder to update debug info if it removes blocks with lineChris Lattner2006-10-171-2/+23
| | | | | | # notes in it. llvm-svn: 31026
* add a method to remove a line # record.Chris Lattner2006-10-171-0/+14
| | | | llvm-svn: 31025
* Do not leak all of the SourceLineInfo objects. Do not bother mallocing eachChris Lattner2006-10-172-14/+15
| | | | | | one separately. llvm-svn: 31022
* Trivial patch to speed up legalizing common i64 constants.Chris Lattner2006-10-171-0/+7
| | | | llvm-svn: 31020
* Fix CodeGen/PowerPC/2006-10-17-brcc-miscompile.llChris Lattner2006-10-171-1/+1
| | | | llvm-svn: 31019
* Fix printer for StoreSDNode.Evan Cheng2006-10-171-4/+5
| | | | llvm-svn: 31017
* Reflect MemOpAddrMode change; added a helper to create pre-indexed load.Evan Cheng2006-10-171-4/+68
| | | | llvm-svn: 31016
* Make it simplier to dump DAGs while in DAGCombiner. Remove a nasty ↵Jim Laskey2006-10-173-10/+7
| | | | | | optimization. llvm-svn: 31009
* Enable deleting branches to successor blocks. With the previous patches,Chris Lattner2006-10-171-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | branch folding can now compile stuff like this: void foo(int W, int X, int Y, int Z) { if (W & 1) { for (; X;--X) bar(); } else if (W & 2) { for (; Y;--Y) bar(); } else if (W & 4) { for (; Z;--Z) bar(); } else if (W & 8) { for (; W;--W) bar(); } if (W) { bar(); } } contrived testcase where loops exits all end up merging together. To have the loop merges be: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... instead of: ... cmplw cr0, r30, r27 bne cr0, LBB1_14 ;bb38 LBB1_16: ;cond_next48.loopexit mr r27, r29 b LBB1_20 ;cond_next48 LBB1_17: ;cond_next48.loopexit1 b LBB1_20 ;cond_next48 LBB1_18: ;cond_next48.loopexit2 b LBB1_20 ;cond_next48 LBB1_19: ;cond_next48.loopexit3 LBB1_20: ;cond_next48 cmplwi cr0, r27, 0 beq cr0, LBB1_22 ;UnifiedReturnBlock ... This is CodeGen/PowerPC/branch-opt.ll llvm-svn: 31006
* Clean up interface to getGlobalLinkName.Jim Laskey2006-10-172-4/+4
| | | | llvm-svn: 31001
* Reenable this pass, fixing the bugs in it.Chris Lattner2006-10-171-23/+32
| | | | | | It now correctly deletes unreachable blocks and blocks that are empty. llvm-svn: 31000
* Make sure operand does have size and element type operands.Evan Cheng2006-10-171-1/+2
| | | | llvm-svn: 30999
* Basic support for getGlobalLinkName.Jim Laskey2006-10-172-2/+12
| | | | llvm-svn: 30997
* 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-162-6/+18
| | | | llvm-svn: 30984
* Global name regression.Jim Laskey2006-10-161-1/+5
| | | | llvm-svn: 30982
* Tidy up after truncstore changes.Jim Laskey2006-10-141-46/+9
| | | | llvm-svn: 30961
* Debug tweak.Evan Cheng2006-10-142-4/+4
| | | | llvm-svn: 30959
* 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-142-194/+25
| | | | | | | | | | 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
* disable this pass for now, it's causing issuesChris Lattner2006-10-141-0/+4
| | | | llvm-svn: 30951
* falling off the end of a function is ok with an unreachable instruction.Chris Lattner2006-10-141-28/+57
| | | | llvm-svn: 30950
* Reduce the workload by not adding chain users to work list.Jim Laskey2006-10-131-13/+29
| | | | llvm-svn: 30948
* Fix a bug where we incorrectly turned '(X & 0) == 0' into '(X & 0) >> -1',Chris Lattner2006-10-131-2/+2
| | | | | | which is undefined. "0" isn't a power of 2. llvm-svn: 30947
* Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.Evan Cheng2006-10-135-223/+252
| | | | llvm-svn: 30945
* add the branch folding pass as a late cleanup pass for all targets. For nowChris Lattner2006-10-131-0/+3
| | | | | | it just deletes empty MBB's. Soon it will do more :) llvm-svn: 30941
* disable some objectionable code, maybe we can bring this pass to lifeChris Lattner2006-10-131-7/+42
| | | | llvm-svn: 30939
* Workaround for templatesJim Laskey2006-10-131-0/+10
| | | | llvm-svn: 30927
* Clean up dump.Jim Laskey2006-10-131-2/+2
| | | | llvm-svn: 30926
* 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 RemoveDeadNode to remove a dead node and its (potentially) dead operands.Evan Cheng2006-10-121-0/+33
| | | | llvm-svn: 30916
* add a minor dag combine noticed when looking at PR945Chris Lattner2006-10-121-0/+7
| | | | llvm-svn: 30915
* restore my previous patch, now that the X86 backend bug has been fixed:Chris Lattner2006-10-121-17/+32
| | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20061009/038518.html llvm-svn: 30906
* D'oh - need to use the rigth kind of store.Jim Laskey2006-10-121-3/+6
| | | | llvm-svn: 30903
* Backing out Chris' last commit. It's breaking llvm-gcc bootstrapping.Evan Cheng2006-10-121-32/+17
| | | | | | | | | | | | | It's turning: movl -24(%ebp), %esp subl $16, %esp movl -24(%ebp), %ecx into movl -24(%ebp), %esp subl $16, %esp movl %esp, (%esp) llvm-svn: 30902
* If we see a load from a stack slot into a physreg, consider it as providingChris Lattner2006-10-121-17/+32
| | | | | | the stack slot. This fixes PR943. llvm-svn: 30898
* Alias analysis of TRUNCSTORE.Jim Laskey2006-10-111-1/+28
| | | | llvm-svn: 30889
* TypoJim Laskey2006-10-111-1/+1
| | | | llvm-svn: 30884
* 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-115-20/+20
| | | | llvm-svn: 30878
* Jimptables working again on alpha.Andrew Lenharth2006-10-114-14/+8
| | | | | | As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. llvm-svn: 30873
* add two helper methods.Chris Lattner2006-10-111-1/+90
| | | | llvm-svn: 30869
* FindModifiedNodeSlot needs to add LoadSDNode ivars to create proper ↵Evan Cheng2006-10-111-0/+9
| | | | | | SelectionDAGCSEMap ID. llvm-svn: 30866
* Also update getNodeLabel for LoadSDNode.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30861
* SDNode::dump should also print out extension type and VT.Evan Cheng2006-10-101-0/+21
| | | | llvm-svn: 30860
* Fix another bug in extload promotion.Chris Lattner2006-10-101-1/+2
| | | | llvm-svn: 30857
* Fix a bug introduced by my LOAD/LOADX changes.Evan Cheng2006-10-101-2/+4
| | | | llvm-svn: 30853
OpenPOWER on IntegriCloud