summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Another API change to MRegisterInfo::foldMemoryOperand. Instead of aAlkis Evlogimenos2004-03-142-5/+4
| | | | | | MachineBasicBlock::iterator take a MachineInstr*. llvm-svn: 12392
* Change MRegisterInfo::foldMemoryOperand to return the foldedAlkis Evlogimenos2004-03-142-171/+166
| | | | | | instruction to make the API more flexible. llvm-svn: 12386
* It helps if I save the file. :)Chris Lattner2004-03-131-3/+3
| | | | llvm-svn: 12357
* Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner2004-03-134-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 Gaeke2004-03-121-1/+4
| | | | llvm-svn: 12344
* Add support for a wider range of CMOV instructions.Alkis Evlogimenos2004-03-121-2/+54
| | | | llvm-svn: 12336
* ADd support for select instructionsChris Lattner2004-03-121-0/+12
| | | | llvm-svn: 12316
* Move implementations of functions here, which avoids #including <cstdlib> in theMisha Brukman2004-03-111-0/+86
| | | | | | header file and all those who #include it. llvm-svn: 12297
* Get rid of the abort in PhyRegAlloc::finishSavingState().Brian Gaeke2004-03-111-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 nameBrian Gaeke2004-03-111-0/+1
| | | | llvm-svn: 12290
* Fix compilation on Sparc: assert(0) => abort()Misha Brukman2004-03-111-5/+5
| | | | llvm-svn: 12289
* In PhyRegAlloc::saveState(), dump Arguments' saved-state, and try toBrian Gaeke2004-03-112-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 buildBrian Gaeke2004-03-111-1/+1
| | | | llvm-svn: 12285
* Move all the SaveState options and stuff inton one spot at the top of the file.Brian Gaeke2004-03-101-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 Gaeke2004-03-101-3/+4
| | | | llvm-svn: 12277
* Check if printing of implicit uses is required for all types of shiftAlkis Evlogimenos2004-03-091-0/+3
| | | | | | instructions. llvm-svn: 12258
* Hmm, who left this sitting around in my treeBrian Gaeke2004-03-091-4/+4
| | | | llvm-svn: 12255
* Differentiate between extended precision floats (80-bit) and double ↵Alkis Evlogimenos2004-03-091-1/+1
| | | | | | precision floats (64-bit) llvm-svn: 12254
* Use newly added API to emit bytes for instructions that gas misassemblesAlkis Evlogimenos2004-03-091-66/+53
| | | | llvm-svn: 12253
* Add emitInstruction() API so that we can get the bytes of a simple instructionAlkis Evlogimenos2004-03-092-3/+20
| | | | llvm-svn: 12252
* Constify things a bitAlkis Evlogimenos2004-03-091-9/+9
| | | | llvm-svn: 12251
* Change PhyRegAlloc::saveStateForValue()'s arg type to deal withBrian Gaeke2004-03-081-1/+1
| | | | | | AllocInfo.Instruction becoming an int. llvm-svn: 12247
* Save argument list alloc state by recording it as the operands of InstructionBrian Gaeke2004-03-081-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 Gaeke2004-03-081-4/+4
| | | | | | (Instruction #-1's operands = argument list). llvm-svn: 12245
* Avoid allocating special registers a bit more robustlyChris Lattner2004-03-081-3/+11
| | | | llvm-svn: 12207
* Implement folding explicit load instructions into binary operations. For aChris Lattner2004-03-081-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 Lattner2004-03-081-101/+96
| | | | llvm-svn: 12203
* Add memory operand version of conditional move.Alkis Evlogimenos2004-03-072-3/+10
| | | | llvm-svn: 12190
* Support return values of basic integer types.Brian Gaeke2004-03-061-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 Gaeke2004-03-061-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 Gaeke2004-03-061-1/+1
| | | | llvm-svn: 12184
* Make prolog align stack properly. Make epilog not touch any registers.Brian Gaeke2004-03-061-4/+4
| | | | llvm-svn: 12183
* Emit register names in lowercase, as required by the assembler.Brian Gaeke2004-03-061-1/+11
| | | | llvm-svn: 12182
* Teach getRegClassForType where to find FP registersBrian Gaeke2004-03-061-3/+2
| | | | llvm-svn: 12180
* Asm output is looking a lot better; not correct for all operands yet though.Brian Gaeke2004-03-051-1/+62
| | | | llvm-svn: 12143
* Support -print-machineinstrsBrian Gaeke2004-03-041-6/+9
| | | | llvm-svn: 12124
* make -print-machineinstrs work for both SparcV9 and X86Brian Gaeke2004-03-043-10/+26
| | | | llvm-svn: 12122
* Add assertion for scale verification.Alkis Evlogimenos2004-03-041-0/+1
| | | | llvm-svn: 12120
* Asm printer support, based on x86 - only prints mnemonics for nowBrian Gaeke2004-03-043-2/+462
| | | | llvm-svn: 12113
* Double-FP pseudo-registers.Brian Gaeke2004-03-041-3/+36
| | | | llvm-svn: 12112
* Subtract instructions; minor cleanupsBrian Gaeke2004-03-042-5/+10
| | | | llvm-svn: 12111
* Floating point regsBrian Gaeke2004-03-041-2/+17
| | | | llvm-svn: 12110
* Simple copyConstantToReg support, SETHIi and ORriBrian Gaeke2004-03-042-4/+24
| | | | llvm-svn: 12107
* Support add - note, still missing important copyConstantToRegister stuffBrian Gaeke2004-03-032-3/+160
| | | | llvm-svn: 12106
* SPECIFY a target data to initialize the CBE target with. Until now we haveChris Lattner2004-03-031-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 constructorChris Lattner2004-03-031-0/+5
| | | | llvm-svn: 12087
* Doxygenify some comments.Misha Brukman2004-03-012-9/+21
| | | | llvm-svn: 12064
* Add this back, as its absence introduces assertions, and it seems to work nowChris Lattner2004-03-011-4/+1
| | | | | | that Instructions are annotable again llvm-svn: 12045
* fix bug in previous checkinTanya Lattner2004-03-011-1/+1
| | | | llvm-svn: 12044
* TargetCacheInfo has been removed; its only uses were to propagate a constantBrian Gaeke2004-03-018-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
OpenPOWER on IntegriCloud