| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Move the post-lsr simplify cfg pass after lowereh, so it can clean up after | Chris Lattner | 2005-09-27 | 1 | -2/+6 | 
| | | | | | | | eh lowering as well. llvm-svn: 23459 | ||||
| * | minor pattern shuffling | Chris Lattner | 2005-09-26 | 1 | -8/+3 | 
| | | | | | llvm-svn: 23458 | ||||
| * | Teach the dag isel generator how to construct arbitrary immediates. The | Chris Lattner | 2005-09-24 | 1 | -1/+6 | 
| | | | | | | | generated isel now tries li then lis, then lis+ori. llvm-svn: 23418 | ||||
| * | Implement the isLoadFromStackSlot interface | Chris Lattner | 2005-09-19 | 2 | -0/+28 | 
| | | | | | llvm-svn: 23387 | ||||
| * | Implement hook for ppc | Chris Lattner | 2005-09-17 | 2 | -0/+18 | 
| | | | | | llvm-svn: 23374 | ||||
| * | disable this for now | Chris Lattner | 2005-09-15 | 1 | -0/+2 | 
| | | | | | llvm-svn: 23366 | ||||
| * | Give all operands names | Chris Lattner | 2005-09-14 | 1 | -1/+1 | 
| | | | | | llvm-svn: 23357 | ||||
| * | give all operands names | Chris Lattner | 2005-09-14 | 2 | -12/+14 | 
| | | | | | llvm-svn: 23356 | ||||
| * | Fix some issues exposed by more testing. XORIS had the wrong operands | Chris Lattner | 2005-09-14 | 1 | -5/+5 | 
| | | | | | | | | specified. The various *imm operands defined by PPC are really all i32, even though the actual immediate is restricted to a smaller value in it. llvm-svn: 23352 | ||||
| * | Fix some bugs noticed by new checking code | Chris Lattner | 2005-09-14 | 1 | -8/+14 | 
| | | | | | llvm-svn: 23350 | ||||
| * | fix a major regression from my patch this afternoon | Chris Lattner | 2005-09-14 | 1 | -0/+1 | 
| | | | | | llvm-svn: 23347 | ||||
| * | we don't need this proto any longer | Chris Lattner | 2005-09-13 | 1 | -1/+0 | 
| | | | | | llvm-svn: 23342 | ||||
| * | move the #include for the generated code into the isel class body so we | Chris Lattner | 2005-09-13 | 1 | -1/+3 | 
| | | | | | | | can use/define class methods llvm-svn: 23339 | ||||
| * | Change the arg lowering code to use copyfromreg from vregs associated | Chris Lattner | 2005-09-13 | 1 | -12/+17 | 
| | | | | | | | | | with incoming arguments instead of the pregs themselves. This fixes the scheduler from causing problems by moving a copyfromreg for an argument to after a select_cc node (now it can, and bad things won't happen). llvm-svn: 23334 | ||||
| * | This has been moved to the target-indep code | Chris Lattner | 2005-09-13 | 1 | -22/+0 | 
| | | | | | llvm-svn: 23333 | ||||
| * | This code is no longer needed, it is moved to the target-indep code | Chris Lattner | 2005-09-13 | 2 | -49/+0 | 
| | | | | | llvm-svn: 23332 | ||||
| * | Majik numbers are bad | Chris Lattner | 2005-09-13 | 1 | -2/+2 | 
| | | | | | llvm-svn: 23330 | ||||
| * | Remove some dead vectors | Chris Lattner | 2005-09-13 | 1 | -4/+0 | 
| | | | | | llvm-svn: 23329 | ||||
| * | PowerPC cannot truncstore i1 natively | Chris Lattner | 2005-09-10 | 3 | -2/+3 | 
| | | | | | llvm-svn: 23304 | ||||
| * | I forgot that we always spill fp values as 64-bits. Implement spill folding | Chris Lattner | 2005-09-09 | 1 | -3/+10 | 
| | | | | | | | for FP as well. This triggers a couple dozen times on 177.mesa (for example). llvm-svn: 23299 | ||||
| * | Fix a problem that Nate noticed, where spill code was not getting coallesced | Chris Lattner | 2005-09-09 | 2 | -0/+32 | 
| | | | | | | | | | | | | | | | | | | | | | | with copies, leading to code like this: lwz r4, 380(r1) or r10, r4, r4 ;; Last use of r4 By teaching the PPC backend how to fold spills into copies, we now get this code: lwz r10, 380(r1) wow. :) This reduces a testcase nate sent me from 1505 instructions to 1484. Note that this could handle FP values but doesn't currently, for reasons mentioned in the patch llvm-svn: 23298 | ||||
| * | code cleanup | Chris Lattner | 2005-09-09 | 1 | -2/+3 | 
| | | | | | llvm-svn: 23297 | ||||
| * | Teach the code generator that rlwimi is commutable if the rotate amount | Chris Lattner | 2005-09-09 | 3 | -1/+38 | 
| | | | | | | | | | is zero. This lets the register allocator elide some copies in some cases. This implements CodeGen/PowerPC/rlwimi-commute.ll llvm-svn: 23292 | ||||
| * | Introduce two new concepts: | Chris Lattner | 2005-09-09 | 1 | -11/+75 | 
| | | | | | | | | | | | | | | | 1. Add support for defining Pattern's, which can match expressions when there is no instruction that directly implements something. Instructions usually implicitly define patterns. 2. Add support for defining SDNodeXForm's, which are node transformations. This seperates the concept of a node xform out from the existing predicate support. Using this new stuff, we add a few instruction patterns, one for testing, and two for OR/XOR by an arbitrary immediate. llvm-svn: 23286 | ||||
| * | whitespace/comment changes, no functionality diffs | Chris Lattner | 2005-09-08 | 1 | -2/+5 | 
| | | | | | llvm-svn: 23283 | ||||
| * | Add a bunch of stuff needed for node type inference. Move 'BLR' down with | Chris Lattner | 2005-09-08 | 1 | -21/+114 | 
| | | | | | | | | the rest of the instructions, add comment markers to seperate portions of the file into logical parts llvm-svn: 23277 | ||||
| * | add patterns for x?oris? | Chris Lattner | 2005-09-08 | 2 | -8/+31 | 
| | | | | | llvm-svn: 23268 | ||||
| * | add patterns to the addi/addis/mulli etc instructions. Define predicates | Chris Lattner | 2005-09-08 | 2 | -16/+52 | 
| | | | | | | | for matching signed 16-bit and shifted 16-bit ppc immediates llvm-svn: 23267 | ||||
| * | Add patterns for some new instructions, allowing the use of the ineg fragment. | Chris Lattner | 2005-09-08 | 2 | -10/+10 | 
| | | | | | llvm-svn: 23266 | ||||
| * | ignore generated files | Chris Lattner | 2005-09-07 | 3 | -0/+3 | 
| | | | | | llvm-svn: 23263 | ||||
| * | Remove some cases handled by the generated portion of the isel | Chris Lattner | 2005-09-07 | 1 | -13/+3 | 
| | | | | | llvm-svn: 23262 | ||||
| * | On non-apple systems, when using -march=ppc32, do not print: | Chris Lattner | 2005-09-07 | 1 | -1/+1 | 
| | | | | | | | | | '' is not a recognized processor for this target (ignoring processor) Default to "generic" instead of "" for the default CPU. llvm-svn: 23257 | ||||
| * | Print: | Chris Lattner | 2005-09-07 | 1 | -4/+4 | 
| | | | | | | | | | | | '' is not a recognized processor for this target (ignoring processor) instead of: is not a recognized processor for this target (ignoring processor) llvm-svn: 23256 | ||||
| * | Implement i64<->fp using the fctidz/fcfid instructions on PowerPC when we | Nate Begeman | 2005-09-06 | 4 | -13/+69 | 
| | | | | | | | | | | are allowed to generate 64-bit-only PowerPC instructions for 32 bit hosts, such as the PowerPC 970. This speeds up 189.lucas from 81.99 to 32.64 seconds. llvm-svn: 23250 | ||||
| * | Fix up the AssertXext problem, as well as adding it at calls | Andrew Lenharth | 2005-09-06 | 2 | -14/+25 | 
| | | | | | llvm-svn: 23246 | ||||
| * | Add note about future optimization noted in the ppc compiler writer's guide | Nate Begeman | 2005-09-06 | 1 | -0/+4 | 
| | | | | | llvm-svn: 23245 | ||||
| * | Add accessor for 64bit flag, so that we can tell when it is safe to | Nate Begeman | 2005-09-06 | 2 | -1/+3 | 
| | | | | | | | generate the fun in-register fp<->long instructions. llvm-svn: 23244 | ||||
| * | revert part of the last change, should fix regressions | Andrew Lenharth | 2005-09-04 | 2 | -6/+11 | 
| | | | | | llvm-svn: 23241 | ||||
| * | explicitly specify an operands list for patterns with inputs (e.g. neg) | Chris Lattner | 2005-09-03 | 1 | -8/+13 | 
| | | | | | llvm-svn: 23240 | ||||
| * | include the dag isel fragment | Chris Lattner | 2005-09-03 | 1 | -0/+2 | 
| | | | | | llvm-svn: 23239 | ||||
| * | ask for a dag isel | Chris Lattner | 2005-09-03 | 1 | -1/+2 | 
| | | | | | llvm-svn: 23238 | ||||
| * | Change the isel to not break out of the big giant switch. Instead, the | Chris Lattner | 2005-09-03 | 1 | -59/+61 | 
| | | | | | | | switch should never be exited, so its bottom is now unreachable. llvm-svn: 23234 | ||||
| * | rearrange logical ops to group them together more consistently. | Chris Lattner | 2005-09-03 | 1 | -16/+42 | 
| | | | | | | | | | Define the PatFrag class which can be used to define subpatterns to match things with. Define 'not', and use it to define the patterns for andc, nand, etc. llvm-svn: 23233 | ||||
| * | Add AND/OR/XOR | Chris Lattner | 2005-09-02 | 2 | -31/+65 | 
| | | | | | llvm-svn: 23232 | ||||
| * | Add some initial patterns to simple binary instructions, though they | Chris Lattner | 2005-09-02 | 2 | -25/+43 | 
| | | | | | | | | | | currently don't do anything. This elides patterns for binary operators that ping on the carry flag, since we don't model it yet. This patch also removes PPC::SUB, because it is dead. llvm-svn: 23230 | ||||
| * | turn on dag isel by default | Chris Lattner | 2005-09-02 | 1 | -3/+3 | 
| | | | | | llvm-svn: 23226 | ||||
| * | Add help support for -mcpu and -mattr. | Jim Laskey | 2005-09-02 | 2 | -21/+54 | 
| | | | | | llvm-svn: 23222 | ||||
| * | Pull out Lowering in preperation for multiple ISels. Oh, and get rid of ↵ | Andrew Lenharth | 2005-09-02 | 3 | -434/+435 | 
| | | | | | | | some stuff llvm-svn: 23220 | ||||
| * | Decouple fsqrt from gpul optimizations, implementing fsqrt.ll. | Chris Lattner | 2005-09-02 | 3 | -8/+8 | 
| | | | | | | | Remove the -enable-gpopt option which is subsumed by feature flags. llvm-svn: 23218 | ||||
| * | Fix VC++ build errors | Jeff Cohen | 2005-09-02 | 1 | -1/+1 | 
| | | | | | llvm-svn: 23210 | ||||

