| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Silence VC++ redeclaration warnings. | Jeff Cohen | 2005-09-29 | 1 | -4/+6 |
| | | | | | llvm-svn: 23516 | ||||
| * | Never rely on ReplaceAllUsesWith when selecting, use CodeGenMap instead. | Chris Lattner | 2005-09-29 | 1 | -34/+29 |
| | | | | | | | | ReplaceAllUsesWith does not replace scalars SDOperand floating around on the stack, permitting things to be selected multiple times. llvm-svn: 23515 | ||||
| * | Codegen ADD X, IMM -> addis/addi if needed. | Chris Lattner | 2005-09-28 | 1 | -2/+12 |
| | | | | | | | This implements PowerPC/fold-li.ll llvm-svn: 23514 | ||||
| * | add a testcase for a feature we regressed on because noone wrote the test! :( | Chris Lattner | 2005-09-28 | 1 | -0/+14 |
| | | | | | llvm-svn: 23513 | ||||
| * | Autogen MUL, move FP cases together | Chris Lattner | 2005-09-28 | 1 | -24/+12 |
| | | | | | llvm-svn: 23512 | ||||
| * | disentangle FP from INT versions of div/mul | Chris Lattner | 2005-09-28 | 1 | -18/+16 |
| | | | | | llvm-svn: 23511 | ||||
| * | Use the autogenerated matcher for ADD/SUB | Chris Lattner | 2005-09-28 | 1 | -30/+0 |
| | | | | | llvm-svn: 23510 | ||||
| * | add a patter for SUBFIC | Chris Lattner | 2005-09-28 | 1 | -1/+1 |
| | | | | | llvm-svn: 23509 | ||||
| * | Mark int binops as int-only, add FP binops. Mark FADD/FMUL as commutative but | Chris Lattner | 2005-09-28 | 1 | -15/+23 |
| | | | | | | | not associative. Add [SU]REM. llvm-svn: 23508 | ||||
| * | wrap a long line | Chris Lattner | 2005-09-28 | 1 | -1/+2 |
| | | | | | llvm-svn: 23507 | ||||
| * | Add FP versions of the binary operators, keeping the int and fp worlds seperate. | Chris Lattner | 2005-09-28 | 4 | -115/+124 |
| | | | | | llvm-svn: 23506 | ||||
| * | Add FP versions of the binary operators, keeping the int and fp worlds seperate. | Chris Lattner | 2005-09-28 | 4 | -97/+108 |
| | | | | | | | | | Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. llvm-svn: 23505 | ||||
| * | Add FP versions of the binary operators, keeping the int and fp worlds seperate. | Chris Lattner | 2005-09-28 | 4 | -87/+209 |
| | | | | | | | | | Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. llvm-svn: 23504 | ||||
| * | Mark associative nodes as associative | Chris Lattner | 2005-09-28 | 1 | -6/+12 |
| | | | | | llvm-svn: 23503 | ||||
| * | add support for an associative marker | Chris Lattner | 2005-09-28 | 2 | -5/+7 |
| | | | | | llvm-svn: 23502 | ||||
| * | Emit an error if instructions or patterns are defined but can never match. | Chris Lattner | 2005-09-28 | 2 | -3/+52 |
| | | | | | | | | | | | | | | | Currently we check that immediate values live on the RHS of commutative operators. Defining ORI like this, for example: def ORI : DForm_4<24, (ops GPRC:$dst, GPRC:$src1, u16imm:$src2), "ori $dst, $src1, $src2", [(set GPRC:$dst, (or immZExt16:$src2, GPRC:$src1))]>; results in: tblgen: In ORI: Instruction can never match: Immediate values must be on the RHS of commutative operators! llvm-svn: 23501 | ||||
| * | Nate pointed out that mulh[us] are commutative as well. Thanks! | Chris Lattner | 2005-09-28 | 1 | -2/+2 |
| | | | | | llvm-svn: 23500 | ||||
| * | collect commutativity information | Chris Lattner | 2005-09-28 | 2 | -0/+24 |
| | | | | | llvm-svn: 23499 | ||||
| * | expose commutativity information | Chris Lattner | 2005-09-28 | 1 | -8/+17 |
| | | | | | llvm-svn: 23498 | ||||
| * | All (xor *) cases are autogenerated now | Chris Lattner | 2005-09-28 | 1 | -43/+0 |
| | | | | | llvm-svn: 23497 | ||||
| * | add support for missed eqv tests | Chris Lattner | 2005-09-28 | 1 | -0/+9 |
| | | | | | llvm-svn: 23496 | ||||
| * | add testcase for nand | Chris Lattner | 2005-09-28 | 1 | -1/+7 |
| | | | | | llvm-svn: 23495 | ||||
| * | Implement PowerPC/eqv-andc-orc-nor.ll:EQV3 | Chris Lattner | 2005-09-28 | 1 | -1/+5 |
| | | | | | llvm-svn: 23494 | ||||
| * | Consolidate the eqv.ll and nor.ll files together. | Chris Lattner | 2005-09-28 | 3 | -51/+58 |
| | | | | | | | Add a missed eqv case. llvm-svn: 23493 | ||||
| * | Prefer cheaper patterns to more expensive ones. Print the costs to the ↵ | Chris Lattner | 2005-09-28 | 1 | -39/+50 |
| | | | | | | | | | generated file llvm-svn: 23492 | ||||
| * | simple tests for nor generation | Chris Lattner | 2005-09-28 | 1 | -0/+12 |
| | | | | | llvm-svn: 23491 | ||||
| * | learn to codegen not as NOR instead of xoris/xori | Chris Lattner | 2005-09-28 | 1 | -1/+5 |
| | | | | | llvm-svn: 23490 | ||||
| * | These nodes are all autogenerated | Chris Lattner | 2005-09-28 | 1 | -44/+0 |
| | | | | | llvm-svn: 23489 | ||||
| * | Select Constant nodes to TargetConstant nodes | Chris Lattner | 2005-09-28 | 1 | -5/+19 |
| | | | | | llvm-svn: 23488 | ||||
| * | Constant fold llvm.sqrt | Chris Lattner | 2005-09-28 | 1 | -1/+9 |
| | | | | | llvm-svn: 23487 | ||||
| * | add a note about a way to improve this code further, that I won't be getting | Chris Lattner | 2005-09-27 | 1 | -0/+8 |
| | | | | | | | to right now. llvm-svn: 23485 | ||||
| * | Fix a regression in my previous patch, fixing GlobalOpt/2005-09-27-Crash.ll | Chris Lattner | 2005-09-27 | 1 | -1/+1 |
| | | | | | | | and PR632. llvm-svn: 23484 | ||||
| * | Testcase for PR632 | Chris Lattner | 2005-09-27 | 1 | -0/+28 |
| | | | | | llvm-svn: 23483 | ||||
| * | Darwin, like many BSD systems, has a setjmp/longjmp which saves the signal mask | Chris Lattner | 2005-09-27 | 1 | -0/+3 |
| | | | | | | | | | | on setjmp calls and restores it on longjmp calls (both of which require syscalls). This makes the calls REALLY slow. Use _setjmp/_longjmp instead. This speeds up hexxagon from 120.31s to 15.68s: from 5.53x slower than GCC to 28% faster than GCC. llvm-svn: 23482 | ||||
| * | If the target prefers it, use _setjmp/_longjmp should be used instead of ↵ | Chris Lattner | 2005-09-27 | 1 | -2/+6 |
| | | | | | | | setjmp/longjmp for llvm.setjmp/llvm.longjmp. llvm-svn: 23481 | ||||
| * | initialize new flag | Chris Lattner | 2005-09-27 | 1 | -0/+1 |
| | | | | | llvm-svn: 23480 | ||||
| * | Add a new flag for targets where setjmp/longjmp saves/restores the signal mask, | Chris Lattner | 2005-09-27 | 1 | -1/+18 |
| | | | | | | | and _setjmp/_longjmp should be used instead (for llvm.setjmp/llvm.longjmp). llvm-svn: 23479 | ||||
| * | Avoid spilling stack slots... to stack slots. | Chris Lattner | 2005-09-27 | 1 | -0/+6 |
| | | | | | llvm-svn: 23478 | ||||
| * | Completely rewrite 'correct' eh support. This changes how setjmp insertion | Chris Lattner | 2005-09-27 | 1 | -140/+301 |
| | | | | | | | | | | | | | | | | | | is performed so it is only at most once per function that contains an invoke instead of once per invoke in the function. This patch has the following perks: 1. It fixes PR631, which complains about slowness. 2. If fixes PR240, which complains about non-volatile vars being live across setjmp/longjmps. 3. It improves (but does not fix) the jmpbuf alignment issue on itanium by not forcing the jmpbufs to always be 8-bytes off the alignment of the structure. 4. It speeds up 253.perlbmk from 338s to 13.70s (a 25x improvement!), making us now about 4% faster than GCC. Further improvements are also possible. llvm-svn: 23477 | ||||
| * | Make the pass name simpler | Chris Lattner | 2005-09-27 | 1 | -1/+1 |
| | | | | | llvm-svn: 23476 | ||||
| * | fix CBackend/2005-09-27-VolatileFuncPtr.ll | Chris Lattner | 2005-09-27 | 1 | -4/+4 |
| | | | | | llvm-svn: 23475 | ||||
| * | new testcase the CBE creates invalid C code for | Chris Lattner | 2005-09-27 | 1 | -0/+10 |
| | | | | | llvm-svn: 23474 | ||||
| * | allow demotion to volatile values, add support for invoke | Chris Lattner | 2005-09-27 | 1 | -12/+15 |
| | | | | | llvm-svn: 23473 | ||||
| * | allow demotion to volatile values | Chris Lattner | 2005-09-27 | 1 | -1/+1 |
| | | | | | llvm-svn: 23472 | ||||
| * | Add a simple testcase for lowerinvoke | Chris Lattner | 2005-09-27 | 1 | -0/+28 |
| | | | | | llvm-svn: 23471 | ||||
| * | Make sure to clear the CodeGenMap after each basic block is selected to avoid | Chris Lattner | 2005-09-27 | 1 | -0/+1 |
| | | | | | | | cross MBB pollution. llvm-svn: 23470 | ||||
| * | Remove some redundancies. | Jim Laskey | 2005-09-27 | 1 | -10/+10 |
| | | | | | llvm-svn: 23469 | ||||
| * | Make this slightly more efficient by pushing actual type information down | Chris Lattner | 2005-09-27 | 1 | -8/+11 |
| | | | | | | | | into the evaluator. This shrinks a release build of instcombine's text section from 216363 to 215975 bytes (on PPC). llvm-svn: 23468 | ||||
| * | Split SimpleConstantVal up into its components, so each Constant subclass ↵ | Chris Lattner | 2005-09-27 | 1 | -10/+14 |
| | | | | | | | | | | | getsa different enum value. This allows 'classof' for these to be really simple,not needing to call getType() anymore. This speeds up isa/dyncast/etc for constants, and also makes them smaller. For example, the text section of a release build of InstCombine.cpp shrinks from 230037 bytes to 216363 bytes, a 6% reduction. llvm-svn: 23467 | ||||
| * | Split SimpleConstantVal up into its components, so each Constant subclass gets | Chris Lattner | 2005-09-27 | 3 | -35/+32 |
| | | | | | | | | | | | | a different enum value. This allows 'classof' for these to be really simple, not needing to call getType() anymore. This speeds up isa/dyncast/etc for constants, and also makes them smaller. For example, the text section of a release build of InstCombine.cpp shrinks from 230037 bytes to 216363 bytes, a 6% reduction. llvm-svn: 23466 | ||||

