Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Fix a compilation warning. | Evan Cheng | 2007-12-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 44691 | |||||
* | Initial commit of the machine code LICM pass. It successfully hoists this: | Bill Wendling | 2007-12-07 | 3 | -10/+353 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _foo: li r2, 0 LBB1_1: ; bb li r5, 0 stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr to: _foo: li r2, 0 li r5, 0 LBB1_1: ; bb stw r5, 0(r3) addi r2, r2, 1 addi r3, r3, 4 cmplw cr0, r2, r4 bne cr0, LBB1_1 ; bb LBB1_2: ; return blr ZOMG!! :-) Moar to come... llvm-svn: 44687 | |||||
* | Add comment. | Evan Cheng | 2007-12-07 | 1 | -0/+2 | |
| | | | | llvm-svn: 44686 | |||||
* | Much improved v8i16 shuffles. (Step 1). | Evan Cheng | 2007-12-07 | 1 | -25/+126 | |
| | | | | llvm-svn: 44676 | |||||
* | Add an option to control this heuristic tweak so I can test it. | Evan Cheng | 2007-12-07 | 1 | -1/+6 | |
| | | | | llvm-svn: 44671 | |||||
* | Remove a bogus optimization. It's not possible to do a move to low element ↵ | Evan Cheng | 2007-12-06 | 2 | -7/+1 | |
| | | | | | | to a <8 x i16> or <16 x i8> vector. llvm-svn: 44669 | |||||
* | Redo previous patch so optimization only done for i1. | Dale Johannesen | 2007-12-06 | 1 | -16/+4 | |
| | | | | | | Simpler and safer. llvm-svn: 44663 | |||||
* | Turning simple splitting on. Start testing new coalescer heuristics as new ↵ | Evan Cheng | 2007-12-06 | 1 | -1/+1 | |
| | | | | | | llcbeta. llvm-svn: 44660 | |||||
* | third time around: instead of disabling this completely, | Chris Lattner | 2007-12-06 | 1 | -6/+13 | |
| | | | | | | | only disable it if we don't know it will be obviously profitable. Still fixme, but less so. :) llvm-svn: 44658 | |||||
* | Actually, disable this code for now. More analysis and improvements to | Chris Lattner | 2007-12-06 | 1 | -0/+6 | |
| | | | | | | the X86 backend are needed before this should be enabled by default. llvm-svn: 44657 | |||||
* | implement a readme entry, compiling the code into: | Chris Lattner | 2007-12-06 | 2 | -57/+65 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _foo: movl $12, %eax andl 4(%esp), %eax movl _array(%eax), %eax ret instead of: _foo: movl 4(%esp), %eax shrl $2, %eax andl $3, %eax movl _array(,%eax,4), %eax ret As it turns out, this triggers all the time, in a wide variety of situations, for example, I see diffs like this in various programs: - movl 8(%eax), %eax - shll $2, %eax - andl $1020, %eax - movl (%esi,%eax), %eax + movzbl 8(%eax), %eax + movl (%esi,%eax,4), %eax - shll $2, %edx - andl $1020, %edx - movl (%edi,%edx), %edx + andl $255, %edx + movl (%edi,%edx,4), %edx Unfortunately, I also see stuff like this, which can be fixed in the X86 backend: - andl $85, %ebx - addl _bit_count(,%ebx,4), %ebp + shll $2, %ebx + andl $340, %ebx + addl _bit_count(%ebx), %ebp llvm-svn: 44656 | |||||
* | simplify some code. | Chris Lattner | 2007-12-06 | 1 | -2/+1 | |
| | | | | llvm-svn: 44655 | |||||
* | implement the rest of the functionality from ↵ | Chris Lattner | 2007-12-06 | 1 | -10/+24 | |
| | | | | | | SelectionDAGLegalize::ScalarizeVectorOp llvm-svn: 44654 | |||||
* | Adjust VStudio files to add JITMemoryManager files + include <cassert> from ↵ | Chuck Rose III | 2007-12-06 | 1 | -0/+1 | |
| | | | | | | same. llvm-svn: 44651 | |||||
* | move some ashr-specific code out of commonShiftTransforms into visitAShr. | Chris Lattner | 2007-12-06 | 1 | -15/+16 | |
| | | | | llvm-svn: 44650 | |||||
* | Fix PR1842. | Dale Johannesen | 2007-12-06 | 1 | -4/+16 | |
| | | | | llvm-svn: 44649 | |||||
* | add a new ExecutionEngine::createJIT which can be used if you only want | Chris Lattner | 2007-12-06 | 3 | -8/+33 | |
| | | | | | | | to create a JIT. This lets you specify JIT-specific configuration items like the JITMemoryManager to use. llvm-svn: 44647 | |||||
* | simplify creation of the interpreter, make ExecutionEngine ctor protected, | Chris Lattner | 2007-12-06 | 6 | -25/+11 | |
| | | | | | | delete one ExecutionEngine ctor, minor cleanup. llvm-svn: 44646 | |||||
* | Fix for PR1831: if all defs of an interval are re-materializable, then it's ↵ | Evan Cheng | 2007-12-06 | 2 | -4/+48 | |
| | | | | | | a preferred spill candiate. llvm-svn: 44644 | |||||
* | If both result of the {s|z}xt and its source are live out, rewrite all uses ↵ | Evan Cheng | 2007-12-05 | 1 | -3/+71 | |
| | | | | | | of the source with result of extension. llvm-svn: 44643 | |||||
* | split the JIT memory management code out from the main JIT logic into its | Chris Lattner | 2007-12-05 | 2 | -411/+454 | |
| | | | | | | | own JITMemoryManager interface. There is no functionality change with this patch. llvm-svn: 44640 | |||||
* | add a note | Chris Lattner | 2007-12-05 | 1 | -0/+37 | |
| | | | | llvm-svn: 44638 | |||||
* | add a note | Chris Lattner | 2007-12-05 | 1 | -0/+20 | |
| | | | | llvm-svn: 44637 | |||||
* | Minor updates: | Scott Michel | 2007-12-05 | 1 | -2/+1 | |
| | | | | | | | | - Fix typo in SPUCallingConv.td - Credit myself for CellSPU work - Add CellSPU to 'all' host target list llvm-svn: 44627 | |||||
* | Commit 44487 broke bootstrap of llvm-gcc-4.2. It is | Duncan Sands | 2007-12-05 | 2 | -4/+15 | |
| | | | | | | | not yet clear why, but in the meantime work around the problem by making less use of readnone/readonly info. llvm-svn: 44626 | |||||
* | Added canFoldMemoryOperand for PPC. | Evan Cheng | 2007-12-05 | 2 | -0/+23 | |
| | | | | llvm-svn: 44623 | |||||
* | Update foldMemoryOperand. | Evan Cheng | 2007-12-05 | 2 | -4/+11 | |
| | | | | llvm-svn: 44621 | |||||
* | fix warnings | Chris Lattner | 2007-12-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 44620 | |||||
* | allow this to build | Chris Lattner | 2007-12-05 | 1 | -1/+1 | |
| | | | | llvm-svn: 44619 | |||||
* | Prior commit updated wrong if, apologies. | Neil Booth | 2007-12-05 | 1 | -2/+2 | |
| | | | | llvm-svn: 44614 | |||||
* | Handle zero correctly. | Neil Booth | 2007-12-05 | 1 | -3/+3 | |
| | | | | llvm-svn: 44613 | |||||
* | MachineInstr can change. Store indexes instead. | Evan Cheng | 2007-12-05 | 3 | -14/+23 | |
| | | | | llvm-svn: 44612 | |||||
* | If a split live interval is spilled again, remove the kill marker on its ↵ | Evan Cheng | 2007-12-05 | 3 | -2/+25 | |
| | | | | | | last use. llvm-svn: 44611 | |||||
* | Clobber more bugs. | Evan Cheng | 2007-12-05 | 1 | -2/+3 | |
| | | | | llvm-svn: 44610 | |||||
* | Fix kill info for split intervals. | Evan Cheng | 2007-12-05 | 3 | -23/+37 | |
| | | | | llvm-svn: 44609 | |||||
* | more scalarization | Chris Lattner | 2007-12-05 | 1 | -0/+30 | |
| | | | | llvm-svn: 44608 | |||||
* | scalarize vector binops | Chris Lattner | 2007-12-05 | 1 | -1/+24 | |
| | | | | llvm-svn: 44607 | |||||
* | - Mark last use of a split interval as kill instead of letting spiller track it. | Evan Cheng | 2007-12-05 | 2 | -28/+73 | |
| | | | | | | | | | This allows an important optimization to be re-enabled. - If all uses / defs of a split interval can be folded, give the interval a low spill weight so it would not be picked in case spilling is needed (avoid pushing other intervals in the same BB to be spilled). llvm-svn: 44601 | |||||
* | Add a argument to storeRegToStackSlot and storeRegToAddr to specify whether | Evan Cheng | 2007-12-05 | 22 | -92/+147 | |
| | | | | | | the stored register is killed. llvm-svn: 44600 | |||||
* | More stuff for CellSPU -- this should be enough to get an error-free | Scott Michel | 2007-12-05 | 1 | -0/+9 | |
| | | | | | | compilation (no files missing). Test cases remain to be checked in. llvm-svn: 44598 | |||||
* | Updated source file headers to llvm coding standard. | Scott Michel | 2007-12-05 | 32 | -85/+74 | |
| | | | | llvm-svn: 44597 | |||||
* | Two missing files. | Scott Michel | 2007-12-05 | 2 | -0/+469 | |
| | | | | llvm-svn: 44596 | |||||
* | Main CellSPU backend files checked in. Intrinsics and autoconf files | Scott Michel | 2007-12-05 | 13 | -0/+2697 | |
| | | | | | | remain. llvm-svn: 44595 | |||||
* | Handle 0 correctly in string->APFloat conversion. | Dale Johannesen | 2007-12-05 | 1 | -1/+1 | |
| | | | | llvm-svn: 44594 | |||||
* | Remove a unsafe optimization. This fixes 401.bzip2. | Evan Cheng | 2007-12-04 | 1 | -8/+0 | |
| | | | | llvm-svn: 44587 | |||||
* | More files in the CellSPU drop... | Scott Michel | 2007-12-04 | 3 | -0/+3383 | |
| | | | | llvm-svn: 44584 | |||||
* | More of the Cell SPU code drop from "Team Aerospace". | Scott Michel | 2007-12-04 | 11 | -0/+4792 | |
| | | | | llvm-svn: 44582 | |||||
* | Spiller unfold optimization bug: do not clobber a reusable stack slot value ↵ | Evan Cheng | 2007-12-04 | 1 | -10/+16 | |
| | | | | | | unless it can be modified. llvm-svn: 44575 | |||||
* | Implement framework for scalarizing node results. This is sufficient | Chris Lattner | 2007-12-04 | 1 | -11/+80 | |
| | | | | | | | | | | | | to codegen this: define float @test_extract_elt(<1 x float> * %P) { %p = load <1 x float>* %P %R = extractelement <1 x float> %p, i32 0 ret float %R } llvm-svn: 44570 | |||||
* | start providing framework for scalarizing vectors. | Chris Lattner | 2007-12-04 | 1 | -4/+106 | |
| | | | | llvm-svn: 44569 |