summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16
Commit message (Collapse)AuthorAgeFilesLines
...
* Sink InstructionSelect() out of each target into SDISel, and rename itChris Lattner2010-03-022-9/+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/+1
| | | | llvm-svn: 97536
* The cloner has nothing to do if any of the main or ISR entrypoints are not Sanjiv Gupta2010-02-261-0/+3
| | | | | | present in the module. llvm-svn: 97232
* Reapply things reverted back in 97220, with the fixed test case.Sanjiv Gupta2010-02-264-18/+69
| | | | llvm-svn: 97228
* Revert r97211 and r97213 to get the build green again.Chandler Carruth2010-02-264-69/+16
| | | | llvm-svn: 97220
* Currently in LLVM, names of libcalls are assigned during TargetLoweringSanjiv Gupta2010-02-263-12/+51
| | | | | | | | object construction. There is no provision to change them when the code for a function generated. So we have to change these names while printing assembly. llvm-svn: 97213
* Before converting an operand to mem, check if it is legal to do so.Sanjiv Gupta2010-02-261-4/+18
| | | | llvm-svn: 97211
* Each field of auxiliary debug entry is only 1 byte long.Sanjiv Gupta2010-02-251-1/+1
| | | | llvm-svn: 97108
* remove dupes now.Chris Lattner2010-02-221-2/+0
| | | | llvm-svn: 96811
* move #includes earlier.Chris Lattner2010-02-222-2/+3
| | | | llvm-svn: 96810
* Remap the call sites of a shared function in interrupt line functions.Sanjiv Gupta2010-02-182-0/+27
| | | | llvm-svn: 96591
* Re-factoring.Sanjiv Gupta2010-02-182-67/+90
| | | | llvm-svn: 96589
* Added routine to clone the body of a function and maintain a map of alreadySanjiv Gupta2010-02-172-0/+45
| | | | | | cloned functions. llvm-svn: 96485
* Added a function to clone locals of a function.( which for pic16 are globalsSanjiv Gupta2010-02-172-1/+47
| | | | | | with mangled names). llvm-svn: 96465
* Removed header files from .h by adding forward decls.Sanjiv Gupta2010-02-172-22/+27
| | | | | | | Renamed PIC16FrameOverlay namespace to PIC16OVERLAY. Renamed PIC16FrameOverlay class to PIC16Overlay. llvm-svn: 96463
* Initial implementation of PIC16 Cloner pass.Sanjiv Gupta2010-02-172-0/+254
| | | | | | | | | | | | | This pass is supposed to be run on the linked .bc module. It traveses the module call graph twice. Once starting from the main function and marking each reached function as "ML". Again, starting from the ISR and cloning any reachable function that was marked as "ML". After cloning the function, it remaps all the call sites in IL functions to call the cloned functions. Currently only marking is being done. llvm-svn: 96435
* The code section for an ISR has a specific address.Sanjiv Gupta2010-02-164-4/+23
| | | | | | Currently, whether a function is ISR or not is encoded in the section attribute for that function. llvm-svn: 96322
* Split SelectionDAGISel::IsLegalAndProfitableToFold toEvan Cheng2010-02-151-2/+1
| | | | | | | | IsLegalToFold and IsProfitableToFold. The generic version of the later simply checks whether the folding candidate has a single use. This allows the target isel routines more flexibility in deciding whether folding makes sense. The specific case we are interested in is folding constant pool loads with multiple uses. llvm-svn: 96255
* Remove an assumption of default arguments. This is in anticipation of aDavid Greene2010-02-151-2/+2
| | | | | | change to SelectionDAG build APIs. llvm-svn: 96235
* fixes to pagesel/banksel inserter.Sanjiv Gupta2010-02-141-13/+92
| | | | | | | 1. restore these across direct/indirect calls. 2. restore pagesel for any macros with gotos. llvm-svn: 96175
* Fix "the the" and similar typos.Dan Gohman2010-02-101-1/+1
| | | | llvm-svn: 95781
* print all the newlines at the end of instructions withChris Lattner2010-02-101-1/+1
| | | | | | OutStreamer.AddBlankLine instead of textually. llvm-svn: 95734
* rename printMachineInstruction -> EmitInstructionChris Lattner2010-02-032-8/+3
| | | | llvm-svn: 95184
* Revert 95130.Evan Cheng2010-02-022-2/+2
| | | | llvm-svn: 95160
* refactor code so that LLVMTargetMachine creates the asmstreamer and Chris Lattner2010-02-022-3/+5
| | | | | | | 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
* Replace strcpy with memcpy when we have the length around anyway.Benjamin Kramer2010-01-281-1/+2
| | | | llvm-svn: 94746
* 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-261-1/+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-2/+0
| | | | | | | AsmPrinter::SetupMachineFunction sets it. Note that systemz and msp430 didn't. Yay for reduced inconsistency! :) llvm-svn: 94510
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-244-4/+0
| | | | llvm-svn: 94378
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-224-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
* 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
* 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-17/+9
| | | | | | | remove it and change all the code that prints MCSymbols to use << instead, which is much simpler and cleaner. llvm-svn: 93695
* Replace DebugLocTuple with DILocation.Devang Patel2010-01-161-2/+3
| | | | llvm-svn: 93630
* eliminate uses of mangler and simplify code.Chris Lattner2010-01-161-25/+22
| | | | llvm-svn: 93615
* get pic16 off CurrentFnNameChris Lattner2010-01-161-14/+13
| | | | llvm-svn: 93610
* remove the string form of printVisibility.Chris Lattner2010-01-161-2/+4
| | | | llvm-svn: 93609
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-052-4/+4
| | | | | | | | | 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
* Extern declaration for unordered.f32 libcall was not being emitted. Fixed that.Sanjiv Gupta2009-12-291-0/+1
| | | | llvm-svn: 92242
* Fixed llc crash for zext (i1 -> i8) loads.Sanjiv Gupta2009-12-281-2/+2
| | | | llvm-svn: 92201
* Allow targets to specify the return type of libcalls that are generated for ↵Sanjiv Gupta2009-12-282-0/+6
| | | | | | floating point comparisons, rather than hard-coding them as i32. llvm-svn: 92199
* Reapply 91904.Sanjiv Gupta2009-12-233-10/+44
| | | | llvm-svn: 91996
* Added missing patterns for subtract instruction.Sanjiv Gupta2009-12-232-34/+64
| | | | llvm-svn: 91995
* Reverting back 91904.Sanjiv Gupta2009-12-233-45/+10
| | | | llvm-svn: 91993
* While converting one of the operands to a memory operand, we need to check ↵Sanjiv Gupta2009-12-223-10/+45
| | | | | | if it is Legal and does not result into a cyclic dep. llvm-svn: 91904
* Add more plumbing. This time in the LowerArguments and "get" functions whichBill Wendling2009-12-221-1/+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
OpenPOWER on IntegriCloud