Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Minor leftover fixups from replaceMachineCodeForFunction () change. | Brian Gaeke | 2003-10-20 | 2 | -2/+3 |
| | | | | llvm-svn: 9295 | ||||
* | Make replaceMachineCodeForFunction() return void. | Brian Gaeke | 2003-10-20 | 1 | -1/+1 |
| | | | | llvm-svn: 9289 | ||||
* | Make replaceMachineCodeForFunction return void. | Brian Gaeke | 2003-10-20 | 2 | -4/+2 |
| | | | | llvm-svn: 9288 | ||||
* | Apparently the dependencies are wrong for this file, so it didn't rebuild it | Chris Lattner | 2003-10-20 | 1 | -1/+1 |
| | | | | | | when changing Instruction.def. :( llvm-svn: 9286 | ||||
* | Emit x86 instructions for: A = B op C, where A and B are 16-bit registers, | Chris Lattner | 2003-10-20 | 2 | -0/+54 |
| | | | | | | | | | | | | | | | | | | | | | | C is a constant which can be sign-extended from 8 bits without value loss, and op is one of: add, sub, imul, and, or, xor. This allows the JIT to emit the one byte version of the constant instead of the two or 4 byte version. Because these instructions are very common, this can save a LOT of code space. For example, I sampled two benchmarks, 176.gcc and 254.gap. BM Old New Reduction 176.gcc 2673621 2548962 4.89% 254.gap 498261 475104 4.87% Note that while the percentage is not spectacular, this did eliminate 124.6 _KILOBYTES_ of codespace from gcc. Not bad. Note that this doesn't effect the llc version at all, because the assembler already does this optimization. llvm-svn: 9284 | ||||
* | Further cleanups and simplifications | Chris Lattner | 2003-10-20 | 1 | -32/+17 |
| | | | | llvm-svn: 9282 | ||||
* | Eliminate code for pointer size and endianness emulation. | Chris Lattner | 2003-10-20 | 2 | -160/+21 |
| | | | | llvm-svn: 9281 | ||||
* | The Grammar Police was here. | Misha Brukman | 2003-10-20 | 1 | -1/+1 |
| | | | | llvm-svn: 9280 | ||||
* | * Rename X86::IMULr16 -> X86::IMULrr16 | Chris Lattner | 2003-10-20 | 4 | -14/+44 |
| | | | | | | | * Implement R1 = R2 * C where R1 and R2 are 32 or 16 bits. This avoids an extra copy into a register, reducing register pressure. llvm-svn: 9278 | ||||
* | Change the Opcode enum for PHI nodes from "Instruction::PHINode" to ↵ | Chris Lattner | 2003-10-19 | 1 | -1/+1 |
| | | | | | | "Instruction::PHI" to be more consistent with the other instructions. llvm-svn: 9269 | ||||
* | * Multiplications by 2^X are turned into shifts. This factors code out of the | Chris Lattner | 2003-10-19 | 1 | -95/+201 |
| | | | | | | | | | | | getelementptr code path for use by other code paths (like malloc and alloca). * Optimize comparisons with zero * Generate neg, not, inc, and dec instructions, when possible. This gives some code size wins, which might translate into performance. We'll see tommorow in the nightly tester. llvm-svn: 9267 | ||||
* | Add some new instructions. Wheee | Chris Lattner | 2003-10-19 | 1 | -1/+21 |
| | | | | llvm-svn: 9266 | ||||
* | .string adds an implicit zero at the end. This is not what we wanted. | Chris Lattner | 2003-10-19 | 1 | -1/+1 |
| | | | | | | This fixes PR#44. llvm-svn: 9252 | ||||
* | Fix bug: Jello/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.llx | Chris Lattner | 2003-10-19 | 1 | -9/+21 |
| | | | | | | This also fixes miscompilation of 176.gcc. llvm-svn: 9249 | ||||
* | Add support for the new varargs intrinsics | Chris Lattner | 2003-10-18 | 1 | -26/+36 |
| | | | | llvm-svn: 9224 | ||||
* | Update the sparc backend to at least compile correctly with the new varargs ↵ | Chris Lattner | 2003-10-18 | 2 | -4/+16 |
| | | | | | | stuff even if it's not all implemented yet. llvm-svn: 9223 | ||||
* | You can't just blat the address into memory, you have to blat its | Brian Gaeke | 2003-10-17 | 1 | -4/+7 |
| | | | | | | displacement. llvm-svn: 9210 | ||||
* | Implement replaceMachineCodeForFunction() for x86. | Brian Gaeke | 2003-10-17 | 1 | -0/+7 |
| | | | | llvm-svn: 9204 | ||||
* | Refactor jump insertion code from CompilationCallback() into insertJumpAtAddr(). | Brian Gaeke | 2003-10-17 | 1 | -27/+33 |
| | | | | | | | | Make insertFarJumpAtAddr() return void, because nothing uses its return value. Remove some commented-out code. Implement replaceMachineCodeForFunction() for SPARC. llvm-svn: 9203 | ||||
* | Add prototype for replaceMachineCodeForFunction(). | Brian Gaeke | 2003-10-17 | 2 | -0/+3 |
| | | | | llvm-svn: 9202 | ||||
* | Remove extra blank line. | Brian Gaeke | 2003-10-17 | 1 | -1/+0 |
| | | | | llvm-svn: 9196 | ||||
* | Eliminate some extraneous code in SlotCalculator::insertVal(). | Alkis Evlogimenos | 2003-10-17 | 1 | -1/+1 |
| | | | | | | | | | Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(), SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(), SlotCalculator::insertVal() to SlotCalculator::insertValue(), and SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue(). llvm-svn: 9190 | ||||
* | Fix typo in comment. | Brian Gaeke | 2003-10-16 | 1 | -1/+1 |
| | | | | llvm-svn: 9187 | ||||
* | Add support for 'weak' linkage. | Chris Lattner | 2003-10-16 | 1 | -1/+3 |
| | | | | llvm-svn: 9171 | ||||
* | Decrease usage of use_size() | Chris Lattner | 2003-10-15 | 1 | -1/+1 |
| | | | | llvm-svn: 9135 | ||||
* | Output a contorted sequence of instructions to make sure that we don't access | Chris Lattner | 2003-10-14 | 1 | -8/+20 |
| | | | | | | off the bottom of the stack. This fixes PR#41 llvm-svn: 9114 | ||||
* | Disable the leaf function optimization, which is apparently not legal on | Chris Lattner | 2003-10-14 | 1 | -25/+2 |
| | | | | | | | | X86/linux. :( The problem is that a signal delivered while the function is executing could clobber the functions stack. This is a partial fix for PR41. llvm-svn: 9113 | ||||
* | Remove WordsEmitted statistic; there's already a non-backend-specific | Brian Gaeke | 2003-10-13 | 1 | -3/+10 |
| | | | | | | | | jello statistic for this (just divide #-bytes-of-code-emitted by 4). Rewrite head-of-file comment. llvm-svn: 9098 | ||||
* | Regularize header file comments | Chris Lattner | 2003-10-13 | 1 | -3/+2 |
| | | | | llvm-svn: 9071 | ||||
* | Don't include "Config/stdlib.h". | Brian Gaeke | 2003-10-10 | 1 | -1/+0 |
| | | | | llvm-svn: 9037 | ||||
* | Include <cstdio> instead of <stdio.h>. | Brian Gaeke | 2003-10-10 | 1 | -1/+1 |
| | | | | llvm-svn: 9032 | ||||
* | Fix spelling. | Misha Brukman | 2003-10-10 | 6 | -13/+14 |
| | | | | llvm-svn: 9027 | ||||
* | Add # of printed instructions statistic to both the SPARC and X86 LLC backends. | Brian Gaeke | 2003-10-06 | 2 | -1/+8 |
| | | | | llvm-svn: 8892 | ||||
* | Add support for the Invoke instruction by using the LowerInvoke pass | Chris Lattner | 2003-10-05 | 1 | -0/+6 |
| | | | | llvm-svn: 8872 | ||||
* | Instead of hacking in custom support for Invoke/Unwind, use the LowerInvoke pass | Chris Lattner | 2003-10-05 | 2 | -31/+14 |
| | | | | llvm-svn: 8871 | ||||
* | Moved enum and command-line option in separate file. Also added function ↵ | Alkis Evlogimenos | 2003-10-02 | 1 | -29/+2 |
| | | | | | | that returns the user selected register allocator to the caller. llvm-svn: 8819 | ||||
* | Change llc command line for register allocators | Alkis Evlogimenos | 2003-10-02 | 1 | -6/+25 |
| | | | | llvm-svn: 8815 | ||||
* | Revert previous change. For some reason this went into the main branch | Alkis Evlogimenos | 2003-10-01 | 1 | -19/+2 |
| | | | | llvm-svn: 8805 | ||||
* | Added command line option for linear scan allocator | Alkis Evlogimenos | 2003-10-01 | 1 | -2/+19 |
| | | | | llvm-svn: 8804 | ||||
* | The comment seems irrelevant as the pass has become a BasicBlock pass. | Misha Brukman | 2003-10-01 | 1 | -2/+0 |
| | | | | llvm-svn: 8803 | ||||
* | Make sure to get the definition of getRegisterAllocator | Chris Lattner | 2003-09-30 | 1 | -0/+1 |
| | | | | llvm-svn: 8801 | ||||
* | RegisterAllocation.h is going away | Chris Lattner | 2003-09-30 | 1 | -1/+0 |
| | | | | llvm-svn: 8795 | ||||
* | Add statistic for # of emitWord() calls. | Brian Gaeke | 2003-09-30 | 1 | -0/+2 |
| | | | | llvm-svn: 8772 | ||||
* | Fixed spelling. | Misha Brukman | 2003-09-23 | 2 | -3/+3 |
| | | | | llvm-svn: 8687 | ||||
* | Fix spelling. | Misha Brukman | 2003-09-23 | 1 | -1/+1 |
| | | | | llvm-svn: 8686 | ||||
* | Fix assertion so it doesn't not trip incorrectly. | Vikram S. Adve | 2003-09-21 | 1 | -4/+4 |
| | | | | llvm-svn: 8650 | ||||
* | Fix a typo in Sparc.cpp. | Brian Gaeke | 2003-09-18 | 2 | -10/+6 |
| | | | | | | | Update names of some pass creator fns in addPassesToEmitAssembly(). FunctionInfo is gone. llvm-svn: 8599 | ||||
* | Rename the pass creator fn to mimic the other creator fn names. | Brian Gaeke | 2003-09-18 | 1 | -1/+1 |
| | | | | llvm-svn: 8598 | ||||
* | Fix (and properly doxygenify) some comments. Incorporate | Brian Gaeke | 2003-09-18 | 1 | -39/+86 |
| | | | | | | | | | | | functionality of FunctionInfo pass as doFinalization method. Rename pass to match names of other passes like it. Rename the pass creator fn to mimic the other creator fn names. Include StringExtras for utostr(). Make symbol prologue/epilogue stuff redundant with EmitBytecodeToAssembly, in preparation for refactoring. llvm-svn: 8597 | ||||
* | Make the symbol prologue/epilogue stuff redundant with MappingInfo, in | Brian Gaeke | 2003-09-18 | 1 | -20/+31 |
| | | | | | | | preparation for refactoring. Rename the pass creator fn to mimic the other creator fn names. llvm-svn: 8596 |