| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | ldm / stm instruction encodings. | Evan Cheng | 2008-09-01 | 2 | -6/+28 | |
| | | | | | llvm-svn: 55599 | |||||
| * | AXI2 and AXI3 instruction encodings. | Evan Cheng | 2008-09-01 | 2 | -10/+94 | |
| | | | | | llvm-svn: 55598 | |||||
| * | Reorganize instruction formats again; AXI1 encoding. | Evan Cheng | 2008-09-01 | 1 | -34/+35 | |
| | | | | | llvm-svn: 55597 | |||||
| * | addrmode3 instruction encodings. | Evan Cheng | 2008-09-01 | 2 | -42/+208 | |
| | | | | | llvm-svn: 55596 | |||||
| * | Reorganize some instruction format definitions. No functionality change. | Evan Cheng | 2008-09-01 | 1 | -18/+29 | |
| | | | | | llvm-svn: 55594 | |||||
| * | Rest of addrmode2 instruction encodings. | Evan Cheng | 2008-09-01 | 2 | -14/+106 | |
| | | | | | llvm-svn: 55593 | |||||
| * | Addr2 word / byte load encodings. | Evan Cheng | 2008-08-31 | 2 | -4/+24 | |
| | | | | | llvm-svn: 55591 | |||||
| * | Addr1 instructions opcodes are encoded in bits 21-24; encode S bit. | Evan Cheng | 2008-08-31 | 1 | -4/+5 | |
| | | | | | llvm-svn: 55590 | |||||
| * | fix a bunch of 80-col violations | Gabor Greif | 2008-08-31 | 5 | -33/+65 | |
| | | | | | llvm-svn: 55588 | |||||
| * | Revert the "XFAIL" for the rotate_ops.ll testcase. Instead, mark ISD::ROTR | Bill Wendling | 2008-08-31 | 1 | -3/+7 | |
| | | | | | | | | | instructions in CellSPU as "Expand" so that they won't be generated. I added a "FIXME" so that this hack can be addressed and reverted once ISD::ROTR is supported in the .td files. llvm-svn: 55582 | |||||
| * | Expand for ROTR with MVT::i64. | Bill Wendling | 2008-08-31 | 1 | -0/+1 | |
| | | | | | | | Dale, Could you please review this? llvm-svn: 55581 | |||||
| * | Cosmetic changes to Machine LICM. No functionality change. | Bill Wendling | 2008-08-31 | 1 | -31/+36 | |
| | | | | | llvm-svn: 55578 | |||||
| * | Another situation where ROTR is cheaper than ROTL. | Bill Wendling | 2008-08-31 | 1 | -3/+3 | |
| | | | | | llvm-svn: 55577 | |||||
| * | For this pattern, ROTR is the cheaper option. | Bill Wendling | 2008-08-31 | 1 | -4/+4 | |
| | | | | | llvm-svn: 55576 | |||||
| * | - Fix comment so that it describes how the code really works: | Bill Wendling | 2008-08-31 | 1 | -6/+6 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotl x, y) // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) -> // (rotr x, (sub 32, y)) Example: (x == 0xDEADBEEF and y == 4) (x << 4) | (x >> 28) => 0xEADBEEF0 | 0x0000000D => 0xEADBEEFD (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => 0xEADBEEFD - Fix comment and code for second version. It wasn't using the rot* propertly. // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotr x, y) // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> // (rotl x, (sub 32, y)) (x << 28) | (x >> 4) => 0xD0000000 | 0x0DEADBEE => 0xDDEADBEE (rotl x, 4) => 0xEADBEEFD (rotr x, 28) => (0xEADBEEFD) llvm-svn: 55575 | |||||
| * | typo | Gabor Greif | 2008-08-30 | 1 | -1/+1 | |
| | | | | | llvm-svn: 55574 | |||||
| * | fix some 80-col violations | Gabor Greif | 2008-08-30 | 1 | -19/+23 | |
| | | | | | llvm-svn: 55571 | |||||
| * | PR2731: C and Ocaml bindings for setTailCall and isTailCall. | Gordon Henriksen | 2008-08-30 | 1 | -0/+10 | |
| | | | | | | | Based on patch by Giorgos Korfiatis. llvm-svn: 55570 | |||||
| * | Fix ConstantExpr::getInsertElement. | Gordon Henriksen | 2008-08-30 | 1 | -2/+1 | |
| | | | | | | | | Breakage was exposed in the Ocaml bindings tests after Chris uncommented an assertion in r55084. llvm-svn: 55566 | |||||
| * | fix some 80-col violations | Gabor Greif | 2008-08-30 | 2 | -3/+5 | |
| | | | | | llvm-svn: 55565 | |||||
| * | Re-apply 55467 with fix. If copy is being replaced by remat'ed def, transfer ↵ | Evan Cheng | 2008-08-30 | 2 | -4/+83 | |
| | | | | | | | the implicit defs onto the remat'ed instruction. llvm-svn: 55564 | |||||
| * | Fold isRematerializable checks into isSafeToReMat. | Evan Cheng | 2008-08-30 | 1 | -1/+3 | |
| | | | | | llvm-svn: 55563 | |||||
| * | For now, can't mark XOR64rr isAsCheapAsAMove. It's technically correct. But ↵ | Evan Cheng | 2008-08-30 | 1 | -1/+1 | |
| | | | | | | | various passes cannot handle remating these. llvm-svn: 55562 | |||||
| * | Transform (x << (y&31)) -> (x << y). This takes advantage of the fact x86 ↵ | Evan Cheng | 2008-08-30 | 3 | -0/+116 | |
| | | | | | | | shift instructions 2nd operand (shift count) is limited to 0 to 31 (or 63 in the x86-64 case). llvm-svn: 55558 | |||||
| * | Fix an issue where a use might be selected before a def, and then we didn't ↵ | Owen Anderson | 2008-08-30 | 1 | -8/+23 | |
| | | | | | | | | | | | | respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. llvm-svn: 55555 | |||||
| * | Add ppc partial-word ATOMIC_CMP_SWAP. | Dale Johannesen | 2008-08-30 | 1 | -4/+143 | |
| | | | | | llvm-svn: 55554 | |||||
| * | Swap fp comparison operands and change predicate to allow load folding ↵ | Evan Cheng | 2008-08-29 | 1 | -16/+50 | |
| | | | | | | | (safely this time). llvm-svn: 55553 | |||||
| * | Use static_cast instead of C style cast. | Evan Cheng | 2008-08-29 | 1 | -1/+2 | |
| | | | | | llvm-svn: 55552 | |||||
| * | Fix 80 col. violations. | Evan Cheng | 2008-08-29 | 1 | -2/+4 | |
| | | | | | llvm-svn: 55551 | |||||
| * | Back out 55498. It broken Apple style bootstrapping. | Evan Cheng | 2008-08-29 | 1 | -106/+81 | |
| | | | | | llvm-svn: 55549 | |||||
| * | Backing out 55521. Not safe. | Evan Cheng | 2008-08-29 | 3 | -49/+5 | |
| | | | | | llvm-svn: 55548 | |||||
| * | Add partial word version of ATOMIC_SWAP. | Dale Johannesen | 2008-08-29 | 1 | -50/+29 | |
| | | | | | llvm-svn: 55546 | |||||
| * | Add initial support for fast isel of instructions that have inputs pinned to ↵ | Owen Anderson | 2008-08-29 | 1 | -0/+1 | |
| | | | | | | | physical registers. llvm-svn: 55545 | |||||
| * | regenerate | Chris Lattner | 2008-08-29 | 3 | -1455/+1531 | |
| | | | | | llvm-svn: 55542 | |||||
| * | Asmprint nameless instructions as: | Chris Lattner | 2008-08-29 | 1 | -1/+8 | |
| | | | | | | | | | | | | | | %4 = add ... instead of: add ... ; 4 This makes opt -print-cfg output actually usable and makes .ll files generally easier to read. This fixes PR2480 llvm-svn: 55541 | |||||
| * | Add support for parsing .ll files that have numbers in front of | Chris Lattner | 2008-08-29 | 1 | -5/+39 | |
| | | | | | | | | | | | nameless values, such as: %3 = add i32 4, 2 This fixes the first half of PR2480 llvm-svn: 55539 | |||||
| * | TableGen'ing instruction encodings. | Evan Cheng | 2008-08-29 | 1 | -1/+2 | |
| | | | | | llvm-svn: 55533 | |||||
| * | addrmode1 (data processing) instruction encoding: bits 5-6 are 0, bits 7-10 ↵ | Evan Cheng | 2008-08-29 | 1 | -3/+10 | |
| | | | | | | | encode the opcode. llvm-svn: 55531 | |||||
| * | MVN is addrmode1. | Evan Cheng | 2008-08-29 | 1 | -7/+7 | |
| | | | | | llvm-svn: 55530 | |||||
| * | More refactoring. | Evan Cheng | 2008-08-29 | 2 | -45/+55 | |
| | | | | | llvm-svn: 55528 | |||||
| * | Swap fp comparison operands and change predicate to allow load folding. | Evan Cheng | 2008-08-28 | 3 | -5/+49 | |
| | | | | | llvm-svn: 55521 | |||||
| * | Refactor ARM instruction format definitions into a separate file. No ↵ | Evan Cheng | 2008-08-28 | 2 | -215/+232 | |
| | | | | | | | functionality changes. llvm-svn: 55518 | |||||
| * | Add a target callback for FastISel. | Dan Gohman | 2008-08-28 | 2 | -2/+27 | |
| | | | | | llvm-svn: 55512 | |||||
| * | remove tabs, fix > 80 cols | Gabor Greif | 2008-08-28 | 1 | -10/+16 | |
| | | | | | llvm-svn: 55511 | |||||
| * | rename destroy -> releaseMemory to properly hook into passmgr. | Chris Lattner | 2008-08-28 | 1 | -2/+2 | |
| | | | | | llvm-svn: 55508 | |||||
| * | Add support for JIT exceptions on Darwin. Since we're dealing with libgcc, | Nicolas Geoffray | 2008-08-28 | 1 | -2/+135 | |
| | | | | | | | | whose darwin code was written after the ability to dynamically register frames, we need to do special hacks to make things work. llvm-svn: 55507 | |||||
| * | erect abstraction boundaries for accessing SDValue members, rename Val -> ↵ | Gabor Greif | 2008-08-28 | 34 | -1105/+1113 | |
| | | | | | | | Node to reflect semantics llvm-svn: 55504 | |||||
| * | Implement null and undef values for FastISel. | Dan Gohman | 2008-08-28 | 1 | -0/+5 | |
| | | | | | llvm-svn: 55500 | |||||
| * | In lowering SELECT_CC, removed cases where we can't flip the true and false ↵ | Mon P Wang | 2008-08-28 | 1 | -8/+0 | |
| | | | | | | | when the compare value has a NaN llvm-svn: 55499 | |||||
| * | Optimize DAGCombiner's worklist processing. Previously it started | Dan Gohman | 2008-08-28 | 1 | -77/+102 | |
| | | | | | | | | | | | | | | its work by putting all nodes in the worklist, requiring a big dynamic allocation. Now, DAGCombiner just iterates over the AllNodes list and maintains a worklist for nodes that are newly created or need to be revisited. This allows the worklist to stay small in most cases, so it can be a SmallVector. This has the side effect of making DAGCombine not miss a folding opportunity in alloca-align-rounding.ll. llvm-svn: 55498 | |||||

