| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Don't sink argument loads into loops or other bad places. This disables ↵ | Chris Lattner | 2005-02-17 | 1 | -1/+8 |
| | | | | | | | folding of argument loads with instructions that are not in the entry block. llvm-svn: 20228 | ||||
| * | Print GEP offsets as signed values instead of unsigned values. On X86, this | Chris Lattner | 2005-02-14 | 1 | -3/+7 |
| | | | | | | | | | | | | | | | prints: getelementptr (int* %A, int -1) as: "(A) - 4" instead of "(A) + 18446744073709551612", which makes the assembler much happier. This fixes test/Regression/CodeGen/X86/2005-02-14-IllegalAssembler.ll, and Benchmarks/Prolangs-C/cdecl with LLC on X86. llvm-svn: 20183 | ||||
| * | Fix a case where were incorrectly compiled cast from short to int on 64-bit | Chris Lattner | 2005-02-04 | 1 | -2/+4 |
| | | | | | | | targets. llvm-svn: 20030 | ||||
| * | fix constant pointer outputing on 64 bit machines | Andrew Lenharth | 2005-02-04 | 1 | -0/+5 |
| | | | | | llvm-svn: 20026 | ||||
| * | Fix yet another memset issue. | Chris Lattner | 2005-02-02 | 1 | -4/+13 |
| | | | | | llvm-svn: 19986 | ||||
| * | Fix some bugs andrew noticed legalizing memset for alpha | Chris Lattner | 2005-02-01 | 1 | -3/+3 |
| | | | | | llvm-svn: 19969 | ||||
| * | Improve conformance with the Misha spelling benchmark suite | Chris Lattner | 2005-01-30 | 2 | -2/+2 |
| | | | | | llvm-svn: 19930 | ||||
| * | adjust to ilist changes. | Chris Lattner | 2005-01-29 | 2 | -5/+4 |
| | | | | | llvm-svn: 19924 | ||||
| * | Alpha doesn't have a native f32 extload instruction. | Chris Lattner | 2005-01-28 | 1 | -1/+5 |
| | | | | | llvm-svn: 19880 | ||||
| * | implement legalization of truncates whose results and sources need to be | Chris Lattner | 2005-01-28 | 1 | -2/+5 |
| | | | | | | | truncated, e.g. (truncate:i8 something:i16) on a 32 or 64-bit RISC. llvm-svn: 19879 | ||||
| * | Get alpha working with memset/memcpy/memmove | Chris Lattner | 2005-01-28 | 1 | -5/+29 |
| | | | | | llvm-svn: 19878 | ||||
| * | CopyFromReg produces two values. Make sure that we remember that both are | Chris Lattner | 2005-01-28 | 1 | -1/+8 |
| | | | | | | | legalized, and actually return the correct result when we legalize the chain first. llvm-svn: 19866 | ||||
| * | Silence optimized warnings. | Chris Lattner | 2005-01-23 | 1 | -1/+1 |
| | | | | | llvm-svn: 19797 | ||||
| * | Simplify/speedup the PEI by not having to scan for uses of the callee saved | Chris Lattner | 2005-01-23 | 1 | -19/+5 |
| | | | | | | | | registers. This information is computed directly by the register allocator now. llvm-svn: 19795 | ||||
| * | Update physregsused info. | Chris Lattner | 2005-01-23 | 1 | -10/+18 |
| | | | | | llvm-svn: 19793 | ||||
| * | Update this pass to set PhysRegsUsed info in MachineFunction. | Chris Lattner | 2005-01-23 | 1 | -1/+13 |
| | | | | | llvm-svn: 19792 | ||||
| * | Update these register allocators to set the PhysRegUsed info in MachineFunction. | Chris Lattner | 2005-01-23 | 3 | -11/+35 |
| | | | | | llvm-svn: 19791 | ||||
| * | Add support for the PhysRegsUsed array. | Chris Lattner | 2005-01-23 | 1 | -2/+3 |
| | | | | | llvm-svn: 19789 | ||||
| * | Speed this up a bit by making ModifiedRegs a vector<char> not vector<bool> | Chris Lattner | 2005-01-23 | 1 | -6/+5 |
| | | | | | llvm-svn: 19787 | ||||
| * | Adjust to changes in SelectionDAG interfaces | Chris Lattner | 2005-01-23 | 1 | -9/+119 |
| | | | | | | | | The first half of correct chain insertion for libcalls. This is not enough to fix Fhourstones yet though. llvm-svn: 19781 | ||||
| * | Remove the 3 HACK HACK HACKs I put in before, fixing them properly with | Chris Lattner | 2005-01-23 | 1 | -14/+27 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the new TLI that is available. Implement support for handling out of range shifts. This allows us to compile this code (a 64-bit rotate): unsigned long long f3(unsigned long long x) { return (x << 32) | (x >> (64-32)); } into this: f3: mov %EDX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP + 8] ret GCC produces this: $ gcc t.c -masm=intel -O3 -S -o - -fomit-frame-pointer .. f3: push %ebx mov %ebx, DWORD PTR [%esp+12] mov %ecx, DWORD PTR [%esp+8] mov %eax, %ebx mov %edx, %ecx pop %ebx ret The Simple ISEL produces (eww gross): f3: sub %ESP, 4 mov DWORD PTR [%ESP], %ESI mov %EDX, DWORD PTR [%ESP + 8] mov %ECX, DWORD PTR [%ESP + 12] mov %EAX, 0 mov %ESI, 0 or %EAX, %ECX or %EDX, %ESI mov %ESI, DWORD PTR [%ESP] add %ESP, 4 ret llvm-svn: 19780 | ||||
| * | Adjust to changes in SelectionDAG interface. | Chris Lattner | 2005-01-23 | 1 | -2/+2 |
| | | | | | llvm-svn: 19779 | ||||
| * | Get this to work for 64-bit systems. | Chris Lattner | 2005-01-22 | 1 | -6/+11 |
| | | | | | llvm-svn: 19763 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | Support targets that do not use i8 shift amounts. | Chris Lattner | 2005-01-19 | 1 | -0/+4 |
| | | | | | llvm-svn: 19707 | ||||
| * | 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 | ||||
| * | 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 | ||||
| * | Use the TargetInstrInfo::commuteInstruction method to commute instructions | Chris Lattner | 2005-01-19 | 1 | -6/+17 |
| | | | | | | | instead of doing it manually. llvm-svn: 19685 | ||||
| * | Implement a way of expanding shifts. This applies to targets that offer | Chris Lattner | 2005-01-19 | 1 | -3/+94 |
| | | | | | | | | | select operations or to shifts that are by a constant. This automatically implements (with no special code) all of the special cases for shift by 32, shift by < 32 and shift by > 32. llvm-svn: 19679 | ||||
| * | Zero is cheaper than sign extend. | Chris Lattner | 2005-01-18 | 1 | -1/+1 |
| | | | | | llvm-svn: 19675 | ||||
| * | Fix some fixmes (promoting bools for select and brcond), fix promotion | Chris Lattner | 2005-01-18 | 1 | -8/+43 |
| | | | | | | | of zero and sign extends. llvm-svn: 19671 | ||||
| * | Keep track of the retval type as well. | Chris Lattner | 2005-01-18 | 1 | -2/+5 |
| | | | | | llvm-svn: 19670 | ||||
| * | Teach legalize to promote copy(from|to)reg, instead of making the isel pass | Chris Lattner | 2005-01-18 | 2 | -26/+13 |
| | | | | | | | | | | do it. This results in better code on X86 for floats (because if strict precision is not required, we can elide some more expensive double -> float conversions like the old isel did), and allows other targets to emit CopyFromRegs that are not legal for arguments. llvm-svn: 19668 | ||||

