| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Fix problems with non-x86 targets. | Chris Lattner | 2005-01-22 | 1 | -3/+3 |
| | | | | | llvm-svn: 19738 | ||||
| * | Add a nasty hack to fix Alpha/IA64 multiplies by a power of two. | Chris Lattner | 2005-01-22 | 1 | -4/+9 |
| | | | | | llvm-svn: 19737 | ||||
| * | Remove unneeded line. | Chris Lattner | 2005-01-21 | 1 | -1/+0 |
| | | | | | llvm-svn: 19736 | ||||
| * | test commit | Chris Lattner | 2005-01-21 | 1 | -0/+1 |
| | | | | | llvm-svn: 19735 | ||||
| * | Handle comparisons of gep instructions that have different typed indices | Chris Lattner | 2005-01-21 | 1 | -5/+9 |
| | | | | | | | as long as they are the same size. llvm-svn: 19734 | ||||
| * | Speed up folding operations into loads. | Chris Lattner | 2005-01-21 | 1 | -1/+2 |
| | | | | | llvm-svn: 19733 | ||||
| * | Keep track of node depth for each node | Chris Lattner | 2005-01-21 | 1 | -6/+39 |
| | | | | | llvm-svn: 19732 | ||||
| * | The ever-important vanity pass name :) | Chris Lattner | 2005-01-21 | 1 | -0/+4 |
| | | | | | llvm-svn: 19731 | ||||
| * | If the interpreter tries to execute an external function, kill it. Of course | Chris Lattner | 2005-01-21 | 1 | -6/+8 |
| | | | | | | | | | since we are dirty, special case __main. This should fix the infinite loop horrible stuff that happens on linux-alpha when configuring llvm-gcc. It might also help cygwin, who knows?? llvm-svn: 19729 | ||||
| * | Fix a FIXME: realize that argument stores are all independent (don't alias) | Chris Lattner | 2005-01-21 | 1 | -6/+7 |
| | | | | | llvm-svn: 19728 | ||||
| * | Unary token factor nodes are unneeded. | Chris Lattner | 2005-01-21 | 1 | -0/+2 |
| | | | | | llvm-svn: 19727 | ||||
| * | Refactor libcall code a bit. Initial implementation of expanding int -> FP | Chris Lattner | 2005-01-21 | 1 | -50/+121 |
| | | | | | | | operations for 64-bit integers. llvm-svn: 19724 | ||||
| * | Apparently destroyFile() now throws an exception. Since this class is | Chris Lattner | 2005-01-20 | 1 | -2/+4 |
| | | | | | | | | designed to be put on the stack, that's not cool. Catch and ignore the exception. llvm-svn: 19723 | ||||
| * | Remove this test. This test is already in PR269, so it should be | Chris Lattner | 2005-01-20 | 1 | -15/+0 |
| | | | | | | | readded when the bug is fixed. llvm-svn: 19722 | ||||
| * | Simplify the shift-expansion code. | Chris Lattner | 2005-01-20 | 1 | -8/+7 |
| | | | | | llvm-svn: 19721 | ||||
| * | Implement ADD_PARTS/SUB_PARTS so that 64-bit integer add/sub work. This | Chris Lattner | 2005-01-20 | 1 | -6/+32 |
| | | | | | | | fixes most of the remaining llc-beta failures. llvm-svn: 19716 | ||||
| * | Expand add/sub into ADD_PARTS/SUB_PARTS instead of a non-existant libcall. | Chris Lattner | 2005-01-20 | 1 | -2/+41 |
| | | | | | llvm-svn: 19715 | ||||
| * | implement add_parts/sub_parts. | Chris Lattner | 2005-01-20 | 1 | -3/+8 |
| | | | | | llvm-svn: 19714 | ||||
| * | Eliminate the unimplemented ADDC/SUBB operations, add ADD_PARTS/SUB_PARTS ↵ | Chris Lattner | 2005-01-20 | 1 | -4/+6 |
| | | | | | | | instead. llvm-svn: 19713 | ||||
| * | Add missing entry. | Chris Lattner | 2005-01-20 | 1 | -0/+1 |
| | | | | | llvm-svn: 19712 | ||||
| * | Fix a crash compiling 134.perl. | Chris Lattner | 2005-01-20 | 1 | -21/+41 |
| | | | | | llvm-svn: 19711 | ||||
| * | Get analyze to show all analysis options when compiled with VC++ | Jeff Cohen | 2005-01-20 | 2 | -0/+3 |
| | | | | | llvm-svn: 19710 | ||||
| * | Add analyze project to Visual Studio | Jeff Cohen | 2005-01-20 | 2 | -0/+159 |
| | | | | | llvm-svn: 19709 | ||||
| * | Add project llvm-proj to Visual Studio | Jeff Cohen | 2005-01-20 | 2 | -0/+151 |
| | | | | | llvm-svn: 19708 | ||||
| * | Support targets that do not use i8 shift amounts. | Chris Lattner | 2005-01-19 | 1 | -0/+4 |
| | | | | | llvm-svn: 19707 | ||||
| * | Add two optimizations. The first folds (X+Y)-X -> Y | Chris Lattner | 2005-01-19 | 1 | -2/+89 |
| | | | | | | | | | | | | | | | | | | The second folds operations into selects, e.g. (select C, (X+Y), (Y+Z)) -> (Y+(select C, X, Z) This occurs a few times across spec, e.g. select add/sub mesa: 83 0 povray: 5 2 gcc 4 2 parser 0 22 perlbmk 13 30 twolf 0 3 llvm-svn: 19706 | ||||
| * | Add some new tests | Chris Lattner | 2005-01-19 | 1 | -0/+14 |
| | | | | | llvm-svn: 19705 | ||||
| * | Add an assertion that would have made more sense to duraid | Chris Lattner | 2005-01-19 | 1 | -1/+3 |
| | | | | | llvm-svn: 19704 | ||||
| * | Add support for targets that pass args in registers to calls. | Chris Lattner | 2005-01-19 | 1 | -6/+25 |
| | | | | | llvm-svn: 19703 | ||||
| * | Add an accessor for targets that pass args in regs | Chris Lattner | 2005-01-19 | 1 | -0/+14 |
| | | | | | llvm-svn: 19702 | ||||
| * | Fold single use token factor nodes into other token factor nodes. | Chris Lattner | 2005-01-19 | 1 | -2/+10 |
| | | | | | llvm-svn: 19701 | ||||
| * | Realize the individual pieces of an expanded copytoreg/store/load are | Chris Lattner | 2005-01-19 | 1 | -9/+16 |
| | | | | | | | independent of each other. llvm-svn: 19700 | ||||
| * | Know some identities about tokenfactor nodes. | Chris Lattner | 2005-01-19 | 1 | -0/+11 |
| | | | | | llvm-svn: 19699 | ||||
| * | Know some simple identities. This improves codegen for (1LL << N). | Chris Lattner | 2005-01-19 | 1 | -0/+13 |
| | | | | | llvm-svn: 19698 | ||||
| * | Fix a problem where were were literally selecting for INCREASED register | Chris Lattner | 2005-01-19 | 1 | -8/+8 |
| | | | | | | | | | pressure, not decreases register pressure. Fix problem where we accidentally swapped the operands of SHLD, which caused fourinarow to fail. This fixes fourinarow. llvm-svn: 19697 | ||||
| * | Just in case, handle something that is both a use and a def. | Chris Lattner | 2005-01-19 | 1 | -1/+2 |
| | | | | | llvm-svn: 19696 | ||||
| * | When an instruction moves, make sure to update the VarInfo::Kills list as | Chris Lattner | 2005-01-19 | 1 | -3/+10 |
| | | | | | | | | well as all of teh other stuff in livevar. This fixes the compiler crash on fourinarow last night. llvm-svn: 19695 | ||||
| * | When commuting these instructions, make sure to actually swap the operands too. | Chris Lattner | 2005-01-19 | 1 | -1/+1 |
| | | | | | llvm-svn: 19694 | ||||
| * | Fix 'raise' to work with packed types. Patch by Morten Ofstad. | Chris Lattner | 2005-01-19 | 1 | -1/+1 |
| | | | | | llvm-svn: 19693 | ||||
| * | Implement Regression/CodeGen/X86/rotate.ll: emit rotate instructions (which | Chris Lattner | 2005-01-19 | 1 | -38/+79 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | typically cost 1 cycle) instead of shld/shrd instruction (which are typically 6 or more cycles). This also saves code space. For example, instead of emitting: rotr: mov %EAX, DWORD PTR [%ESP + 4] mov %CL, BYTE PTR [%ESP + 8] shrd %EAX, %EAX, %CL ret rotli: mov %EAX, DWORD PTR [%ESP + 4] shrd %EAX, %EAX, 27 ret Emit: rotr32: mov %CL, BYTE PTR [%ESP + 8] mov %EAX, DWORD PTR [%ESP + 4] ror %EAX, %CL ret rotli32: mov %EAX, DWORD PTR [%ESP + 4] ror %EAX, 27 ret We also emit byte rotate instructions which do not have a sh[lr]d counterpart at all. llvm-svn: 19692 | ||||
| * | New testcase for rotate instructions. Each function should codegen to a | Chris Lattner | 2005-01-19 | 1 | -0/+91 |
| | | | | | | | rotate. llvm-svn: 19691 | ||||
| * | Add rotate instructions. | Chris Lattner | 2005-01-19 | 2 | -0/+75 |
| | | | | | llvm-svn: 19690 | ||||
| * | Match 16-bit shld/shrd instructions as well, implementing shift-double.llx:test5 | Chris Lattner | 2005-01-19 | 1 | -16/+20 |
| | | | | | llvm-svn: 19689 | ||||
| * | Add a test for 16-bit sh*d. | Chris Lattner | 2005-01-19 | 1 | -1/+9 |
| | | | | | llvm-svn: 19688 | ||||
| * | Improve coverage of the X86 instruction set by adding 16-bit shift doubles. | Chris Lattner | 2005-01-19 | 3 | -3/+45 |
| | | | | | llvm-svn: 19687 | ||||
| * | Teach the code generator that shrd/shld is commutable if it has an immediate. | Chris Lattner | 2005-01-19 | 3 | -0/+29 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to generate this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, DWORD PTR [%ESP + 8] shld %EDX, %EDX, 2 shl %EAX, 2 ret instead of this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] mov %EDX, %EAX shrd %EDX, %ECX, 30 shl %EAX, 2 ret Note the magically transmogrifying immediate. llvm-svn: 19686 | ||||
| * | Use the TargetInstrInfo::commuteInstruction method to commute instructions | Chris Lattner | 2005-01-19 | 1 | -6/+17 |
| | | | | | | | instead of doing it manually. llvm-svn: 19685 | ||||
| * | Finegrainify namespacification | Chris Lattner | 2005-01-19 | 1 | -7/+20 |
| | | | | | | | | Add default impl of commuteInstruction Add notes about ugly V9 code. llvm-svn: 19684 | ||||
| * | Add a new method, described in the comment. | Chris Lattner | 2005-01-19 | 1 | -0/+12 |
| | | | | | llvm-svn: 19683 | ||||
| * | Ensure that each these functions generates a sh[rl]d instruction. | Chris Lattner | 2005-01-19 | 1 | -0/+22 |
| | | | | | llvm-svn: 19682 | ||||

