aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
AgeCommit message (Collapse)Author
2010-01-26eliminate the TargetLowering::UsesGlobalOffsetTable bool, which isChris Lattner
subsumed by TargetLowering::getJumpTableEncoding(). Change uses of it to be more specific. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94529 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Now that printPICJumpTableSetLabel is not overloaded,Chris Lattner
inline it into its only caller, allowing us to simplify it and hoist bits out of the loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94528 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Move getJTISymbol from MachineJumpTableInfo to MachineFunction,Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94526 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26add a new MachineJumpTableInfo::getJTISymbol method,Chris Lattner
use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94523 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26stub out a new target hook, need some refactoring before I canChris Lattner
implement it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94521 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26simplify asmprinter: only emit .set directives when entries haveChris Lattner
EK_LabelDifference32 kind and the target has .set support. Simplify X86AsmPrinter::printPICJumpTableSetLabel to make use of recent helpers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94518 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26rename printPICJumpTableEntry -> EmitJumpTableEntry,Chris Lattner
make it private and non-virtual. It handles the non-pic case too, so just use it, simplifying EmitJumpTableInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26add a new MachineBasicBlock::getSymbol method, replacingChris Lattner
the AsmPrinter::GetMBBSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94515 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26New PBQP solver.Lang Hames
* Fixed a reduction bug which occasionally led to infinite-cost (invalid) register allocation solutions despite the existence finite-cost solutions. * Significantly reduced memory usage (>50% reduction). * Simplified a lot of the solver code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94514 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26make MachineFunction keep track of its ID and make Chris Lattner
MachineFunctionAnalysis dole them out, instead of having AsmPrinter do both. Have the AsmPrinter::SetupMachineFunction method set the 'AsmPrinter::MF' variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94509 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Add support for target-specific 32-bit custom-lowered Chris Lattner
jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94505 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26switch jump table entry emission to be based on EntryKindChris Lattner
instead of magic variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94500 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Implement cond ? -1 : 0 with sbb.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94490 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-26Generate DEBUG_VALUE comments on x86. The (limited)Dale Johannesen
dbg.declare's we currently generate go through both register allocators without perturbing the results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94480 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25Rearrange handling of jump tables. Highlights:Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94470 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25prep work to support a future where getJumpTableInfo will returnChris Lattner
a null pointer for functions with no jump tables. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94469 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25eliminate redundant argument to EmitJumpTableInfoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94464 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25mcstreamerize gprel32 emission.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94452 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25mcize the non-gprel cases of AsmPrinter::printPICJumpTableEntryChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94450 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25handle the _set_ symbol with an MCSymbol.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94449 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25rename MAI::PICJumpTableDirective to MAI::GPRel32Directive toChris Lattner
make it clear what it is, instead of how it is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94448 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25pull the non-pic jump table case out of printPICJumpTableEntryChris Lattner
and MCize the non-pic case. Now printPICJumpTableEntry really is just about printing PIC entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94446 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25remove JumpTableDirective, it is always null.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94445 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25sink an arm specific method out of asmprinter into the ARMAsmPrinter andChris Lattner
rename it to avoid shadowing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94440 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25mcstreamerize .file and .file. This also fixes an issue where theChris Lattner
normal form of .file would fail if the filename had a weird character in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94437 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25emit ELF .type directives through MCStreamer instead of doing it textually.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25add a commentChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94417 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-25emit the .size directive for global variables on ELF throughChris Lattner
mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94416 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24fix some issues where we weren't emitting enough newlines.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94370 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24when emitting DIEs, emit the comment on the same line as the directive.Chris Lattner
This fixes FrontendObjC/2009-11-30-Objc-ID.m git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94369 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24It seems better to scalarize vectors of size 1 instead of widening them.Mon P Wang
Add support to widen SETCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94342 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-24Improved widening loads by adding support for wider loads ifMon P Wang
the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94338 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Remove the '-disable-scheduling' flag and replace it with the 'source' option ofBill Wendling
the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also, keep track of the SDNode ordering by default. Eventually, we would like to make this ordering a way to break a "tie" in the scheduler. However, doing that now breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94308 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23mcize lcomm, simplify .comm, extend both to support 64-bit sizes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94299 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23resolve a fixme: the "nonexecutable stack directive" is actuallyChris Lattner
a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23remove a dead call.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94297 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23mcize visibility directives.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23move the various directive enums out of the MCStreamer classChris Lattner
into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Change constantexpr global variable initializers to convert the constantsChris Lattner
to MCExpr then emit them through MCStreamer with EmitValue. I think all global variable initializers are now going through mcstreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94293 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23mcstreamerize .no_dead_strip and .reference for static ctors/dtors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94290 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23mcize jump table and constant pool entry labels, .local on elf,Chris Lattner
and some .weak directives. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94284 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23emit .ascii and .asciz through MCStreamer.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94282 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23remove one form of EmitString, just use EmitBytes instead. We mustChris Lattner
be careful to add a \0 at the end though, because EmitString didn't do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94277 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23teach MCAsmStreamer::EmitBytes to use .ascii and .ascizChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94259 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22Enable pre-regalloc scheduling load clustering by default.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94255 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22move "EOL" from asmprinter to dwarfprinter. It should eventuallyChris Lattner
be completely eliminated, but today is not that day. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94253 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22remove uses of EOL.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22add a new EmitCFAByte method and use it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94251 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-22move uleb printing from asmprinter to dwarfprinter, mcize,Chris Lattner
cleanup and eliminate a bunch more uses of "EOL". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94250 91177308-0d34-0410-b5e6-96231b3b80d8