summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Added invariant field to the DAG.getLoad method and changed all calls.Pete Cooper2011-11-081-4/+4
| | | | | | When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses llvm-svn: 144100
* Remove the explicit request for "Latency" scheduling from MSP430,Dan Gohman2011-10-241-1/+0
| | | | | | as the Latency scheduler is going away. llvm-svn: 142811
* Add codegen support for vector select (in the IR this means a selectDuncan Sands2011-09-061-0/+1
| | | | | | | | | | | | with a vector condition); such selects become VSELECT codegen nodes. This patch also removes VSETCC codegen nodes, unifying them with SETCC nodes (codegen was actually often using SETCC for vector SETCC already). This ensures that various DAG combiner optimizations kick in for vector comparisons. Passes dragonegg bootstrap with no testsuite regressions (nightly testsuite as well as "make check-all"). Patch mostly by Nadav Rotem. llvm-svn: 139159
* land David Blaikie's patch to de-constify Type, with a few tweaks.Chris Lattner2011-07-181-3/+3
| | | | llvm-svn: 135375
* Add a parameter to CCState so that it can access the MachineFunction.Eric Christopher2011-06-081-8/+8
| | | | | | | | No functional change. Part of PR6965 llvm-svn: 132763
* Make the logic for determining function alignment more explicit. No ↵Eli Friedman2011-05-061-5/+3
| | | | | | functionality change. llvm-svn: 131012
* Fix a ton of comment typos found by codespell. Patch byChris Lattner2011-04-151-1/+1
| | | | | | Luis Felipe Strano Moraes! llvm-svn: 129558
* Allow targets to specify a the type of the RHS of a shift parameterized on ↵Owen Anderson2011-02-251-5/+1
| | | | | | the type of the LHS. llvm-svn: 126518
* rename MVT::Flag to MVT::Glue. "Flag" is a terrible name forChris Lattner2010-12-211-4/+4
| | | | | | | something that just glues two nodes together, even if it is sometimes used for flags. llvm-svn: 122310
* Inside the calling convention logic LocVT is always a simpleDuncan Sands2010-11-031-1/+1
| | | | | | | | | | value type, so there is no point in passing it around using an EVT. Use the simpler MVT everywhere. Rather than trying to propagate this information maximally in all the code that using the calling convention stuff, I chose to do a mainly low impact change instead. llvm-svn: 118167
* update a bunch of code to use the MachinePointerInfo version of getStore.Chris Lattner2010-09-211-2/+1
| | | | llvm-svn: 114461
* convert the targets off the non-MachinePointerInfo of getLoad.Chris Lattner2010-09-211-4/+5
| | | | llvm-svn: 114410
* Split the SDValue out of OutputArg so that SelectionDAG-independentDan Gohman2010-07-071-3/+6
| | | | | | 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-9/+16
| | | | | | | 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-16/+9
| | | | llvm-svn: 107668
* Fix a bunch of custom-inserter functions to handle the case whereDan Gohman2010-07-061-9/+16
| | | | | | the pseudo instruction is not at the end of the block. llvm-svn: 107655
* Remove isSS argument from CreateFixedObject. Fixed objects cannot be spill ↵Evan Cheng2010-07-031-2/+2
| | | | | | slots so it's always false. llvm-svn: 107550
* Implement @llvm.returnaddress. rdar://8015977.Evan Cheng2010-05-221-0/+4
| | | | llvm-svn: 104421
* Code refactoring: pull SchedPreference enum from TargetLowering.h to ↵Evan Cheng2010-05-191-1/+1
| | | | | | TargetMachine.h and put it in its own namespace. llvm-svn: 104147
* Implement indirect branches on MSP430Anton Korobeynikov2010-05-011-2/+11
| | | | llvm-svn: 102835
* Get rid of the EdgeMapping map. Instead, just check for BasicBlockDan Gohman2010-05-011-14/+3
| | | | | | changes before doing phi lowering for switches. llvm-svn: 102809
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-17/+25
| | | | | | | | | | | | | 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
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-071-3/+3
| | | | llvm-svn: 100709
* IT turns out that during jumpless setcc lowering eq and ne were swapped.Anton Korobeynikov2010-02-211-8/+5
| | | | | | This fixes PR6348 llvm-svn: 96734
* Move TLOF implementations to libCodegen to resolve layering violation.Anton Korobeynikov2010-02-151-1/+1
| | | | llvm-svn: 96288
* Remove an assumption of default arguments. This is in anticipation of aDavid Greene2010-02-151-5/+7
| | | | | | change to SelectionDAG build APIs. llvm-svn: 96234
* Uniformize the names of type predicates: rather than having isFloatTy andDuncan Sands2010-02-151-2/+2
| | | | | | isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96223
* 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
* zext / truncate is free on msp430. Inform codegen about this.Anton Korobeynikov2010-01-151-0/+25
| | | | llvm-svn: 93556
* Enable bit tests and setcc stuff.Anton Korobeynikov2010-01-151-4/+6
| | | | llvm-svn: 93552
* Add micro-optimization which allows us to fold imm into cmp. This allows us ↵Anton Korobeynikov2010-01-151-0/+32
| | | | | | to save 1 word (sometimes) and reduce register pressure. llvm-svn: 93551
* Fix cmp emission on msp430: we definitely should turn stuff likeAnton Korobeynikov2010-01-151-6/+6
| | | | | | "icmp lhs, rhs" into "cmp rhs, lhs". This should fix PR5979. llvm-svn: 93496
* Remove pseudo-MI in custom inserter.Anton Korobeynikov2010-01-141-0/+1
| | | | llvm-svn: 93467
* Implement variable-width shifts.Anton Korobeynikov2009-12-121-4/+136
| | | | | | No testcase yet - it seems we're exposing generic codegen bugs. llvm-svn: 91221
* Lower setcc branchless, if this is profitable.Anton Korobeynikov2009-12-111-2/+85
| | | | | | Based on the patch by Brian Lucas! llvm-svn: 91175
* Some pretty-printingAnton Korobeynikov2009-12-071-0/+1
| | | | llvm-svn: 90742
* Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from ↵Anton Korobeynikov2009-12-071-0/+54
| | | | | | x86 :) llvm-svn: 90740
* Initial codegen support for MSP430 ISRsAnton Korobeynikov2009-12-071-2/+21
| | | | llvm-svn: 90739
* Add ability to select hw multiplier mode and select appropriate libcalls.Anton Korobeynikov2009-12-071-0/+29
| | | | llvm-svn: 90737
* Minor optimization: when doing eq/ne comparions and RHS is a constant - swap ↵Anton Korobeynikov2009-11-221-0/+8
| | | | | | operands, this will allow us to fold imm into comparison. llvm-svn: 89574
* Use 2-byte alignment for functions. 4 bytes are clear overkill here.Anton Korobeynikov2009-11-221-1/+1
| | | | llvm-svn: 89572
* 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
* First try of the post-inc operands handling... Not fully worked, though :(Anton Korobeynikov2009-11-071-1/+1
| | | | llvm-svn: 86386
* Add some dummy support for post-incremented loadsAnton Korobeynikov2009-11-071-4/+44
| | | | llvm-svn: 86385
* Add 8 bit libcalls and make use of them for msp430Anton Korobeynikov2009-11-071-0/+11
| | | | llvm-svn: 86384
* Cosmetic changes, no functionality changesAnton Korobeynikov2009-10-211-14/+13
| | | | llvm-svn: 84773
* Revert 84315 for now. Re-thinking the patch.Evan Cheng2009-10-171-1/+1
| | | | llvm-svn: 84321
OpenPOWER on IntegriCloud