summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16ISelLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Per discussion with Sanjiv, remove the PIC16 target from mainline. When/ifChris Lattner2010-10-111-2000/+0
| | | | | | | it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. llvm-svn: 116190
* update a bunch of code to use the MachinePointerInfo version of getStore.Chris Lattner2010-09-211-4/+4
| | | | llvm-svn: 114461
* Teach bottom up pre-ra scheduler to track register pressure. Work in progress.Evan Cheng2010-07-211-0/+10
| | | | llvm-svn: 108991
* Split the SDValue out of OutputArg so that SelectionDAG-independentDan Gohman2010-07-071-5/+10
| | | | | | code can do calling-convention queries. This obviates OutputArgReg. llvm-svn: 107786
* Propagate debug loc.Devang Patel2010-07-061-2/+3
| | | | llvm-svn: 107710
* Reapply r107655 with fixes; insert the pseudo instruction intoDan Gohman2010-07-061-11/+9
| | | | | | | the block before calling the expansion hook. And don't put EFLAGS in a mbb's live-in list twice. llvm-svn: 107691
* Revert r107655.Dan Gohman2010-07-061-9/+11
| | | | llvm-svn: 107668
* Fix a bunch of custom-inserter functions to handle the case whereDan Gohman2010-07-061-11/+9
| | | | | | the pseudo instruction is not at the end of the block. llvm-svn: 107655
* Eliminate unnecessary uses of getZExtValue().Dan Gohman2010-06-181-3/+3
| | | | llvm-svn: 106279
* Get rid of the EdgeMapping map. Instead, just check for BasicBlockDan Gohman2010-05-011-6/+2
| | | | | | changes before doing phi lowering for switches. llvm-svn: 102809
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-40/+51
| | | | | | | | | | | | | const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. llvm-svn: 101635
* Move per-function state out of TargetLowering subclasses and intoDan Gohman2010-04-171-13/+30
| | | | | | MachineFunctionInfo subclasses. llvm-svn: 101634
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-151-1/+1
| | | | llvm-svn: 101334
* Fix memory leaks for external symbol name strings.Sanjiv Gupta2010-04-071-9/+9
| | | | llvm-svn: 100601
* Remove dead parameter passing.Bill Wendling2010-03-021-2/+1
| | | | llvm-svn: 97536
* Reapply things reverted back in 97220, with the fixed test case.Sanjiv Gupta2010-02-261-4/+18
| | | | llvm-svn: 97228
* Revert r97211 and r97213 to get the build green again.Chandler Carruth2010-02-261-18/+4
| | | | llvm-svn: 97220
* Before converting an operand to mem, check if it is legal to do so.Sanjiv Gupta2010-02-261-4/+18
| | | | llvm-svn: 97211
* 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
* Revert 95130.Evan Cheng2010-02-021-1/+1
| | | | llvm-svn: 95160
* Pass callsite return type to TargetLowering::LowerCall and use that to check ↵Evan Cheng2010-02-021-1/+1
| | | | | | sibcall eligibility. llvm-svn: 95130
* Eliminate target hook IsEligibleForTailCallOptimization.Evan Cheng2010-01-271-1/+3
| | | | | | | | | 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
* 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-281-0/+5
| | | | | | floating point comparisons, rather than hard-coding them as i32. llvm-svn: 92199
* Reapply 91904.Sanjiv Gupta2009-12-231-8/+31
| | | | llvm-svn: 91996
* Added missing patterns for subtract instruction.Sanjiv Gupta2009-12-231-22/+39
| | | | llvm-svn: 91995
* Reverting back 91904.Sanjiv Gupta2009-12-231-32/+8
| | | | llvm-svn: 91993
* While converting one of the operands to a memory operand, we need to check ↵Sanjiv Gupta2009-12-221-8/+32
| | | | | | 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
* Remove unused variable (noticed by clang++).Daniel Dunbar2009-12-191-1/+0
| | | | llvm-svn: 91780
* Add a bool flag to StackObjects telling whether they reference spillDavid Greene2009-11-121-1/+1
| | | | | | | | | | | | | slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
* Re-apply 84180 with the fixed test case.Sanjiv Gupta2009-10-151-0/+1
| | | | llvm-svn: 84195
* Revert "Complete Rewrite of AsmPrinter, TargetObjectFile based on newDaniel Dunbar2009-10-151-1/+0
| | | | | | PIC16Section class", it breaks globals.ll. llvm-svn: 84184
* Complete Rewrite of AsmPrinter, TargetObjectFile based on new PIC16Section classSanjiv Gupta2009-10-151-0/+1
| | | | | | derived from MCSection. llvm-svn: 84180
* Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic ↵Evan Cheng2009-09-191-2/+11
| | | | | | blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. llvm-svn: 82311
* Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that ↵Evan Cheng2009-09-181-1/+2
| | | | | | | | sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
* Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.Sandeep Patel2009-09-021-3/+3
| | | | llvm-svn: 80773
* Add comments detailing a known bug, so that people writing otherDan Gohman2009-08-261-0/+8
| | | | | | backends don't use it as an example. llvm-svn: 80105
* revert r79562 + r79563Chris Lattner2009-08-211-5/+1
| | | | llvm-svn: 79690
* Implement support for ISRs. Sanjiv Gupta2009-08-201-1/+5
| | | | | | | | | Clone functions that are shared between the Main thread and Interrupt thread. CallSites are changed in AsmPrinter currently. A better solution would have been to modify the legalizer (SoftenFloat) to allow targets to change the name of libcalls for float operations. But that currently breaks other targets. Also, cloing of automatic variables is done AsmPrinter, a better approach would be to use the ValueMap in CloneFunction itself. llvm-svn: 79562
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-3/+3
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-189/+189
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* Fixed more problems caused by 78142.Sanjiv Gupta2009-08-111-2/+4
| | | | | | Passing of indirect arguments starts after return value on the callee's frame. llvm-svn: 78635
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-101-199/+199
| | | | | | own struct type. llvm-svn: 78610
* Start moving TargetLowering away from using full MVTs and towards ↵Owen Anderson2009-08-101-1/+2
| | | | | | SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
* Fix a bug in the PIC16 backend.Dan Gohman2009-08-051-1/+1
| | | | llvm-svn: 78211
* Major calling convention code refactoring.Dan Gohman2009-08-051-162/+87
| | | | | | | | | | | | | | | | | | | Instead of awkwardly encoding calling-convention information with ISD::CALL, ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering provides three virtual functions for targets to override: LowerFormalArguments, LowerCall, and LowerRet, which replace the custom lowering done on the special nodes. They provide the same information, but in a more immediately usable format. This also reworks much of the target-independent tail call logic. The decision of whether or not to perform a tail call is now cleanly split between target-independent portions, and the target dependent portion in IsEligibleForTailCallOptimization. This also synchronizes all in-tree targets, to help enable future refactoring and feature work. llvm-svn: 78142
* Legalize i64 store operations generated by inst-combine.Sanjiv Gupta2009-08-041-2/+20
| | | | llvm-svn: 78082
OpenPOWER on IntegriCloud