summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Make it SP, LR, PC for GPR Register Class instead of LR, SP, PC.Johnny Chen2010-01-251-1/+1
| | | | llvm-svn: 94465
* eliminate redundant argument to EmitJumpTableInfoChris Lattner2010-01-258-9/+9
| | | | llvm-svn: 94464
* Implemented ARMInstPrinter::printThumbS4ImmOperand().Johnny Chen2010-01-251-2/+1
| | | | llvm-svn: 94457
* Implemented the dialect decision logic for the X86Sean Callanan2010-01-251-2/+20
| | | | | | | | TargetAsmLexer. Dialect-specific lexing code will be placed in the functions LexTokenATT() and LexTokenIntel(). llvm-svn: 94456
* Fixed the order of GPR RegisterClass regs to be: ..., R10, R11, R12, ...Johnny Chen2010-01-251-1/+1
| | | | llvm-svn: 94455
* handle the _set_ symbol with an MCSymbol.Chris Lattner2010-01-251-2/+1
| | | | llvm-svn: 94449
* rename MAI::PICJumpTableDirective to MAI::GPRel32Directive toChris Lattner2010-01-252-2/+2
| | | | | | make it clear what it is, instead of how it is used. llvm-svn: 94448
* pull the non-pic jump table case out of printPICJumpTableEntryChris Lattner2010-01-251-1/+2
| | | | | | | and MCize the non-pic case. Now printPICJumpTableEntry really is just about printing PIC entries. llvm-svn: 94446
* remove JumpTableDirective, it is always null.Chris Lattner2010-01-251-1/+1
| | | | llvm-svn: 94445
* mcize jump table symbol manipulation.Chris Lattner2010-01-251-33/+38
| | | | llvm-svn: 94441
* sink an arm specific method out of asmprinter into the ARMAsmPrinter andChris Lattner2010-01-252-5/+17
| | | | | | rename it to avoid shadowing. llvm-svn: 94440
* remove dead code: the x86 target never sets usesGlobalOffsetTable, Chris Lattner2010-01-251-2/+0
| | | | | | even on x86-32/elf which uses a GOT. llvm-svn: 94439
* mcstreamerize .file and .file. This also fixes an issue where theChris Lattner2010-01-251-1/+4
| | | | | | | normal form of .file would fail if the filename had a weird character in it. llvm-svn: 94437
* emit ELF .type directives through MCStreamer instead of doing it textually.Chris Lattner2010-01-251-1/+1
| | | | llvm-svn: 94436
* Remove support for i386 tiger tools for aligned common symbols.Chris Lattner2010-01-251-3/+0
| | | | | | | | | Previously we would just silently miscompile code that used aligned common's, now at least you'll get a build error. tiger-ppc already triggered the build error because it didn't have a version of this logic. llvm-svn: 94412
* don't set value to its default.Chris Lattner2010-01-252-2/+0
| | | | llvm-svn: 94411
* ARM does accept the .comm directive alignment.Jim Grosbach2010-01-251-1/+0
| | | | llvm-svn: 94408
* Fix PR6134.Rafael Espindola2010-01-251-3/+1
| | | | | | | We are not emitting alignments on Darwin for "bar". Not sure what is the correct way to do it. llvm-svn: 94400
* linux/ppc does use alignment in bytes, not pow-2. This fixes PR6129.Chris Lattner2010-01-241-1/+0
| | | | | | | | It looks like linux/arm and linux/mips have the same setting, which are probably wrong. Someone who cares about ARM and MIPS should investigate with the testcase in PR6129. llvm-svn: 94381
* don't reset the default.Chris Lattner2010-01-241-2/+0
| | | | llvm-svn: 94380
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-2447-52/+0
| | | | llvm-svn: 94378
OpenPOWER on IntegriCloud