summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* 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
* don't bother setting the AsmPrinter::MF ivar, now thatChris Lattner2010-01-269-23/+1
| | | | | | | AsmPrinter::SetupMachineFunction sets it. Note that systemz and msp430 didn't. Yay for reduced inconsistency! :) llvm-svn: 94510
* make MachineFunction keep track of its ID and make Chris Lattner2010-01-261-1/+1
| | | | | | | | MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. llvm-svn: 94509
* Unbreak MSVC/CMake build.Daniel Dunbar2010-01-261-1/+1
| | | | llvm-svn: 94502
* Implement cond ? -1 : 0 with sbb.Evan Cheng2010-01-261-2/+25
| | | | llvm-svn: 94490
* Accept immediate as value of a dbg_value.Dale Johannesen2010-01-261-2/+3
| | | | llvm-svn: 94489
* Added the implementation of the Intel-specificSean Callanan2010-01-261-1/+27
| | | | | | TargetAsmLexer. llvm-svn: 94482
* Generate DEBUG_VALUE comments on x86. The (limited)Dale Johannesen2010-01-261-0/+10
| | | | | | | dbg.declare's we currently generate go through both register allocators without perturbing the results. llvm-svn: 94480
* Added the TargetAsmLexer implementation for AT&T syntax.Sean Callanan2010-01-261-5/+70
| | | | llvm-svn: 94479
* use findDebugLoc in more places.Dale Johannesen2010-01-261-10/+5
| | | | llvm-svn: 94477
* Minor jump table cleanup.Jim Grosbach2010-01-251-2/+2
| | | | llvm-svn: 94475
* in 32-bit pic mode for targets with a GOT, x86 emits jump tableChris Lattner2010-01-252-0/+17
| | | | | | entries with @GOTOFF whih is EK_GPRel32BlockAddress. llvm-svn: 94474
* fix quoting problem jim noticed!Chris Lattner2010-01-251-1/+1
| | | | llvm-svn: 94472
* Rearrange handling of jump tables. Highlights:Chris Lattner2010-01-251-1/+1
| | | | | | | | | | | | | | | | | | 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. llvm-svn: 94470
* prep work to support a future where getJumpTableInfo will returnChris Lattner2010-01-253-1/+7
| | | | | | | a null pointer for functions with no jump tables. No functionality change. llvm-svn: 94469
* add a method to get the alignment of an integer type even Chris Lattner2010-01-251-0/+7
| | | | | | | when we don't have one laying around. Useful if you don't have an llvmcontext handy. llvm-svn: 94468
OpenPOWER on IntegriCloud