summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PIC16/PIC16ISelLowering.h
Commit message (Collapse)AuthorAgeFilesLines
* Per discussion with Sanjiv, remove the PIC16 target from mainline. When/ifChris Lattner2010-10-111-253/+0
| | | | | | | it comes back, it will be largely a rewrite, so keeping the old codebase in tree isn't helping anyone. llvm-svn: 116190
* Fix comment typos.Bob Wilson2010-08-261-1/+1
| | | | llvm-svn: 112202
* Teach bottom up pre-ra scheduler to track register pressure. Work in progress.Evan Cheng2010-07-211-0/+3
| | | | llvm-svn: 108991
* Split the SDValue out of OutputArg so that SelectionDAG-independentDan Gohman2010-07-071-0/+4
| | | | | | code can do calling-convention queries. This obviates OutputArgReg. llvm-svn: 107786
* Get rid of the EdgeMapping map. Instead, just check for BasicBlockDan Gohman2010-05-011-4/+3
| | | | | | changes before doing phi lowering for switches. llvm-svn: 102809
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-43/+39
| | | | | | | | | | | | | 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-18/+5
| | | | | | MachineFunctionInfo subclasses. llvm-svn: 101634
* 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/+1
| | | | | | | | | 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
* Allow targets to specify the return type of libcalls that are generated for ↵Sanjiv Gupta2009-12-281-0/+1
| | | | | | floating point comparisons, rather than hard-coding them as i32. llvm-svn: 92199
* Reapply 91904.Sanjiv Gupta2009-12-231-1/+9
| | | | llvm-svn: 91996
* Reverting back 91904.Sanjiv Gupta2009-12-231-9/+1
| | | | llvm-svn: 91993
* While converting one of the operands to a memory operand, we need to check ↵Sanjiv Gupta2009-12-221-1/+9
| | | | | | if it is Legal and does not result into a cyclic dep. llvm-svn: 91904
* 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
* revert r79562 + r79563Chris Lattner2009-08-211-1/+0
| | | | llvm-svn: 79690
* Implement support for ISRs. Sanjiv Gupta2009-08-201-0/+1
| | | | | | | | | 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
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-1/+1
| | | | | | | | 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-0/+1
| | | | | | 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-2/+2
| | | | | | own struct type. llvm-svn: 78610
* Start moving TargetLowering away from using full MVTs and towards ↵Owen Anderson2009-08-101-1/+1
| | | | | | SimpleValueType, which will simplify the privatization of IntegerType in the future. llvm-svn: 78584
* Major calling convention code refactoring.Dan Gohman2009-08-051-18/+38
| | | | | | | | | | | | | | | | | | | 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
* Generate a libcall for i8 multiply.Sanjiv Gupta2009-07-271-0/+1
| | | | llvm-svn: 77179
* Update comments to make it clear that the function alignment is the Log2 of theBill Wendling2009-07-011-1/+1
| | | | | | bytes and not bytes. llvm-svn: 74624
* Add an "alignment" field to the MachineFunction object. It makes more sense toBill Wendling2009-06-301-0/+5
| | | | | | | | | | have the alignment be calculated up front, and have the back-ends obey whatever alignment is decided upon. This allows for future work that would allow for precise no-op placement and the like. llvm-svn: 74564
* Untabification.Bill Wendling2009-05-301-1/+1
| | | | llvm-svn: 72604
* Fix more naming issues.Sanjiv Gupta2009-05-111-1/+1
| | | | | | | compiler libcalls start with .lib. now. fixed section names. llvm-svn: 71424
* Handle direct aggregate type arguments.Sanjiv Gupta2009-04-211-1/+6
| | | | llvm-svn: 69665
* Handle aggregate type arguments to direct and indirect calls.Sanjiv Gupta2009-04-141-0/+2
| | | | llvm-svn: 69022
* Added code to handle spilling and reloading of FSRs.Sanjiv Gupta2009-04-101-1/+1
| | | | llvm-svn: 68783
* Emit .line debug directives for stoppoints. The debug location is retrieved ↵Sanjiv Gupta2009-04-081-2/+0
| | | | | | by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes. llvm-svn: 68602
* Handle indirect function calls.Sanjiv Gupta2009-04-081-6/+36
| | | | | | | Every function has the address of its frame in the beginning of code section. The frame address is retrieved and used to pass arguments. llvm-svn: 68597
* Map stack based frameindices for spills to zero based indices that can be ↵Sanjiv Gupta2009-04-061-0/+16
| | | | | | accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc. llvm-svn: 68442
* To convert the StopPoint insn into an assembler directive by ISel, we need ↵Sanjiv Gupta2009-04-021-0/+2
| | | | | | to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize. llvm-svn: 68329
* Params are not being generated as static globals now. The caller passes them ↵Sanjiv Gupta2009-04-021-6/+10
| | | | | | onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots. llvm-svn: 68327
* Reformatting. Inserted code comments. Cleaned interfaces.Sanjiv Gupta2009-03-201-14/+0
| | | | | | Removed unncessary code. No functionality change. llvm-svn: 67371
* Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowingDan Gohman2009-02-071-1/+1
| | | | | | ScheduleDAG's TLI member to use const. llvm-svn: 64018
* Get rid of the last non-DebugLoc versions of getNode!Dale Johannesen2009-02-071-1/+1
| | | | | | | | | | | | Many targets build placeholder nodes for special operands, e.g. GlobalBaseReg on X86 and PPC for the PIC base. There's no sensible way to associate debug info with these. I've left them built with getNode calls with explicit DebugLoc::getUnknownLoc operands. I'm not too happy about this but don't see a good improvement; I considered adding a getPseudoOperand or something, but it seems to me that'll just make it harder to read. llvm-svn: 63992
* Get rid of 3 non-DebugLoc getNode variants.Dale Johannesen2009-02-051-2/+2
| | | | llvm-svn: 63808
* Make LowerCallTo and LowerArguments take a DebugLocDale Johannesen2009-01-301-1/+1
| | | | | | argument. Adjust all callers and overloaded versions. llvm-svn: 63444
* Cleanup whitespace and comments, and tweak someDuncan Sands2009-01-211-3/+3
| | | | | | | prototypes, in operand type legalization. No functionality change. llvm-svn: 62680
* Implement LowerOperationWrapper for legalizer. Sanjiv Gupta2009-01-211-15/+14
| | | | | | Also a few signed comparison fixes. llvm-svn: 62665
* Checking in conditionals, function call, arrays and libcalls implementation.Sanjiv Gupta2009-01-131-11/+75
| | | | llvm-svn: 62174
* Change the interface to the type legalization methodDuncan Sands2008-12-011-6/+11
| | | | | | | | | | | ReplaceNodeResults: rather than returning a node which must have the same number of results as the original node (which means mucking around with MERGE_VALUES, and which is also easy to get wrong since SelectionDAG folding may mean you don't get the node you expect), return the results in a vector. llvm-svn: 60348
* Emit declaration for globals and externs.Sanjiv Gupta2008-11-261-0/+1
| | | | | | Custom lower AND, OR, XOR bitwise operations. llvm-svn: 60098
* Added a more function PIC16 backend. However to get this working a patch inSanjiv Gupta2008-11-191-50/+73
| | | | | | ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted. llvm-svn: 59617
* Fix these enums' starting values to reflect the way thatDan Gohman2008-09-231-1/+1
| | | | | | instruction opcodes are now numbered. No functionality change. llvm-svn: 56497
* Rename SDOperand to SDValue.Dan Gohman2008-07-271-11/+11
| | | | llvm-svn: 54128
* Detabification. Fixed indentation and spacing.Sanjiv Gupta2008-05-141-10/+10
| | | | | | | Changed cout to DOUT, and TODOs to FIXMEs. Other changes as per coding conventions. llvm-svn: 51105
OpenPOWER on IntegriCloud