summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* thinkoAndrew Lenharth2005-06-291-0/+1
| | | | llvm-svn: 22309
* unify SelectExpr and SelectFPAndrew Lenharth2005-06-291-190/+155
| | | | llvm-svn: 22308
* fix most regressionsAndrew Lenharth2005-06-291-1/+2
| | | | llvm-svn: 22307
* support more relocations for stores alsoAndrew Lenharth2005-06-292-1/+36
| | | | llvm-svn: 22306
* Get rid of all symbolic loads. I now do gernate all relocations sequencesAndrew Lenharth2005-06-293-230/+76
| | | | | | | rather than relying on the assembler. Only a few more pseudo instructions left. Also merge load code paths. llvm-svn: 22305
* some call workAndrew Lenharth2005-06-271-1/+64
| | | | llvm-svn: 22303
* So, it turns out I forgot that one valid way of restoring GP after a callAndrew Lenharth2005-06-271-3/+3
| | | | | | | is to use RA, which assumes the called function uses RA for the register holding the return address when it issues a ret. llvm-svn: 22301
* Initial set of .td file changes necessary to get scalar fp in xmm registersNate Begeman2005-06-272-2/+126
| | | | | | | | | | | working. The instruction selector changes will hopefully be coming later this week once they are debugged. This is necessary to support the darwin x86 FP model, and is recommended by intel as the replacement for x87. As a bonus, the register allocator knows how to deal with these registers across basic blocks, unliky the FP stackifier. This leads to significantly better codegen in several cases. llvm-svn: 22300
* get rid of another pseudo opAndrew Lenharth2005-06-272-3/+4
| | | | llvm-svn: 22299
* generate address of constant pool entriesAndrew Lenharth2005-06-272-5/+10
| | | | llvm-svn: 22298
* Misha happification patchAndrew Lenharth2005-06-271-91/+142
| | | | llvm-svn: 22297
* Reduce use of pseudo opsAndrew Lenharth2005-06-272-8/+41
| | | | | | | Namely, output the rellocation flags explicitly when loading constants. Added benifit: save a load when loading from the constant pool. llvm-svn: 22296
* missed a loadAndrew Lenharth2005-06-271-3/+7
| | | | llvm-svn: 22295
* make constant pool labels localAndrew Lenharth2005-06-271-2/+2
| | | | llvm-svn: 22294
* who said we had to use the return address in the return address register. ↵Andrew Lenharth2005-06-272-5/+8
| | | | | | Might save a move in many cases llvm-svn: 22293
* Add support to the X86 backend for emitting ELF files. To use this, weChris Lattner2005-06-273-2/+55
| | | | | | | | | currently use: llc t.bc --filetype=obj This will produce a t.o file which is dumpable with readelf. Currently the file produced is empty, but the scaffolding to do more is now in place. llvm-svn: 22292
* depend more on legalize putting constants on the RHSAndrew Lenharth2005-06-261-92/+29
| | | | llvm-svn: 22289
* With setOperationAction(ISD::UINT_TO_FP, MVT::i64, Expand), LegalizeAndrew Lenharth2005-06-261-36/+12
| | | | | | | should be able to handle this case. The code is there, so let's see if it works. llvm-svn: 22288
* Refactor the addPassesToEmitAssembly interface into a addPassesToEmitFileChris Lattner2005-06-2516-34/+60
| | | | | | interface. llvm-svn: 22282
* remove a pseudo instruction, make ret always right, and fix vararg chainsAndrew Lenharth2005-06-234-15/+20
| | | | llvm-svn: 22276
* finally, Working varargsAndrew Lenharth2005-06-231-13/+24
| | | | llvm-svn: 22275
* more complete Lowering for vacopy and vaargAndrew Lenharth2005-06-221-1/+29
| | | | llvm-svn: 22274
* If we support structs as va_list, we must pass pointers to them to va_copyAndrew Lenharth2005-06-225-46/+13
| | | | | | See last commit for LangRef, this implements it on all targets. llvm-svn: 22273
* Make it easier to find alpha stuff in doxygen, and fixup labelingAndrew Lenharth2005-06-222-17/+52
| | | | | | | of memory instructions in the assembly, to allow later linking of traces with LLVM Value*s. llvm-svn: 22271
* Fixed indentation.John Criswell2005-06-201-3/+3
| | | | llvm-svn: 22270
* so this doesn't crash when run. It is hard to tell if things are right ↵Andrew Lenharth2005-06-191-24/+27
| | | | | | enough to work correctly with all the TmpInstructions running around llvm-svn: 22261
* OK, at least get rid of old stuff, and mark what needs to be fixed for V9Andrew Lenharth2005-06-182-2/+4
| | | | llvm-svn: 22255
* core changes for varargsAndrew Lenharth2005-06-188-162/+189
| | | | llvm-svn: 22254
* Clean up some uninitialized variables and missing return statements thatReid Spencer2005-06-183-3/+5
| | | | | | GCC 4.0.0 compiler (sometimes incorrectly) warns about under release build. llvm-svn: 22249
* A start at a Sparc V8 Pattern ISel. Anyone want to implement the callingAndrew Lenharth2005-06-171-0/+479
| | | | | | convention? ;) llvm-svn: 22247
* silence incredibly braindead GCC 4 warningChris Lattner2005-06-171-2/+0
| | | | llvm-svn: 22246
* silence a bogus warningChris Lattner2005-06-171-1/+1
| | | | llvm-svn: 22245
* Removed IIIi specific changes. This should be fixed to add floating point ↵Tanya Lattner2005-06-171-2/+4
| | | | | | deps for the IIi. llvm-svn: 22243
* Special dep graph for SMS for superblocks.Tanya Lattner2005-06-171-0/+410
| | | | llvm-svn: 22242
* Special versions of the dep graph and scheduled for SMS for superblocks.Tanya Lattner2005-06-173-0/+1265
| | | | llvm-svn: 22241
* Added statistic to count number of spills.Tanya Lattner2005-06-171-0/+3
| | | | llvm-svn: 22240
* Numerous bug fixes and the completed modschedSB algorithm (minor bugs still ↵Tanya Lattner2005-06-177-194/+3304
| | | | | | exist for course). llvm-svn: 22239
* Added SMS for superblocks as an option (experimental)Tanya Lattner2005-06-171-1/+10
| | | | llvm-svn: 22238
* Commit fix for generating conditional branch pseudo instructions thatNate Begeman2005-06-151-3/+8
| | | | | | | avoids dereferencing the end() iterator when selecting the fallthrough block. This requires an ilist change. llvm-svn: 22212
* Commit a small improvement that is already in the x86 and ia64 backends toNate Begeman2005-06-141-0/+5
| | | | | | | not generate unnecessary register copies. This improves compile time by 2-5% depending on the test. llvm-svn: 22210
* When compiled with GCC 4.0, a latent bug was exposed where both SparcV9Nate Begeman2005-06-1216-106/+108
| | | | | | | | | and the target independant register allocator were both using a class named 'LiveRange'. This lead to the target independant code calling code in the SparcV9 backend, which crashed. Fixed by renaming SparcV9's LiveRange to V9LiveRange. llvm-svn: 22208
* Fix a memory smasher caught by Mac OS X's debug malloc library. We wereNate Begeman2005-06-121-8/+19
| | | | | | incorrectly using an iterator after it was invalid. llvm-svn: 22207
* fix BranchCC with a setCC with an arg of 0Andrew Lenharth2005-06-081-3/+3
| | | | llvm-svn: 22203
* For PR572:Reid Spencer2005-06-081-0/+6
| | | | | | | Undefine the PPC symbol which is defined by Linux/PPC (erroneously) so it doesn't pollute the user namespace and clash with our namespace declarations. llvm-svn: 22202
* Handle some more real world cases of rlwimi. These don't come up thatNate Begeman2005-06-081-10/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | regularly in "normal" code, but for things like software graphics, they make a big difference. For the following code: unsigned short Trans16Bit(unsigned srcA,unsigned srcB,unsigned alpha) { unsigned tmpA,tmpB,mixed; tmpA = ((srcA & 0x03E0) << 15) | (srcA & 0x7C1F); tmpB = ((srcB & 0x03E0) << 15) | (srcB & 0x7C1F); mixed = (tmpA * alpha) + (tmpB * (32 - alpha)); return ((mixed >> 5) & 0x7C1F) | ((mixed >> 20) & 0x03E0); } We now generate: _Trans16Bit: .LBB_Trans16Bit_0: ; entry andi. r2, r4, 31775 rlwimi r2, r4, 15, 7, 11 subfic r4, r5, 32 mullw r2, r2, r4 andi. r4, r3, 31775 rlwimi r4, r3, 15, 7, 11 mullw r3, r4, r5 add r2, r2, r3 srwi r3, r2, 5 andi. r3, r3, 31775 rlwimi r3, r2, 12, 22, 26 blr Instead of: _Trans16Bit: .LBB_Trans16Bit_0: ; entry slwi r2, r4, 15 rlwinm r2, r2, 0, 7, 11 andi. r4, r4, 31775 or r2, r2, r4 subfic r4, r5, 32 mullw r2, r2, r4 slwi r4, r3, 15 rlwinm r4, r4, 0, 7, 11 andi. r3, r3, 31775 or r3, r4, r3 mullw r3, r3, r5 add r2, r2, r3 srwi r3, r2, 5 andi. r3, r3, 31775 srwi r2, r2, 20 rlwimi r3, r2, 0, 22, 26 blr llvm-svn: 22201
* Fix lli linking on Mac OS X 10.4.1 for Intel.Nate Begeman2005-06-081-2/+2
| | | | llvm-svn: 22200
* Fix spelling of `correlate'Misha Brukman2005-06-061-1/+1
| | | | llvm-svn: 22196
* allow marking of loads and stores in the instruction stream with enough ↵Andrew Lenharth2005-06-062-0/+31
| | | | | | information to reconstruct the Value* if it existed llvm-svn: 22195
* hide basic block labels. The utility of these for debuging is long since passedAndrew Lenharth2005-06-061-2/+2
| | | | llvm-svn: 22194
* * Replace block of commented-out lines with #if 0Misha Brukman2005-06-061-26/+29
| | | | | | * Remove warning "control reaches end of non-void function" llvm-svn: 22193
OpenPOWER on IntegriCloud