summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Mips/MipsISelLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.Torok Edwin2009-07-141-7/+7
| | | | | | | | | This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). llvm-svn: 75640
* As Chris pointed out, this doesn't actually need an LLVMContext to operate.Owen Anderson2009-07-131-1/+1
| | | | llvm-svn: 75508
* Begin the painful process of tearing apart the rat'ss nest that is ↵Owen Anderson2009-07-131-1/+1
| | | | | | | | | Constants.cpp and ConstantFold.cpp. This involves temporarily hard wiring some parts to use the global context. This isn't ideal, but it's the only way I could figure out to make this process vaguely incremental. llvm-svn: 75445
* assert(0) -> LLVM_UNREACHABLE.Torok Edwin2009-07-111-7/+8
| | | | | | | | | Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. llvm-svn: 75379
* Thread LLVMContext through MVT and related parts of SDISel.Owen Anderson2009-07-091-4/+5
| | | | llvm-svn: 75153
* 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-1/+4
| | | | | | | | | | 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
* Misc accumulated tweaks to legalization logic for various targets.Eli Friedman2009-06-161-0/+2
| | | | llvm-svn: 73476
* Convert Alpha and Mips to use a MachineFunctionInfo subclass toDan Gohman2009-06-031-3/+0
| | | | | | | | | | carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This eliminates the need for them to search through the MachineRegisterInfo livein list in order to identify these virtual registers. EmitLiveInCopies is now the only user of the virtual register portion of MachineRegisterInfo's livein data. llvm-svn: 72802
* Added support for fround, fextend and FP_TO_SINTBruno Cardoso Lopes2009-05-271-0/+37
| | | | llvm-svn: 72483
* Rename PaddedSize to AllocSize, in the hope that thisDuncan Sands2009-05-091-2/+2
| | | | | | | will make it more obvious what it represents, and stop it being confused with the StoreSize. llvm-svn: 71349
* Remove the obsolete SelectionDAG::getNodeValueTypes and simplifyDan Gohman2009-04-091-5/+5
| | | | | | code that uses it by using SelectionDAG::getVTList instead. llvm-svn: 68744
* fix an apparently real bug exposed by a warning in -asserts mode.Chris Lattner2009-03-261-3/+4
| | | | llvm-svn: 67737
* Removed AFGR32 register classBruno Cardoso Lopes2009-03-211-20/+9
| | | | | | Handle odd registers allocation in FGR32. llvm-svn: 67422
* Added support for Mips O32 Calling ConventionBruno Cardoso Lopes2009-03-191-20/+129
| | | | llvm-svn: 67280
* Remove non-DebugLoc versions of BuildMI from IA64, Mips.Dale Johannesen2009-02-131-3/+4
| | | | llvm-svn: 64438
* Constify TargetInstrInfo::EmitInstrWithCustomInserter, allowingDan Gohman2009-02-071-2/+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-2/+2
| | | | | | | | | | | | 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
* Remove more non-DebugLoc versions of getNode.Dale Johannesen2009-02-061-13/+21
| | | | llvm-svn: 63969
* Remove non-DebugLoc forms of CopyToReg and CopyFromReg.Dale Johannesen2009-02-041-9/+12
| | | | | | Adjust callers. llvm-svn: 63789
* Remove non-DebugLoc versions of getLoad and getStore.Dale Johannesen2009-02-041-31/+37
| | | | | | Adjust the many callers of those versions. llvm-svn: 63767
* Fix a typoNate Begeman2009-01-261-3/+2
| | | | llvm-svn: 62989
* Add the private linkage.Rafael Espindola2009-01-151-2/+2
| | | | llvm-svn: 62279
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-121-2/+2
| | | | | | suggested by Chris. llvm-svn: 62099
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-011-1/+1
| | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). llvm-svn: 61542
* There are no longer any places that require aDuncan Sands2008-12-011-4/+4
| | | | | | | | MERGE_VALUES node with only one operand, so get rid of special code that only existed to handle that possibility. llvm-svn: 60349
* Rename SetCCResultContents to BooleanContents. InDuncan Sands2008-11-231-1/+1
| | | | | | | practice these booleans are mostly produced by SetCC, however the concept is more general. llvm-svn: 59911
* Teach DAGCombine to fold constant offsets into GlobalAddress nodes,Dan Gohman2008-10-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. llvm-svn: 57748
* Trim #includes.Dan Gohman2008-10-161-3/+0
| | | | llvm-svn: 57649
* Rename LoadX to LoadExt.Evan Cheng2008-10-141-3/+3
| | | | llvm-svn: 57526
* Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's asChris Lattner2008-10-111-6/+3
| | | | | | | parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. llvm-svn: 57385
* Reverting r56249. On further investigation, this functionality isn't needed.Bill Wendling2008-09-161-6/+6
| | | | | | Apologies for the thrashing. llvm-svn: 56251
* - Change "ExternalSymbolSDNode" to "SymbolSDNode".Bill Wendling2008-09-161-6/+6
| | | | | | | | | | - Add linkage to SymbolSDNode (default to external). - Change ISD::ExternalSymbol to ISD::Symbol. - Change ISD::TargetExternalSymbol to ISD::TargetSymbol These changes pave the way to allowing SymbolSDNodes with non-external linkage. llvm-svn: 56249
* Define CallSDNode, an SDNode subclass for use with ISD::CALL.Dan Gohman2008-09-131-10/+10
| | | | | | | | | | | | | Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. llvm-svn: 56183
* Rename ConstantSDNode::getValue to getZExtValue, for consistencyDan Gohman2008-09-121-4/+6
| | | | | | | with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
* erect abstraction boundaries for accessing SDValue members, rename Val -> ↵Gabor Greif2008-08-281-9/+9
| | | | | | Node to reflect semantics llvm-svn: 55504
* disallow direct access to SDValue::ResNo, provide a getter insteadGabor Greif2008-08-261-2/+2
| | | | llvm-svn: 55394
* Removed SELECT_CC custom lowering. This is not needed anymore, the SELECT nodeBruno Cardoso Lopes2008-08-131-22/+14
| | | | | | | | | | | | | | | | is lowered properly and covers everything LowerSELECT_CC did. Added method printUnsignedImm in AsmPrinter to print uimm16 operands. This avoid the ugly instruction by instruction checking in printOperand. Added a swap instruction present in the allegrex core. Added two conditional instructions present in the allegrex core : MOVZ and MOVN. They both allow a more efficient SELECT operation for integers. Also added SELECT patterns to optimize MOVZ and MOVN usage. The brcond and setcc patterns were cleaned: redundant and suboptimal patterns were removed. The suboptimals were replaced by more efficient ones. Fixed some instructions that were using immZExt16 instead of immSExt16. llvm-svn: 54724
* Support added for ctlz intrinsic, test case added.Bruno Cardoso Lopes2008-08-081-1/+3
| | | | llvm-svn: 54516
* Added Mips support for DYNAMIC_STACKALLOCBruno Cardoso Lopes2008-08-071-23/+48
| | | | | | | | | Fixed bug in adjustMipsStackFrame, which was breaking while trying to access a dead stack object index. Also added one more alignment before fixing the callee saved registers stack offset adjustment. llvm-svn: 54485
* Mips ISelLowering cleanup : Removed old LowerCALL and FORMAL_ARGS helpers, theyBruno Cardoso Lopes2008-08-041-38/+9
| | | | | | | aren't used anyway, they also used to broke compiling when fastcc was specified for a function, but not anymore. llvm-svn: 54316
* Handle i32->f32 bitconvert results.Bruno Cardoso Lopes2008-08-041-1/+1
| | | | llvm-svn: 54315
* Apply the same pattern used in 'and' lowering for 'or'Bruno Cardoso Lopes2008-08-021-7/+9
| | | | llvm-svn: 54273
* Expand fcopysignBruno Cardoso Lopes2008-07-311-0/+1
| | | | llvm-svn: 54250
* Handle more SELECT corner cases considering legalize types, probabily wont ↵Bruno Cardoso Lopes2008-07-311-27/+43
| | | | | | | | work with the default legalizer. llvm-svn: 54249
* Added pattern for floating point zero immediate (avoiding a constant poolBruno Cardoso Lopes2008-07-301-0/+3
| | | | | | | | access). Added pattern to match bitconvert node. Fixed MTC1 asm string bug. llvm-svn: 54229
* Fixed bug in global address lowering for functions and in Brcond loweringBruno Cardoso Lopes2008-07-301-6/+7
| | | | llvm-svn: 54215
* Changed some methods order.Bruno Cardoso Lopes2008-07-291-45/+46
| | | | llvm-svn: 54169
* Added floating point lowering for select.Bruno Cardoso Lopes2008-07-291-79/+136
| | | | llvm-svn: 54167
* Disable gp_rel relocation for constant pools access for now.Bruno Cardoso Lopes2008-07-281-7/+11
| | | | llvm-svn: 54142
OpenPOWER on IntegriCloud