summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/XCore
Commit message (Collapse)AuthorAgeFilesLines
...
* Lower add (mul a, b), c into MACCU / MACCS nodes which translateRichard Osborne2010-03-103-0/+86
| | | | | | | | directly to the maccu / maccs instructions. We handle this in ExpandADDSUB since after type legalisation it is messy to recognise these operations. llvm-svn: 98150
* Change the Value argument to eliminateFrameIndex to a type-tagged value. ThisJim Grosbach2010-03-092-2/+2
| | | | | | | | | | is preparatory to having PEI's scavenged frame index value reuse logic properly distinguish types of frame values (e.g., whether the value is stack-pointer relative or frame-pointer relative). No functionality change. llvm-svn: 98086
* In cases where the carry / borrow unused converted ladd / lsubRichard Osborne2010-03-091-0/+30
| | | | | | to an add or a sub. llvm-svn: 98059
* Canonicalize ladd constant to RHS.Richard Osborne2010-03-091-0/+4
| | | | llvm-svn: 98058
* Add DAG combine for ladd / lsub.Richard Osborne2010-03-092-0/+70
| | | | llvm-svn: 98057
* Sink InstructionSelect() out of each target into SDISel, and rename itChris Lattner2010-03-021-11/+0
| | | | | | | | | | | | DoInstructionSelection. Inline "SelectRoot" into it from DAGISelHeader. Sink some other stuff out of DAGISelHeader into SDISel. Eliminate the various 'Indent' stuff from various targets, which dates to when isel was recursive. 17 files changed, 114 insertions(+), 430 deletions(-) llvm-svn: 97555
* Remove dead parameter passing.Bill Wendling2010-03-021-2/+2
| | | | llvm-svn: 97536
* stop using generated sdnodexforms.Chris Lattner2010-03-011-1/+5
| | | | llvm-svn: 97485
* Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy.Richard Osborne2010-02-261-3/+1
| | | | | | | Previously LoopStrengthReduce would sometimes be unable to find a legal formula, causing an assertion failure. llvm-svn: 97226
* Don't mark call instruction as a barrier.Richard Osborne2010-02-231-1/+1
| | | | llvm-svn: 96983
* ECALLF, ECALLT shouldn't be marked as barriers.Richard Osborne2010-02-231-2/+2
| | | | llvm-svn: 96964
* Mark unconditional branches as barriers. Found using -verify-machineinstrsRichard Osborne2010-02-231-3/+3
| | | | llvm-svn: 96960
* Remove unused lowering function LowerJumpTableRichard Osborne2010-02-232-13/+0
| | | | llvm-svn: 96943
* Lower BR_JT on the XCore to a jump into a series of jump instructions.Richard Osborne2010-02-235-5/+103
| | | | llvm-svn: 96942
* Move TLOF implementations to libCodegen to resolve layering violation.Anton Korobeynikov2010-02-151-2/+1
| | | | llvm-svn: 96288
* Remove an assumption of default arguments. This is in anticipation of aDavid Greene2010-02-151-13/+25
| | | | | | change to SelectionDAG build APIs. llvm-svn: 96227
* no need to add the instruction count anymore.Chris Lattner2010-02-151-1/+1
| | | | llvm-svn: 96212
* Fix "the the" and similar typos.Dan Gohman2010-02-101-2/+2
| | | | llvm-svn: 95781
* print all the newlines at the end of instructions withChris Lattner2010-02-101-2/+3
| | | | | | OutStreamer.AddBlankLine instead of textually. llvm-svn: 95734
* rejigger the world so that EmitInstruction prints the \n atChris Lattner2010-02-031-0/+1
| | | | | | | | the end of the instruction instead of expecting the caller to do it. This currently causes the asm-verbose instruction comments to be on the next line. llvm-svn: 95178
* Revert 95130.Evan Cheng2010-02-022-2/+2
| | | | llvm-svn: 95160
* refactor code so that LLVMTargetMachine creates the asmstreamer and Chris Lattner2010-02-021-2/+3
| | | | | | | mccontext instead of having AsmPrinter do it. This allows other types of MCStreamer's to be passed in. llvm-svn: 95155
* Pass callsite return type to TargetLowering::LowerCall and use that to check ↵Evan Cheng2010-02-022-2/+2
| | | | | | sibcall eligibility. llvm-svn: 95130
* convert the last 3 targets to use EmitFunctionBody() now thatChris Lattner2010-01-281-43/+13
| | | | | | | | | | | | 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
* Switch MSP430, SPU, Sparc, and SystemZ to use EmitFunctionBody().Chris Lattner2010-01-281-10/+2
| | | | | | | Diffstat: 6 files changed, 30 insertions(+), 284 deletions(-) llvm-svn: 94727
* Remove the argument from EmitJumpTableInfo, because it doesn't need it.Chris Lattner2010-01-281-1/+1
| | | | | | | | 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-281-1/+1
| | | | | | | Overload it in the ARM backend to do nothing, since is does insane constant pool emission. llvm-svn: 94708
* Kill ModuleProvider and ghost linkage by inverting the relationship betweenJeffrey Yasskin2010-01-271-2/+0
| | | | | | | | | | | | | | | | | | | | | 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
* Switch MSP430, CellSPU, SystemZ, Darwin/PPC, Alpha, and Sparc to Chris Lattner2010-01-271-3/+3
| | | | | | | | EmitFunctionHeader: 7 files changed, 16 insertions(+), 210 deletions(-) llvm-svn: 94630
* Eliminate target hook IsEligibleForTailCallOptimization.Evan Cheng2010-01-272-2/+4
| | | | | | | | | 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
* Eliminate SetDirective, and replace it with HasSetDirective.Chris Lattner2010-01-262-2/+1
| | | | | | | | | | | 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
* add a new MachineBasicBlock::getSymbol method, replacingChris Lattner2010-01-261-1/+1
| | | | | | the AsmPrinter::GetMBBSymbol. llvm-svn: 94515
* don't bother setting the AsmPrinter::MF ivar, now thatChris Lattner2010-01-261-4/+1
| | | | | | | AsmPrinter::SetupMachineFunction sets it. Note that systemz and msp430 didn't. Yay for reduced inconsistency! :) llvm-svn: 94510
* eliminate redundant argument to EmitJumpTableInfoChris Lattner2010-01-251-1/+1
| | | | llvm-svn: 94464
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-243-3/+0
| | | | llvm-svn: 94378
* add missing break, PR6114, patch by M Wahab.Chris Lattner2010-01-221-0/+1
| | | | llvm-svn: 94197
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-223-0/+5
| | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. llvm-svn: 94164
* reduce redundant are's.Chris Lattner2010-01-201-1/+1
| | | | llvm-svn: 94008
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-201-2/+1
| | | | | | | stomache MCAsmInfo having this, and I found a better solution to this layering issue. llvm-svn: 93985
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-191-1/+2
| | | | | | | | | I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. llvm-svn: 93934
* eliminate AsmPrinter::EmitZeros: just use MCStreamer directly.Chris Lattner2010-01-191-7/+5
| | | | llvm-svn: 93918
* Now that we have everything nicely factored (e.g. asmprinter is notChris Lattner2010-01-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) llvm-svn: 93858
* now that MCSymbol::print doesn't use it's MAI argument, we can Chris Lattner2010-01-171-57/+23
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* eliminate uses of mangler and simplify code.Chris Lattner2010-01-161-2/+1
| | | | llvm-svn: 93615
* MCize a bunch more stuff, eliminating a lot of uses of the manglerChris Lattner2010-01-161-42/+61
| | | | | | and CurrentFnName. llvm-svn: 93594
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-051-16/+15
| | | | | | | | | clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-221-2/+2
| | | | | | | | return partial registers. This affected the back-end lowering code some. Also patch up some places I missed before in the "get" functions. llvm-svn: 91880
* Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor ofDan Gohman2009-12-052-22/+0
| | | | | | | MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. llvm-svn: 90634
* Remove ISD::DEBUG_LOC and ISD::DBG_LABEL, which are no longer used.Dan Gohman2009-11-231-3/+0
| | | | | | | | Note that "hasDotLocAndDotFile"-style debug info was already broken; people wanting this functionality should implement it in the AsmPrinter/DwarfWriter code. llvm-svn: 89711
* We are not using DBG_STOPPOINT anymore.Devang Patel2009-11-211-1/+0
| | | | llvm-svn: 89536
OpenPOWER on IntegriCloud