| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Build Alpha by default. | Chris Lattner | 2005-01-23 | 1 | -1/+1 |
| | | | | | llvm-svn: 19777 | ||||
| * | Fix alloca support for Cygwin. On cygwin its __alloca not __builtin_alloca | Reid Spencer | 2005-01-23 | 1 | -1/+4 |
| | | | | | llvm-svn: 19776 | ||||
| * | Support Cygwin assembly generation. The cygwin version of Gnu ASsembler | Reid Spencer | 2005-01-23 | 1 | -11/+37 |
| | | | | | | | | doesn't support certain directives and symbols on cygwin are prefixed with an underscore. This patch makes the necessary adjustments to the output. llvm-svn: 19775 | ||||
| * | Make DiffFilesWithTolerance take sys::Path's instead of std::strings | Chris Lattner | 2005-01-23 | 1 | -55/+9 |
| | | | | | | | Delete dead functions. llvm-svn: 19771 | ||||
| * | Fix a bug in previous checkin | Chris Lattner | 2005-01-23 | 1 | -2/+2 |
| | | | | | llvm-svn: 19769 | ||||
| * | Add a new method, refactored out of fpcmp | Chris Lattner | 2005-01-23 | 1 | -0/+184 |
| | | | | | llvm-svn: 19766 | ||||
| * | Let me introduce you to the early stages of the llvm backend for the alpha ↵ | Andrew Lenharth | 2005-01-22 | 15 | -0/+2305 |
| | | | | | | | processor llvm-svn: 19764 | ||||
| * | Get this to work for 64-bit systems. | Chris Lattner | 2005-01-22 | 1 | -6/+11 |
| | | | | | llvm-svn: 19763 | ||||
| * | Use binary mode for reading/writing bytecode files | Jeff Cohen | 2005-01-22 | 3 | -8/+11 |
| | | | | | llvm-svn: 19751 | ||||
| * | Fix destroyDirectory bug | Jeff Cohen | 2005-01-22 | 1 | -5/+8 |
| | | | | | llvm-svn: 19746 | ||||
| * | Implicitly defined registers can clobber callee saved registers too! | Chris Lattner | 2005-01-22 | 1 | -0/+6 |
| | | | | | | | This fixes the return-address-not-being-saved problem in the Alpha backend. llvm-svn: 19741 | ||||
| * | More bugfixes for IA64 shifts. | Chris Lattner | 2005-01-22 | 1 | -2/+2 |
| | | | | | llvm-svn: 19739 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | 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 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 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | Codegen long >> 2 to this: | Chris Lattner | 2005-01-19 | 1 | -1/+85 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | foo: mov %EAX, DWORD PTR [%ESP + 4] mov %EDX, DWORD PTR [%ESP + 8] shrd %EAX, %EDX, 2 sar %EDX, 2 ret instead of this: test1: mov %ECX, DWORD PTR [%ESP + 4] shr %ECX, 2 mov %EDX, DWORD PTR [%ESP + 8] mov %EAX, %EDX shl %EAX, 30 or %EAX, %ECX sar %EDX, 2 ret and long << 2 to 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 instead of this: foo: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, %EAX shr %ECX, 30 mov %EDX, DWORD PTR [%ESP + 8] shl %EDX, 2 or %EDX, %ECX shl %EAX, 2 ret The extra copy (marked ***) can be eliminated when I teach the code generator that shrd32rri8 is really commutative. llvm-svn: 19681 | ||||

