summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Modified encoding bits specification for VFP instructions. In particular, the DJohnny Chen2010-01-292-104/+120
| | | | | | | bit (Inst{22}) and the M bit (Inst{5}) should be left unspecified. For binary format instructions, Inst{6} and Inst{4} need to specified for proper decodings. llvm-svn: 94855
* PPC is not ready for sibcall optimization.Evan Cheng2010-01-291-0/+3
| | | | llvm-svn: 94853
* Add assertion to humor the paranoid.Dale Johannesen2010-01-291-0/+1
| | | | llvm-svn: 94843
* Improve isSafeToLoadUnconditionally to recognize that GEPs with constantBob Wilson2010-01-291-10/+0
| | | | | | | indices are safe if the result is known to be within the bounds of the underlying object. llvm-svn: 94829
* Catch more trivial tail call opportunities: no inputs and output types match.Evan Cheng2010-01-291-12/+20
| | | | llvm-svn: 94804
* Added a custom TableGen backend to support theSean Callanan2010-01-291-0/+1
| | | | | | | enhanced disassembler, and the necessary makefile rules to build the table for X86. llvm-svn: 94764
* Replace strcpy with memcpy when we have the length around anyway.Benjamin Kramer2010-01-281-1/+2
| | | | llvm-svn: 94746
* convert the last 3 targets to use EmitFunctionBody() now thatChris Lattner2010-01-283-145/+47
| | | | | | | | | | | | it has before/end body hooks. lib/Target/Alpha/AsmPrinter/AlphaAsmPrinter.cpp | 49 ++----------- lib/Target/Mips/AsmPrinter/MipsAsmPrinter.cpp | 87 ++++++------------------ lib/Target/XCore/AsmPrinter/XCoreAsmPrinter.cpp | 56 +++------------ test/CodeGen/XCore/ashr.ll | 2 4 files changed, 48 insertions(+), 146 deletions(-) llvm-svn: 94741
* Fix a bug introduced by r94490 where it created a X86ISD::CMP whose output ↵Evan Cheng2010-01-281-1/+1
| | | | | | | | type is different from its inputs. This fixes PR6146. llvm-svn: 94731
* switch blackfin to the default runOnMachineFunctionChris Lattner2010-01-281-43/+1
| | | | llvm-svn: 94729
* eliminate a now-useless class.Chris Lattner2010-01-281-13/+1
| | | | llvm-svn: 94728
* Switch MSP430, SPU, Sparc, and SystemZ to use EmitFunctionBody().Chris Lattner2010-01-286-284/+30
| | | | | | | Diffstat: 6 files changed, 30 insertions(+), 284 deletions(-) llvm-svn: 94727
* Give AsmPrinter the most common expected implementation of Chris Lattner2010-01-282-110/+20
| | | | | | | | runOnMachineFunction, and switch PPC to use EmitFunctionBody. The two ppc asmprinters now don't heave to define runOnMachineFunction. llvm-svn: 94722
* switch ARM to EmitFunctionBody().Chris Lattner2010-01-281-45/+3
| | | | llvm-svn: 94719
* Remove the argument from EmitJumpTableInfo, because it doesn't need it.Chris Lattner2010-01-2812-90/+28
| | | | | | | | Move the X86 implementation of function body emission up to AsmPrinter::EmitFunctionBody, which works by calling the virtual EmitInstruction method. llvm-svn: 94716
* Drop the argument to AsmPrinter::EmitConstantPool and make it virtual.Chris Lattner2010-01-282-1/+3
| | | | | | | Overload it in the ARM backend to do nothing, since is does insane constant pool emission. llvm-svn: 94708
* don't emit constant pools twice.Chris Lattner2010-01-281-1/+0
| | | | llvm-svn: 94706
* switch ARM to use EmitFunctionHeader.Chris Lattner2010-01-271-44/+15
| | | | llvm-svn: 94703
* eliminate the ARMFunctionInfo::Align member, using Chris Lattner2010-01-273-19/+6
| | | | | | MachineFunction::Alignment instead. llvm-svn: 94701
* switch blackfin to use EmitFunctionHeader. BlackfinAsmPrinter.cppChris Lattner2010-01-271-37/+5
| | | | | | is now less than 200 LOC! llvm-svn: 94699
* switch mips to use the shared EmitFunctionHeader() functionChris Lattner2010-01-271-41/+19
| | | | llvm-svn: 94698
* Treat MO_REG 0 location as undefined in DEBUG_VALUE,Dale Johannesen2010-01-271-2/+8
| | | | | | per document. llvm-svn: 94693
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-275-10/+6
| | | | | | | | | | | | | | | | | | | | | Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. llvm-svn: 94686
* add a new AsmPrinter::EmitFunctionEntryLabel virtual function,Chris Lattner2010-01-271-53/+23
| | | | | | | which allows targets to override function entry label emission. Use it to convert linux/ppc to use EmitFunctionHeader(). llvm-svn: 94667
* Perform trivial tail call optimization for callees with "C" ABI. These are doneEvan Cheng2010-01-272-5/+30
| | | | | | | | | even when -tailcallopt is not specified and it does not require changing ABI. First case is the most trivial one. Perform tail call optimization when both the caller and callee do not return values and when the callee does not take any input arguments. llvm-svn: 94664
* ppc/linux isn't ready for this and it was an accident that it was included.Chris Lattner2010-01-271-2/+0
| | | | | | This should fix a bunch of linux buildbot failures. llvm-svn: 94643
* use existing basic block numbers instead of recomputing Chris Lattner2010-01-271-23/+4
| | | | | | a new set of them. llvm-svn: 94631
* Switch MSP430, CellSPU, SystemZ, Darwin/PPC, Alpha, and Sparc to Chris Lattner2010-01-277-210/+16
| | | | | | | | EmitFunctionHeader: 7 files changed, 16 insertions(+), 210 deletions(-) llvm-svn: 94630
* Clarify what -tailcallopt option actually do.Evan Cheng2010-01-271-1/+1
| | | | llvm-svn: 94628
* Adjust setjmp instruction sequence to not need 32-bit alignment paddingJim Grosbach2010-01-272-5/+4
| | | | llvm-svn: 94627
* Eliminate target hook IsEligibleForTailCallOptimization.Evan Cheng2010-01-2724-61/+83
| | | | | | | | | Target independent isel should always pass along the "tail call" property. Change target hook LowerCall's parameter "isTailCall" into a refernce. If the target decides it's impossible to honor the tail call request, it should set isTailCall to false to make target independent isel happy. llvm-svn: 94626
* Restore to pre-94570 state.Evan Cheng2010-01-271-0/+6
| | | | llvm-svn: 94625
* Ignore 'forced' tailcall opt in fastisel mode.Evan Cheng2010-01-261-5/+0
| | | | llvm-svn: 94617
* now that enough stuff is constified, move function header printingChris Lattner2010-01-262-88/+22
| | | | | | | logic up from X86 into the common code. The other targets will hopefully start using this soon. llvm-svn: 94614
* constify a method argument.Chris Lattner2010-01-267-16/+19
| | | | llvm-svn: 94612
* Delete blank lines that bug me.Evan Cheng2010-01-261-2/+0
| | | | llvm-svn: 94610
* call emitconstantpool and emitjumptable like other targets.Chris Lattner2010-01-261-0/+4
| | | | llvm-svn: 94601
* Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner2010-01-2614-12/+7
| | | | | | | | | | | Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. llvm-svn: 94585
* Delete dead code.Evan Cheng2010-01-262-7/+0
| | | | llvm-svn: 94583
* Emit .comm alignment in bytes but .align in powers of 2 for ARM ELF.Rafael Espindola2010-01-261-0/+3
| | | | | | Original patch by Sandeep Patel and updated by me. llvm-svn: 94582
* eliminate MCAsmInfo::NeedsSet: we now just use .set on any platformChris Lattner2010-01-261-1/+0
| | | | | | that has it. llvm-svn: 94581
* don't set to the default value.Chris Lattner2010-01-261-1/+0
| | | | llvm-svn: 94580
* Code refactoring, no functionality change.Evan Cheng2010-01-263-28/+27
| | | | llvm-svn: 94570
* Remove SIL, DIL, and BPL from the GR8_NOREX allocation order also.Dan Gohman2010-01-261-11/+5
| | | | llvm-svn: 94560
* SIL, DIL, BPL, and SPL require a REX prefix.Dan Gohman2010-01-261-6/+3
| | | | llvm-svn: 94558
* eliminate the TargetLowering::UsesGlobalOffsetTable bool, which isChris Lattner2010-01-262-5/+0
| | | | | | | subsumed by TargetLowering::getJumpTableEncoding(). Change uses of it to be more specific. llvm-svn: 94529
* Move getJTISymbol from MachineJumpTableInfo to MachineFunction,Chris Lattner2010-01-265-24/+39
| | | | | | | | | | | | | | | | | | which is more convenient, and change getPICJumpTableRelocBaseExpr to take a MachineFunction to match. Next, move the X86 code that create a PICBase symbol to X86TargetLowering::getPICBaseSymbol from X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific library. This eliminates a 'gross hack', and allows us to implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now calls it. This in turn allows us to eliminate the X86AsmPrinter::printPICJumpTableSetLabel method, which was the only overload of printPICJumpTableSetLabel. llvm-svn: 94526
* simplify asmprinter: only emit .set directives when entries haveChris Lattner2010-01-261-11/+2
| | | | | | | EK_LabelDifference32 kind and the target has .set support. Simplify X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers. llvm-svn: 94518
* implement X86 @GOTOFF jump table entries with the new EK_Custom32Chris Lattner2010-01-264-29/+31
| | | | | | | | | | | jump table entry kind, instead of overloading AsmPrinter::printPICJumpTableEntry. This has a pretty horrible and inefficient FIXME around how @GOTOFF is currently smashed into the mcsymbol name, but otherwise this is much cleaner. llvm-svn: 94516
* add a new MachineBasicBlock::getSymbol method, replacingChris Lattner2010-01-2615-24/+24
| | | | | | the AsmPrinter::GetMBBSymbol. llvm-svn: 94515
OpenPOWER on IntegriCloud