Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Use abstract private/comment directives, to increase portability to ppc/linux | Chris Lattner | 2006-09-27 | 1 | -13/+18 |
| | | | | llvm-svn: 30621 | ||||
* | Add support for ${:private} which prints "L" on darwin. | Chris Lattner | 2006-09-27 | 1 | -1/+3 |
| | | | | llvm-svn: 30620 | ||||
* | Add support for ${:comment}, which expands to the current target's comment | Chris Lattner | 2006-09-26 | 1 | -0/+24 |
| | | | | | | | character, and ${:uid} which expands to a unique ID for the MachineInstr. More can be added if/when they are needed. llvm-svn: 30619 | ||||
* | Rename function. It's determining which callee-save registers to save. | Evan Cheng | 2006-09-26 | 1 | -7/+7 |
| | | | | llvm-svn: 30616 | ||||
* | Comments on JumpTableness | Andrew Lenharth | 2006-09-26 | 2 | -0/+4 |
| | | | | llvm-svn: 30615 | ||||
* | Load chain check is not needed | Jim Laskey | 2006-09-26 | 1 | -24/+1 |
| | | | | llvm-svn: 30613 | ||||
* | Chain can be any operand | Jim Laskey | 2006-09-26 | 1 | -11/+9 |
| | | | | llvm-svn: 30611 | ||||
* | Wrong size for load | Jim Laskey | 2006-09-26 | 1 | -2/+8 |
| | | | | llvm-svn: 30610 | ||||
* | Can't move a load node if it's chain is not used. | Jim Laskey | 2006-09-26 | 1 | -1/+22 |
| | | | | llvm-svn: 30609 | ||||
* | Various random and minor code cleanups. | Chris Lattner | 2006-09-26 | 6 | -56/+39 |
| | | | | llvm-svn: 30608 | ||||
* | print the preds of each MBB | Chris Lattner | 2006-09-26 | 1 | -0/+8 |
| | | | | llvm-svn: 30606 | ||||
* | Compile: | Chris Lattner | 2006-09-26 | 2 | -0/+2 |
| | | | | | | | | | | | | | | int x __attribute__((used)); to: .data .comm _x,4 ; 'x' .no_dead_strip _x on both x86 and ppc darwin targets. llvm-svn: 30605 | ||||
* | Add support for targets that want to do something with the llvm.used list, | Chris Lattner | 2006-09-26 | 2 | -2/+22 |
| | | | | | | because they have an aggressive linker that does dead code stripping. llvm-svn: 30604 | ||||
* | Accidental enable of bad code | Jim Laskey | 2006-09-25 | 1 | -1/+1 |
| | | | | llvm-svn: 30601 | ||||
* | Fix chain dropping in load and drop unused stores in ret blocks. | Jim Laskey | 2006-09-25 | 1 | -7/+14 |
| | | | | llvm-svn: 30600 | ||||
* | more notes | Chris Lattner | 2006-09-25 | 1 | -0/+22 |
| | | | | llvm-svn: 30598 | ||||
* | Core antialiasing for load and store. | Jim Laskey | 2006-09-25 | 1 | -53/+282 |
| | | | | llvm-svn: 30597 | ||||
* | Fix jump tables to match gcc (and the ABI and whatnot) | Andrew Lenharth | 2006-09-24 | 3 | -0/+7 |
| | | | | llvm-svn: 30594 | ||||
* | Add support for other relocation bases to jump tables, as well as custom asm ↵ | Andrew Lenharth | 2006-09-24 | 4 | -4/+22 |
| | | | | | | directives llvm-svn: 30593 | ||||
* | jump table note | Andrew Lenharth | 2006-09-24 | 1 | -0/+150 |
| | | | | llvm-svn: 30591 | ||||
* | PIC jump table entries are always 32-bit. This fixes PIC jump table support ↵ | Evan Cheng | 2006-09-24 | 1 | -5/+4 |
| | | | | | | on X86-64. llvm-svn: 30590 | ||||
* | Style changes only. Remove dead code, fix a comment. | Nick Lewycky | 2006-09-23 | 1 | -11/+4 |
| | | | | llvm-svn: 30588 | ||||
* | Be far more careful when splitting a loop header, either to form a preheader | Chris Lattner | 2006-09-23 | 1 | -1/+50 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | or when splitting loops with a common header into multiple loops. In particular the old code would always insert the preheader before the old loop header. This is disasterous in cases where the loop hasn't been rotated. For example, it can produce code like: .. outside the loop... jmp LBB1_2 #bb13.outer LBB1_1: #bb1 movsd 8(%esp,%esi,8), %xmm1 mulsd (%edi), %xmm1 addsd %xmm0, %xmm1 addl $24, %edi incl %esi jmp LBB1_3 #bb13 LBB1_2: #bb13.outer leal (%edx,%eax,8), %edi pxor %xmm1, %xmm1 xorl %esi, %esi LBB1_3: #bb13 movapd %xmm1, %xmm0 cmpl $4, %esi jl LBB1_1 #bb1 Note that the loop body is actually LBB1_1 + LBB1_3, which means that the loop now contains an uncond branch WITHIN it to jump around the inserted loop header (LBB1_2). Doh. This patch changes the preheader insertion code to insert it in the right spot, producing this code: ... outside the loop, fall into the header ... LBB1_1: #bb13.outer leal (%edx,%eax,8), %esi pxor %xmm0, %xmm0 xorl %edi, %edi jmp LBB1_3 #bb13 LBB1_2: #bb1 movsd 8(%esp,%edi,8), %xmm0 mulsd (%esi), %xmm0 addsd %xmm1, %xmm0 addl $24, %esi incl %edi LBB1_3: #bb13 movapd %xmm0, %xmm1 cmpl $4, %edi jl LBB1_2 #bb1 Totally crazy, no branch in the loop! :) llvm-svn: 30587 | ||||
* | Teach UpdateDomInfoForRevectoredPreds to handle revectored preds that are not | Chris Lattner | 2006-09-23 | 1 | -91/+49 |
| | | | | | | | | reachable, making it general purpose enough for use by InsertPreheaderForLoop. Eliminate custom dominfo updating code in InsertPreheaderForLoop, using UpdateDomInfoForRevectoredPreds instead. llvm-svn: 30586 | ||||
* | add method, correct comment | Chris Lattner | 2006-09-23 | 1 | -3/+10 |
| | | | | llvm-svn: 30584 | ||||
* | Delete dead code; fix 80 col violations. | Evan Cheng | 2006-09-22 | 2 | -14/+4 |
| | | | | llvm-svn: 30583 | ||||
* | add a note | Rafael Espindola | 2006-09-22 | 1 | -0/+21 |
| | | | | llvm-svn: 30581 | ||||
* | Fold AND and ROTL more often | Nate Begeman | 2006-09-22 | 3 | -62/+62 |
| | | | | llvm-svn: 30577 | ||||
* | remove extra white spaces. | Devang Patel | 2006-09-22 | 1 | -1/+1 |
| | | | | llvm-svn: 30576 | ||||
* | Use iterative algorith to assign DFS number. This reduces | Devang Patel | 2006-09-22 | 1 | -0/+47 |
| | | | | | | call stack depth. llvm-svn: 30575 | ||||
* | Make it work for DAG combine of multi-value nodes. | Evan Cheng | 2006-09-21 | 1 | -2/+7 |
| | | | | llvm-svn: 30573 | ||||
* | core corrections | Jim Laskey | 2006-09-21 | 1 | -10/+4 |
| | | | | llvm-svn: 30570 | ||||
* | Basic "in frame" alias analysis. | Jim Laskey | 2006-09-21 | 1 | -2/+50 |
| | | | | llvm-svn: 30568 | ||||
* | more condition codes | Rafael Espindola | 2006-09-21 | 1 | -1/+8 |
| | | | | llvm-svn: 30567 | ||||
* | if a constant can't be an immediate, add it to the constant pool | Rafael Espindola | 2006-09-21 | 1 | -4/+34 |
| | | | | llvm-svn: 30566 | ||||
* | fold (aext (and (trunc x), cst)) -> (and x, cst). | Chris Lattner | 2006-09-21 | 1 | -0/+15 |
| | | | | llvm-svn: 30561 | ||||
* | Check the right value type. This fixes 186.crafty on x86 | Chris Lattner | 2006-09-21 | 1 | -1/+2 |
| | | | | llvm-svn: 30560 | ||||
* | implemented | Chris Lattner | 2006-09-21 | 1 | -35/+0 |
| | | | | llvm-svn: 30559 | ||||
* | Compile: | Chris Lattner | 2006-09-21 | 1 | -0/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | int %test(ulong *%tmp) { %tmp = load ulong* %tmp ; <ulong> [#uses=1] %tmp.mask = shr ulong %tmp, ubyte 50 ; <ulong> [#uses=1] %tmp.mask = cast ulong %tmp.mask to ubyte %tmp2 = and ubyte %tmp.mask, 3 ; <ubyte> [#uses=1] %tmp2 = cast ubyte %tmp2 to int ; <int> [#uses=1] ret int %tmp2 } to: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax andl $3, %eax ret instead of: _test: movl 4(%esp), %eax movl 4(%eax), %eax shrl $18, %eax # TRUNCATE movb %al, %al andb $3, %al movzbl %al, %eax ret llvm-svn: 30558 | ||||
* | Generalize (zext (truncate x)) and (sext (truncate x)) folding to work when | Chris Lattner | 2006-09-21 | 1 | -9/+24 |
| | | | | | | | the src/dst are not the same size. This catches things like "truncate 32-bit X to 8 bits, then zext to 16", which happens a bit on X86. llvm-svn: 30557 | ||||
* | Fit in 80-cols | Chris Lattner | 2006-09-21 | 1 | -9/+10 |
| | | | | llvm-svn: 30556 | ||||
* | Fix Transforms/IndVarsSimplify/2006-09-20-LFTR-Crash.ll | Chris Lattner | 2006-09-21 | 1 | -15/+22 |
| | | | | llvm-svn: 30555 | ||||
* | Fix compile error. | Nick Lewycky | 2006-09-21 | 1 | -4/+4 |
| | | | | llvm-svn: 30553 | ||||
* | Don't rewrite ConstantExpr::get. | Nick Lewycky | 2006-09-21 | 1 | -44/+20 |
| | | | | llvm-svn: 30552 | ||||
* | Once we're down to "setcc type constant1, constant2", at least come up | Nick Lewycky | 2006-09-20 | 1 | -18/+14 |
| | | | | | | with the right answer. llvm-svn: 30550 | ||||
* | Adding codegeneration for StdCall & FastCall calling conventions | Anton Korobeynikov | 2006-09-20 | 8 | -71/+780 |
| | | | | llvm-svn: 30549 | ||||
* | Account for pseudo-ops correctly | Andrew Lenharth | 2006-09-20 | 1 | -44/+51 |
| | | | | llvm-svn: 30548 | ||||
* | The DarwinAsmPrinter need not check for isDarwin. createPPCAsmPrinterPass | Chris Lattner | 2006-09-20 | 3 | -14/+15 |
| | | | | | | should create the right asmprinter subclass. llvm-svn: 30542 | ||||
* | Wrap some darwin'isms with isDarwin checks. | Chris Lattner | 2006-09-20 | 1 | -4/+7 |
| | | | | llvm-svn: 30541 | ||||
* | Use a total ordering to compare instructions. | Nick Lewycky | 2006-09-20 | 1 | -87/+101 |
| | | | | | | Fixes infinite loop in resolve(). llvm-svn: 30540 |