summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* 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
* remove some dead codeChris Lattner2006-10-132-43/+0
| | | | llvm-svn: 30938
* add noteChris Lattner2006-10-131-0/+19
| | | | llvm-svn: 30937
* set isBarrier correctlyChris Lattner2006-10-131-1/+4
| | | | llvm-svn: 30936
* Correctly handle instruction separators.Chris Lattner2006-10-131-14/+11
| | | | llvm-svn: 30935
* Expose method and ivars for measuring inline asm length properly.Chris Lattner2006-10-131-2/+18
| | | | llvm-svn: 30934
* Move some warnings to debug mode.Andrew Lenharth2006-10-134-21/+23
| | | | llvm-svn: 30933
* add FNEGS and FNEGDRafael Espindola2006-10-131-0/+8
| | | | llvm-svn: 30932
* Fix another dtor issue. The function local statics in this function wereChris Lattner2006-10-131-32/+42
| | | | | | | being destroyed at inconvenient times. Switch to using non-local ManagedStatic objects, which actually also speeds up ConstRules::get. llvm-svn: 30931
* add SBCS and SUBSRafael Espindola2006-10-131-0/+8
| | | | llvm-svn: 30930
* implement calls to functions that return longRafael Espindola2006-10-131-9/+16
| | | | llvm-svn: 30929
* implement unordered floating point comparesRafael Espindola2006-10-132-28/+78
| | | | llvm-svn: 30928
* Workaround for templatesJim Laskey2006-10-131-0/+10
| | | | llvm-svn: 30927
* Clean up dump.Jim Laskey2006-10-131-2/+2
| | | | llvm-svn: 30926
* avoid a ctor/dtor issue with the ProgramName global.Chris Lattner2006-10-131-3/+9
| | | | llvm-svn: 30925
* shrink anon-ns and mark stuff static. No functionality changesChris Lattner2006-10-121-10/+11
| | | | llvm-svn: 30922
* add a noteChris Lattner2006-10-121-0/+27
| | | | llvm-svn: 30921
* 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
* Doh. This wasn't causing problems by luck.Evan Cheng2006-10-121-1/+1
| | | | llvm-svn: 30914
* Some X86ISD::CMP were created with wrong ValueType's.Evan Cheng2006-10-121-9/+9
| | | | llvm-svn: 30913
* Fix massive resource leaks in the bytecode reader. Reading a bytecode fileChris Lattner2006-10-122-45/+46
| | | | | | | | | with ParseBytecodeFile used to leak both a ModuleProvider (and related bytecode parser stuff attached to it) AND a file descriptor, which was never closed. This prevented gccld/llvm-ld/llvm-link from linking together apps with more that ~252 .bc files on darwin. llvm-svn: 30912
* mark call adjustments as modifying the SPChris Lattner2006-10-121-2/+2
| | | | llvm-svn: 30911
* adjcallstack up/down clobbers the spChris Lattner2006-10-121-2/+2
| | | | llvm-svn: 30910
* adjcallstackup/down clobbers the stack pointerChris Lattner2006-10-121-2/+2
| | | | llvm-svn: 30909
* mark adjcallstack up/down as clobbering and using the SPChris Lattner2006-10-121-2/+2
| | | | llvm-svn: 30908
* Move the Imp tblgen class from the X86 backend to common code.Chris Lattner2006-10-122-5/+7
| | | | llvm-svn: 30907
* 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
* Mark ADJCALLSTACKUP/DOWN as clobbering ESP so that virtregmap will noticeChris Lattner2006-10-121-2/+6
| | | | | | that it can't assume ESP is unmodified across the instrs. llvm-svn: 30905
* 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
* fix compilation failure of smg2000Chris Lattner2006-10-121-1/+1
| | | | llvm-svn: 30900
* 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
* Replace custom dispatch code with two uses of InstVisitor. ImprovesNick Lewycky2006-10-121-93/+113
| | | | | | compile-time performance. llvm-svn: 30896
* Fold "zero extending vector loads" now that evan added the chain manip stuff.Chris Lattner2006-10-111-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This compiles both tests in X86/vec_ss_load_fold.ll into: _test1: movss 4(%esp), %xmm0 subss LCPI1_0, %xmm0 mulss LCPI1_1, %xmm0 minss LCPI1_2, %xmm0 xorps %xmm1, %xmm1 maxss %xmm1, %xmm0 cvttss2si %xmm0, %eax andl $65535, %eax ret instead of: _test1: movss LCPI1_0, %xmm0 movss 4(%esp), %xmm1 subss %xmm0, %xmm1 movss LCPI1_1, %xmm0 mulss %xmm0, %xmm1 movss LCPI1_2, %xmm0 minss %xmm0, %xmm1 xorps %xmm0, %xmm0 maxss %xmm0, %xmm1 cvttss2si %xmm1, %eax andl $65535, %eax ret llvm-svn: 30894
* ComplexPatterns sse_load_f32 and sse_load_f64 returns in / out chain operands.Evan Cheng2006-10-112-9/+14
| | | | llvm-svn: 30892
* Add properties to ComplexPattern.Evan Cheng2006-10-116-13/+16
| | | | llvm-svn: 30891
* 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
* Reduce the amount of state in the lowering code and drop old pattern ISel ↵Andrew Lenharth2006-10-113-28/+27
| | | | | | functions llvm-svn: 30881
* Fix regression in combiner alias analysis.Jim Laskey2006-10-111-22/+33
| | | | llvm-svn: 30880
* Naming consistency.Evan Cheng2006-10-117-34/+34
| | | | llvm-svn: 30878
* Use cute tblgen tricks to make zap handling more powerful. Specifically,Chris Lattner2006-10-112-21/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | when the dag combiner simplifies an and mask, notice this and allow those bits to be missing from the zap mask. This compiles Alpha/zapnot4.ll into: sll $16,3,$0 zapnot $0,3,$0 ret $31,($26),1 instead of: ldah $0,1($31) lda $0,-8($0) sll $16,3,$1 and $1,$0,$0 ret $31,($26),1 It would be *really* nice to replace the hunk of code in the AlphaISelDAGToDAG.cpp file that matches (and (srl (x, C), c2) into (SRL (ZAPNOTi)) with a similar pattern, but I've spent enough time poking at alpha. Make andrew will do this. llvm-svn: 30875
* Jimptables working again on alpha.Andrew Lenharth2006-10-119-30/+26
| | | | | | As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff. llvm-svn: 30873
* Remove dead/redundant instructions. These are handled by ZAPNOTiChris Lattner2006-10-111-6/+1
| | | | llvm-svn: 30872
* add two helper methods.Chris Lattner2006-10-111-1/+90
| | | | llvm-svn: 30869
* This entry is done. switched to the gcc way of doing things.Andrew Lenharth2006-10-111-150/+0
| | | | llvm-svn: 30867
OpenPOWER on IntegriCloud