summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC
Commit message (Collapse)AuthorAgeFilesLines
...
* fix PPC.h to not pull in TargetMachine.hChris Lattner2010-11-141-2/+2
| | | | llvm-svn: 119072
* implement basic support for memory operands and crbit operands,Chris Lattner2010-11-142-5/+72
| | | | | | this fixes 3 more ppc tests. llvm-svn: 119065
* implement several trivial operand printers, reducingChris Lattner2010-11-142-6/+56
| | | | | | failures in CodeGen/PowerPC from 120 -> 117 llvm-svn: 119063
* Implement support for printing register and immediate operands,Chris Lattner2010-11-143-6/+46
| | | | | | | | | | | | | | add support for darwin vs aix syntax. We now can print instructions like this: add r3, r3, r4 blr and (in aix mode): add 3, 3, 4 blr llvm-svn: 119062
* stub out PPCMCInstLowering, add a new option that uses it and the newChris Lattner2010-11-144-0/+154
| | | | | | instprinter when -enable-ppc-inst-printer is passed to llc. llvm-svn: 119061
* stub out a powerpc MCInstPrinter implementation.Chris Lattner2010-11-146-1/+144
| | | | llvm-svn: 119059
* move PPCAsmPrinter into the main PPC library, like ARM and X86.Chris Lattner2010-11-145-22/+2
| | | | llvm-svn: 119054
* In the calling convention logic, ValVT is always a legal type,Duncan Sands2010-11-041-6/+6
| | | | | | | and as such can be represented by an MVT - the more complicated EVT is not needed. Use MVT for ValVT everywhere. llvm-svn: 118245
* Inside the calling convention logic LocVT is always a simpleDuncan Sands2010-11-031-8/+8
| | | | | | | | | | value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. llvm-svn: 118167
* Inline asm multiple alternative constraints development phase 2 - improved ↵John Thompson2010-10-292-2/+49
| | | | | | basic logic, added initial platform support. llvm-svn: 117667
* Remove some variables that are never really usedDuncan Sands2010-10-211-1/+0
| | | | | | (gcc-4.6 warns about these). llvm-svn: 117021
* PowerPC varargs functions store live-in registers on the stack. Make sure we useJakob Stoklund Olesen2010-10-111-33/+13
| | | | | | | | | virtual registers for those stores since RegAllocFast requires that each live physreg only be used once. This fixes PR8357. llvm-svn: 116222
* fix the expansion of va_arg instruction on PPC to know the arg Chris Lattner2010-10-101-0/+4
| | | | | | | | | alignment for PPC32/64, avoiding some masking operations. llvm-gcc expands vaarg inline instead of using the instruction so it has never hit this. llvm-svn: 116168
* Make <target>CodeEmitter::getBinaryCodeForInstr() a const method.Jim Grosbach2010-10-081-3/+3
| | | | llvm-svn: 116018
* Add support to model pipeline bypass / forwarding.Evan Cheng2010-09-284-4/+4
| | | | llvm-svn: 115005
* Removed a bunch of unnecessary target_link_libraries.Oscar Fuentes2010-09-281-2/+0
| | | | llvm-svn: 114999
* fix a long standing wart: all the ComplexPattern's were beingChris Lattner2010-09-211-8/+5
| | | | | | | | | | | passed the root of the match, even though only a few patterns actually needed this (one in X86, several in ARM [which should be refactored anyway], and some in CellSPU that I don't feel like detangling). Instead of requiring all ComplexPatterns to take the dead root, have targets opt into getting the root by putting SDNPWantRoot on the ComplexPattern. llvm-svn: 114471
* update a bunch of code to use the MachinePointerInfo version of getStore.Chris Lattner2010-09-211-26/+30
| | | | llvm-svn: 114461
* eliminate an old SelectionDAG::getTruncStore method, propagatingChris Lattner2010-09-211-4/+6
| | | | | | MachinePointerInfo around more. llvm-svn: 114452
* propagate MachinePointerInfo through various uses of the oldChris Lattner2010-09-211-1/+2
| | | | | | SelectionDAG::getExtLoad overload, and eliminate it. llvm-svn: 114446
* convert the targets off the non-MachinePointerInfo of getLoad.Chris Lattner2010-09-211-25/+30
| | | | llvm-svn: 114410
* reimplement memcpy/memmove/memset lowering to use MachinePointerInfoChris Lattner2010-09-211-1/+2
| | | | | | | instead of srcvalue/offset pairs. This corrects SV info for mem operations whose size is > 32-bits. llvm-svn: 114401
* convert targets to the new MF.getMachineMemOperand interface.Chris Lattner2010-09-212-6/+9
| | | | llvm-svn: 114391
* add a readme.Chris Lattner2010-09-191-0/+25
| | | | llvm-svn: 114303
* Teach if-converter to be more careful with predicating instructions that wouldEvan Cheng2010-09-101-2/+2
| | | | | | | | | | | take multiple cycles to decode. For the current if-converter clients (actually only ARM), the instructions that are predicated on false are not nops. They would still take machine cycles to decode. Micro-coded instructions such as LDM / STM can potentially take multiple cycles to decode. If-converter should take treat them as non-micro-coded simple instructions. llvm-svn: 113570
* zap dead code.Chris Lattner2010-09-043-11/+0
| | | | llvm-svn: 113073
* Simplify eliminateFrameIndex() interface back down now that PEI doesn't needJim Grosbach2010-08-262-11/+8
| | | | | | to try to re-use scavenged frame index reference registers. rdar://8277890 llvm-svn: 112241
* tyopsGabor Greif2010-08-231-1/+1
| | | | llvm-svn: 111835
* fix emacs language spec's, patch by Edmund Grimley-Evans!Chris Lattner2010-08-171-1/+1
| | | | llvm-svn: 111241
* Reapply r110396, with fixes to appease the Linux buildbot gods.Owen Anderson2010-08-062-2/+2
| | | | llvm-svn: 110460
* Revert r110396 to fix buildbots.Owen Anderson2010-08-062-2/+2
| | | | llvm-svn: 110410
* Don't use PassInfo* as a type identifier for passes. Instead, use the ↵Owen Anderson2010-08-052-2/+2
| | | | | | | | address of the static ID member as the sole unique type identifier. Clean up APIs related to this change. llvm-svn: 110396
* Implement target specific getDebugValueLocation().Devang Patel2010-08-041-0/+14
| | | | llvm-svn: 110256
* Use indirect calls in PowerPC JIT.Torok Edwin2010-08-043-10/+31
| | | | | | | | | See PR5201. There is no way to know if direct calls will be within the allowed range for BL. Hence emit all calls as indirect when in JIT mode. Without this long-running applications will fail to JIT on PowerPC with a relocation failure. llvm-svn: 110246
* PR7781: Fix incorrect shifting in PPCTargetLowering::LowerBUILD_VECTOR.Eli Friedman2010-08-021-3/+3
| | | | llvm-svn: 109998
* PPC doesn't supported VLA with large alignment. This wasDale Johannesen2010-07-301-2/+2
| | | | | | | | formerly rejected by the FE, so asserted in the BE; now the FE only warns, so we treat it as a legitimate fatal error in PPC BE. This means the test for the feature won't pass, so it's xfail'd. llvm-svn: 109892
* fix constness warningsGabor Greif2010-07-231-1/+2
| | | | llvm-svn: 109224
* eliminate the TargetInstrInfo::GetInstSizeInBytes hook. Chris Lattner2010-07-221-1/+1
| | | | | | | | ARM/PPC/MSP430-specific code (which are the only targets that implement the hook) can directly reference their target-specific instrinfo classes. llvm-svn: 109171
* Remove the isMoveInstr() hook.Jakob Stoklund Olesen2010-07-162-67/+0
| | | | llvm-svn: 108567
* Rename DBG_LABEL PROLOG_LABEL, because it's only used during prolog emission andBill Wendling2010-07-163-4/+4
| | | | | | thus is a much more meaningful name. llvm-svn: 108563
* Emit COPY instead of FMR/FMSD instructions for floating point conversion onJakob Stoklund Olesen2010-07-162-12/+9
| | | | | | PowerPC. llvm-svn: 108555
* Teach PPCInstrInfo::storeRegToStackSlot and loadRegFromStackSlot to add memoryJakob Stoklund Olesen2010-07-161-0/+19
| | | | | | | | | operands. Hopefully this fixes the llvm-gcc-powerpc-darwin9 buildbot. It really shouldn't since missing memoperands should not affect correctness. llvm-svn: 108540
* RISC architectures get their memory operand folding for free.Jakob Stoklund Olesen2010-07-112-132/+0
| | | | | | | | The only folding these load/store architectures can do is converting COPY into a load or store, and the target independent part of foldMemoryOperand already knows how to do that. llvm-svn: 108099
* Replace copyRegToReg with copyPhysReg for PowerPC.Jakob Stoklund Olesen2010-07-112-36/+30
| | | | llvm-svn: 108083
* Move getExtLoad() and (some) getLoad() DebugLoc argument after EVT argument ↵Evan Cheng2010-07-071-1/+1
| | | | | | for consistency sake. llvm-svn: 107820
* Split the SDValue out of OutputArg so that SelectionDAG-independentDan Gohman2010-07-072-11/+20
| | | | | | code can do calling-convention queries. This obviates OutputArgReg. llvm-svn: 107786
* Propagate debug loc.Devang Patel2010-07-061-4/+5
| | | | llvm-svn: 107710
* Reapply r107655 with fixes; insert the pseudo instruction intoDan Gohman2010-07-061-17/+29
| | | | | | | the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. llvm-svn: 107691
* Revert r107655.Dan Gohman2010-07-061-29/+17
| | | | llvm-svn: 107668
* Fix a bunch of custom-inserter functions to handle the case whereDan Gohman2010-07-061-17/+29
| | | | | | the pseudo instruction is not at the end of the block. llvm-svn: 107655
OpenPOWER on IntegriCloud