summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/CellSPU/SPUISelDAGToDAG.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove the CellSPU port.Eric Christopher2012-11-141-1192/+0
| | | | | | Approved by Chris Lattner. llvm-svn: 167984
* Fix Doxygen issues:Dmitri Gribenko2012-09-141-15/+15
| | | | | | | | | | * wrap code blocks in \code ... \endcode; * refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph); * use \param instead of \arg to document parameters in order to be consistent with the rest of the codebase. llvm-svn: 163902
* Fix integer undefined behavior due to signed left shift overflow in LLVM.Richard Smith2012-08-241-7/+6
| | | | | | Reviewed offline by chandlerc. llvm-svn: 162623
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-12/+3
| | | | llvm-svn: 148578
* Remove some unnecessary includes of PseudoSourceValue.h.Jay Foad2011-11-151-1/+0
| | | | llvm-svn: 144631
* Added invariant field to the DAG.getLoad method and changed all calls.Pete Cooper2011-11-081-1/+1
| | | | | | 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
* Next round of MC refactoring. This patch factor MC table instantiations, MCEvan Cheng2011-07-141-1/+0
| | | | | | registeration and creation code into XXXMCDesc libraries. llvm-svn: 135184
* Allow load from constant on SPU.Kalle Raiskila2011-03-041-1/+6
| | | | | | A 'load <4 x i32>* null' crashes llc before this fix. llvm-svn: 126995
* Null initialize a few variables flagged byTed Kremenek2011-01-231-1/+1
| | | | | | | | | | clang's -Wuninitialized-experimental warning. While these don't look like real bugs, clang's -Wuninitialized-experimental analysis is stricter than GCC's, and these fixes have the benefit of being general nice cleanups. llvm-svn: 124073
* Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs ↵Anton Korobeynikov2011-01-101-6/+6
| | | | | | and fixes here and there. llvm-svn: 123170
* Various bits of framework needed for precise machine-level selectionAndrew Trick2010-12-241-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | DAG scheduling during isel. Most new functionality is currently guarded by -enable-sched-cycles and -enable-sched-hazard. Added InstrItineraryData::IssueWidth field, currently derived from ARM itineraries, but could be initialized differently on other targets. Added ScheduleHazardRecognizer::MaxLookAhead to indicate whether it is active, and if so how many cycles of state it holds. Added SchedulingPriorityQueue::HasReadyFilter to allowing gating entry into the scheduler's available queue. ScoreboardHazardRecognizer now accesses the ScheduleDAG in order to get information about it's SUnits, provides RecedeCycle for bottom-up scheduling, correctly computes scoreboard depth, tracks IssueCount, and considers potential stall cycles when checking for hazards. ScheduleDAGRRList now models machine cycles and hazards (under flags). It tracks MinAvailableCycle, drives the hazard recognizer and priority queue's ready filter, manages a new PendingQueue, properly accounts for stall cycles, etc. llvm-svn: 122541
* Dont' feed ILA two inputs - it takes just one.Kalle Raiskila2010-12-091-1/+1
| | | | llvm-svn: 121372
* Add missing i128 case.Kalle Raiskila2010-11-291-0/+3
| | | | llvm-svn: 120284
* Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.Wesley Peck2010-11-231-42/+42
| | | | llvm-svn: 119990
* Add the missing cases to the type->registerclass conversion function.Kalle Raiskila2010-10-071-0/+14
| | | | llvm-svn: 115921
* Zap some redundant 'ori $?, $?, 0' from SPU.Kalle Raiskila2010-10-011-65/+5
| | | | | | | Also remove some code that died in the process. One now non-existant ori is checked for. llvm-svn: 115306
* it's more elegant to put the "getConstantPool" andChris Lattner2010-09-211-1/+1
| | | | | | | | "getFixedStack" on the MachinePointerInfo class. While this isn't the problem I'm setting out to solve, it is the right way to eliminate PseudoSourceValue, so lets go with it. llvm-svn: 114406
* Change SPU register re-interpretations from OR to COPY_TO_REGCLASS instruction.Kalle Raiskila2010-09-161-14/+50
| | | | | | | | | | | | | This cleans up after the mess r108567 left in the CellSPU backend. ORCvt-instruction were used to reinterpret registers, and the ORs were then removed by isMoveInstr(). This patch now removes 350 instrucions of format: or $3, $3, $3 (from the 52 testcases in CodeGen/CellSPU). One case of a nonexistant or is checked for. Some moves of the form 'ori $., $., 0' and 'ai $., $., 0' still remain. llvm-svn: 114074
* zap dead code.Chris Lattner2010-09-041-7/+1
| | | | llvm-svn: 113073
* Zap dead code.Benjamin Kramer2010-09-031-7/+0
| | | | llvm-svn: 112955
* zap dead codeChris Lattner2010-08-251-34/+0
| | | | llvm-svn: 112073
* Make SPU backend handle insertelement and Kalle Raiskila2010-08-041-1/+2
| | | | | | store for "half vectors" llvm-svn: 110198
* Remove initialized but otherwise unused variables.Duncan Sands2010-06-291-1/+0
| | | | llvm-svn: 107127
* Handle loading from/storing to undef pointers on SPU by inserting a Kalle Raiskila2010-06-091-1/+3
| | | | | | random load/store, rather than crashing llc. llvm-svn: 105710
* Fix handling of 'load' nodes.Kalle Raiskila2010-06-011-8/+2
| | | | llvm-svn: 105269
* "on the rare occasion the SPU BE produces illegal assembly - it tries to ↵Chris Lattner2010-05-041-2/+10
| | | | | | | | emit an add instruction of the form 'a reg, reg, imm'." Patch by Kalle Raiskila! llvm-svn: 103021
* Use cast instead of dyn_cast when assuming success.Dan Gohman2010-04-171-6/+6
| | | | llvm-svn: 101636
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-5/+3
| | | | | | | | | | | | | 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
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-151-2/+2
| | | | llvm-svn: 101334
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-081-10/+4
| | | | | | readability. llvm-svn: 100756
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-071-6/+6
| | | | llvm-svn: 100709
* Make isInt?? and isUint?? template specializations of the generic versions. ThisBenjamin Kramer2010-03-291-2/+2
| | | | | | | makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. llvm-svn: 99838
* Remove a bunch of integer width predicate functions in favor of MathExtras.Benjamin Kramer2010-03-291-5/+5
| | | | | | | Most of these were unused, some of them were wrong and unused (isS16Constant<short>, isS10Constant<short>). llvm-svn: 99827
* Sink InstructionSelect() out of each target into SDISel, and rename itChris Lattner2010-03-021-14/+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
* reapply my cellspu changes with a fix to not break the old isel.Chris Lattner2010-02-231-42/+73
| | | | llvm-svn: 96885
* Revert 96854, 96852, and 96849, unbreaking test/CodeGen/CellSPU/i64ops.ll.Dan Gohman2010-02-231-71/+42
| | | | llvm-svn: 96871
* fix hte last cellspu failure.Chris Lattner2010-02-231-11/+12
| | | | llvm-svn: 96854
* hack around more crimes in instruction selection.Chris Lattner2010-02-231-16/+26
| | | | llvm-svn: 96852
* the cell backend is making all sorts of unsafe and incorrect assumptions Chris Lattner2010-02-231-26/+44
| | | | | | | about ownership and update policies. It isn't clear why it is doing all this lowering at isel time instead of in legalize. This fixes fcmp64.ll llvm-svn: 96849
* Remove an assumption of default arguments. This is in anticipation of aDavid Greene2010-02-151-1/+1
| | | | | | change to SelectionDAG build APIs. llvm-svn: 96232
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-051-86/+85
| | | | | | | | | 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
* Remove uninteresting and confusing debug output.Dan Gohman2009-11-051-2/+0
| | | | llvm-svn: 86149
* Rename getTargetNode to getMachineNode, for consistency with theDan Gohman2009-09-251-98/+99
| | | | | | | | naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. llvm-svn: 82790
* - Remove SelectSEXTi128 from SPUISelDAGToDAG.cpp, evidently, this is redundantScott Michel2009-08-241-59/+0
| | | | | | | | code, according to Anton (I'm not totally convinced, but we can always resurrect patches if we need to do so.) - Start moving CellSPU's tests to prefer FileCheck. llvm-svn: 79958
* 128-bit sign extension and vector shift cleanups, contributed by Ken WernerScott Michel2009-08-241-0/+59
| | | | | | (IBM). llvm-svn: 79949
* eliminate uses of cerr()Chris Lattner2009-08-231-3/+3
| | | | llvm-svn: 79834
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-6/+11
| | | | | | 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-86/+86
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
* Rename MVT to EVT, in preparation for splitting SimpleValueType out into its ↵Owen Anderson2009-08-101-119/+119
| | | | | | own struct type. llvm-svn: 78610
* Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsageDan Gohman2009-07-311-2/+2
| | | | | | | | shouldn't do AU.setPreservesCFG(), because even though CodeGen passes don't modify the LLVM IR CFG, they may modify the MachineFunction CFG, and passes like MachineLoop are registered with isCFGOnly set to true. llvm-svn: 77691
OpenPOWER on IntegriCloud