| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Another API change to MRegisterInfo::foldMemoryOperand. Instead of a | Alkis Evlogimenos | 2004-03-14 | 2 | -5/+4 |
| | | | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392 | ||||
| * | Change MRegisterInfo::foldMemoryOperand to return the folded | Alkis Evlogimenos | 2004-03-14 | 2 | -171/+166 |
| | | | | | | | instruction to make the API more flexible. llvm-svn: 12386 | ||||
| * | It helps if I save the file. :) | Chris Lattner | 2004-03-13 | 1 | -3/+3 |
| | | | | | llvm-svn: 12357 | ||||
| * | Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* to | Chris Lattner | 2004-03-13 | 4 | -18/+15 |
| | | | | | | | Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. llvm-svn: 12356 | ||||
| * | Make -print-machineinstrs show us the code both before and after reg. alloc. | Brian Gaeke | 2004-03-12 | 1 | -1/+4 |
| | | | | | llvm-svn: 12344 | ||||
| * | Add support for a wider range of CMOV instructions. | Alkis Evlogimenos | 2004-03-12 | 1 | -2/+54 |
| | | | | | llvm-svn: 12336 | ||||
| * | ADd support for select instructions | Chris Lattner | 2004-03-12 | 1 | -0/+12 |
| | | | | | llvm-svn: 12316 | ||||
| * | Move implementations of functions here, which avoids #including <cstdlib> in the | Misha Brukman | 2004-03-11 | 1 | -0/+86 |
| | | | | | | | header file and all those who #include it. llvm-svn: 12297 | ||||
| * | Get rid of the abort in PhyRegAlloc::finishSavingState(). | Brian Gaeke | 2004-03-11 | 1 | -5/+6 |
| | | | | | | | | | Make an explicit call to it from runOnFunction() if we know we're supposed to write into the global. This is lame (esp. the const_cast), but it solves the problem. llvm-svn: 12291 | ||||
| * | Give pass a name | Brian Gaeke | 2004-03-11 | 1 | -0/+1 |
| | | | | | llvm-svn: 12290 | ||||
| * | Fix compilation on Sparc: assert(0) => abort() | Misha Brukman | 2004-03-11 | 1 | -5/+5 |
| | | | | | llvm-svn: 12289 | ||||
| * | In PhyRegAlloc::saveState(), dump Arguments' saved-state, and try to | Brian Gaeke | 2004-03-11 | 2 | -10/+31 |
| | | | | | | | | | | | | | | make the output more compact. Divorce state-saving from the doFinalization method; for some reason it's not getting called when I want it to, at Reoptimizer time. Put the guts in PhyRegAlloc::finishSavingState(). Put an abort() in it so that I can be really really sure that it's getting called. Update comments. llvm-svn: 12286 | ||||
| * | Remove ghostly directory from the build | Brian Gaeke | 2004-03-11 | 1 | -1/+1 |
| | | | | | llvm-svn: 12285 | ||||
| * | Move all the SaveState options and stuff inton one spot at the top of the file. | Brian Gaeke | 2004-03-10 | 1 | -8/+10 |
| | | | | | | | | | De-constify SaveStateToModule; we have to set both it and SaveRegAllocState explicitly in the reoptimizer. Make SaveRegAllocState an 'external location' option. llvm-svn: 12278 | ||||
| * | Only call verifySavedState if SaveRegAllocState is set AND debugging flag is on. | Brian Gaeke | 2004-03-10 | 1 | -3/+4 |
| | | | | | llvm-svn: 12277 | ||||
| * | Check if printing of implicit uses is required for all types of shift | Alkis Evlogimenos | 2004-03-09 | 1 | -0/+3 |
| | | | | | | | instructions. llvm-svn: 12258 | ||||
| * | Hmm, who left this sitting around in my tree | Brian Gaeke | 2004-03-09 | 1 | -4/+4 |
| | | | | | llvm-svn: 12255 | ||||
| * | Differentiate between extended precision floats (80-bit) and double ↵ | Alkis Evlogimenos | 2004-03-09 | 1 | -1/+1 |
| | | | | | | | precision floats (64-bit) llvm-svn: 12254 | ||||
| * | Use newly added API to emit bytes for instructions that gas misassembles | Alkis Evlogimenos | 2004-03-09 | 1 | -66/+53 |
| | | | | | llvm-svn: 12253 | ||||
| * | Add emitInstruction() API so that we can get the bytes of a simple instruction | Alkis Evlogimenos | 2004-03-09 | 2 | -3/+20 |
| | | | | | llvm-svn: 12252 | ||||
| * | Constify things a bit | Alkis Evlogimenos | 2004-03-09 | 1 | -9/+9 |
| | | | | | llvm-svn: 12251 | ||||
| * | Change PhyRegAlloc::saveStateForValue()'s arg type to deal with | Brian Gaeke | 2004-03-08 | 1 | -1/+1 |
| | | | | | | | AllocInfo.Instruction becoming an int. llvm-svn: 12247 | ||||
| * | Save argument list alloc state by recording it as the operands of Instruction | Brian Gaeke | 2004-03-08 | 1 | -2/+10 |
| | | | | | | | #-1. Other minor changes to deal with AllocInfo.Instruction becoming an int. llvm-svn: 12246 | ||||
| * | Make AllocInfo's Instruction an int, so that we can overload it for arguments. | Brian Gaeke | 2004-03-08 | 1 | -4/+4 |
| | | | | | | | (Instruction #-1's operands = argument list). llvm-svn: 12245 | ||||
| * | Avoid allocating special registers a bit more robustly | Chris Lattner | 2004-03-08 | 1 | -3/+11 |
| | | | | | llvm-svn: 12207 | ||||
| * | Implement folding explicit load instructions into binary operations. For a | Chris Lattner | 2004-03-08 | 1 | -0/+81 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | testcase like this: int %test(int* %P, int %A) { %Pv = load int* %P %B = add int %A, %Pv ret int %B } We now generate: test: mov %ECX, DWORD PTR [%ESP + 4] mov %EAX, DWORD PTR [%ESP + 8] add %EAX, DWORD PTR [%ECX] ret Instead of: test: mov %EAX, DWORD PTR [%ESP + 4] mov %ECX, DWORD PTR [%ESP + 8] mov %EAX, DWORD PTR [%EAX] add %EAX, %ECX ret ... saving one instruction, and often a register. Note that there are a lot of other instructions that could use this, but they aren't handled. I'm not really interested in adding them, but mul/div and all of the FP instructions could be supported as well if someone wanted to add them. llvm-svn: 12204 | ||||
| * | Rearrange and refactor some code. No functionality changes. | Chris Lattner | 2004-03-08 | 1 | -101/+96 |
| | | | | | llvm-svn: 12203 | ||||
| * | Add memory operand version of conditional move. | Alkis Evlogimenos | 2004-03-07 | 2 | -3/+10 |
| | | | | | llvm-svn: 12190 | ||||
| * | Support return values of basic integer types. | Brian Gaeke | 2004-03-06 | 1 | -24/+37 |
| | | | | | | | | Emit RETL instruction to return instead of funny JMPL. Fix indentation. llvm-svn: 12186 | ||||
| * | Sort stanzas into Sparc V8 book page number order. | Brian Gaeke | 2004-03-06 | 1 | -17/+23 |
| | | | | | | | Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency. llvm-svn: 12185 | ||||
| * | Hack it so we do not try to allocate values to G0. | Brian Gaeke | 2004-03-06 | 1 | -1/+1 |
| | | | | | llvm-svn: 12184 | ||||
| * | Make prolog align stack properly. Make epilog not touch any registers. | Brian Gaeke | 2004-03-06 | 1 | -4/+4 |
| | | | | | llvm-svn: 12183 | ||||
| * | Emit register names in lowercase, as required by the assembler. | Brian Gaeke | 2004-03-06 | 1 | -1/+11 |
| | | | | | llvm-svn: 12182 | ||||
| * | Teach getRegClassForType where to find FP registers | Brian Gaeke | 2004-03-06 | 1 | -3/+2 |
| | | | | | llvm-svn: 12180 | ||||
| * | Asm output is looking a lot better; not correct for all operands yet though. | Brian Gaeke | 2004-03-05 | 1 | -1/+62 |
| | | | | | llvm-svn: 12143 | ||||
| * | Support -print-machineinstrs | Brian Gaeke | 2004-03-04 | 1 | -6/+9 |
| | | | | | llvm-svn: 12124 | ||||
| * | make -print-machineinstrs work for both SparcV9 and X86 | Brian Gaeke | 2004-03-04 | 3 | -10/+26 |
| | | | | | llvm-svn: 12122 | ||||
| * | Add assertion for scale verification. | Alkis Evlogimenos | 2004-03-04 | 1 | -0/+1 |
| | | | | | llvm-svn: 12120 | ||||
| * | Asm printer support, based on x86 - only prints mnemonics for now | Brian Gaeke | 2004-03-04 | 3 | -2/+462 |
| | | | | | llvm-svn: 12113 | ||||
| * | Double-FP pseudo-registers. | Brian Gaeke | 2004-03-04 | 1 | -3/+36 |
| | | | | | llvm-svn: 12112 | ||||
| * | Subtract instructions; minor cleanups | Brian Gaeke | 2004-03-04 | 2 | -5/+10 |
| | | | | | llvm-svn: 12111 | ||||
| * | Floating point regs | Brian Gaeke | 2004-03-04 | 1 | -2/+17 |
| | | | | | llvm-svn: 12110 | ||||
| * | Simple copyConstantToReg support, SETHIi and ORri | Brian Gaeke | 2004-03-04 | 2 | -4/+24 |
| | | | | | llvm-svn: 12107 | ||||
| * | Support add - note, still missing important copyConstantToRegister stuff | Brian Gaeke | 2004-03-03 | 2 | -3/+160 |
| | | | | | llvm-svn: 12106 | ||||
| * | SPECIFY a target data to initialize the CBE target with. Until now we have | Chris Lattner | 2004-03-03 | 1 | -1/+1 |
| | | | | | | | | | been using the default target data layout object to lower malloc instructions, causing us to allocate more memory than we needed! This could improve the performance of the CBE generated code substantially! llvm-svn: 12088 | ||||
| * | Add a new constructor | Chris Lattner | 2004-03-03 | 1 | -0/+5 |
| | | | | | llvm-svn: 12087 | ||||
| * | Doxygenify some comments. | Misha Brukman | 2004-03-01 | 2 | -9/+21 |
| | | | | | llvm-svn: 12064 | ||||
| * | Add this back, as its absence introduces assertions, and it seems to work now | Chris Lattner | 2004-03-01 | 1 | -4/+1 |
| | | | | | | | that Instructions are annotable again llvm-svn: 12045 | ||||
| * | fix bug in previous checkin | Tanya Lattner | 2004-03-01 | 1 | -1/+1 |
| | | | | | llvm-svn: 12044 | ||||
| * | TargetCacheInfo has been removed; its only uses were to propagate a constant | Brian Gaeke | 2004-03-01 | 8 | -48/+6 |
| | | | | | | | | | | (16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in the interest of not breaking things any more than they already are, I'm going to leave the constant alone. llvm-svn: 12043 | ||||

