summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Use std::copy instead of a loop.Dan Gohman2008-06-231-3/+1
| | | | llvm-svn: 52628
* More changes from Chris' review: simplify getIndices and avoidDan Gohman2008-06-231-8/+6
| | | | | | copying its return value. llvm-svn: 52627
* Duncan pointed out this code could be tidied.Dan Gohman2008-06-231-6/+3
| | | | llvm-svn: 52624
* Port some integer multiplication fixes from LegalizeDAG.Duncan Sands2008-06-231-8/+24
| | | | | | | Bail out with an error if there is no libcall available for the given size of integer. llvm-svn: 52622
* Support for expanding the result of EXTRACT_ELEMENT.Duncan Sands2008-06-234-7/+24
| | | | llvm-svn: 52621
* Cleanup up LegalizeTypes handling of loads andDuncan Sands2008-06-235-24/+22
| | | | | | stores. llvm-svn: 52620
* At Chris' suggestion, move the liveness and worklist datastructures intoOwen Anderson2008-06-231-7/+11
| | | | | | | instance variables so they can be allocated just once, and reuse the worklist as the dead list as well. llvm-svn: 52618
* Improve LSR's dead-phi detection to handle use-def cyclesDan Gohman2008-06-221-20/+17
| | | | | | with more than two nodes. llvm-svn: 52617
* Use Loop::block_iterator.Dan Gohman2008-06-224-16/+21
| | | | llvm-svn: 52616
* Generalize createSCEV to be able to form SCEV expressions fromDan Gohman2008-06-221-110/+117
| | | | | | ConstantExprs. llvm-svn: 52615
* Use SCEVAddRecExpr::isAffine.Dan Gohman2008-06-221-2/+2
| | | | llvm-svn: 52614
* Remove unnecessary #includes.Dan Gohman2008-06-224-4/+0
| | | | llvm-svn: 52613
* Move a few more SCEVExpander methods out-of-line.Dan Gohman2008-06-221-0/+21
| | | | llvm-svn: 52612
* Fix PR2369 by making scalarrepl more careful about promoting Chris Lattner2008-06-221-5/+14
| | | | | | | | | structures. Its default threshold is to promote things that are smaller than 128 bytes, which is sane. However, it is not sane to do this for things that turn into 128 *registers*. Add a cap on the number of registers introduced, defaulting to 128/4=32. llvm-svn: 52611
* Make custom lowering of ADD work correctly. ThisDuncan Sands2008-06-221-3/+3
| | | | | | | | | | fixes PR2476; patch by Richard Osborne. The same problem exists for a bunch of other operators, but I'm ignoring this because they will be automagically fixed when the new LegalizeTypes infrastructure lands, since it already solves this problem centrally. llvm-svn: 52610
* Fix for PR2479: correctly optimize expressions like (a > 13) & (a == Eli Friedman2008-06-211-2/+1
| | | | | | | | 15). See also PR1800, which is about the signed case. llvm-svn: 52608
* Use Instruction::eraseFromParent().Dan Gohman2008-06-217-13/+13
| | | | llvm-svn: 52606
* Use Function's arg_size() and size() methods.Dan Gohman2008-06-211-2/+2
| | | | llvm-svn: 52605
* Simplify some getNode calls.Dan Gohman2008-06-211-6/+3
| | | | llvm-svn: 52604
* canClobberPhysRegDefs shouldn't called without checking hasPhysRegDefs;Dan Gohman2008-06-211-3/+2
| | | | | | check this with an assert. llvm-svn: 52603
* Avoid creating a redundant zero APInt.Dan Gohman2008-06-211-1/+1
| | | | llvm-svn: 52602
* Use clear() to zero an existing APInt.Dan Gohman2008-06-211-1/+1
| | | | llvm-svn: 52601
* Use back() instead of [size()-1].Dan Gohman2008-06-212-3/+3
| | | | llvm-svn: 52600
* Use MachineBasicBlock::transferSuccessors.Dan Gohman2008-06-213-21/+7
| | | | llvm-svn: 52594
* Use static_cast instead of reinterpret_cast for casting void*.Dan Gohman2008-06-212-5/+5
| | | | llvm-svn: 52592
* Fix warning when assertions disabled.Chris Lattner2008-06-211-1/+1
| | | | llvm-svn: 52590
* fix warning when assertions disabled.Chris Lattner2008-06-211-2/+1
| | | | llvm-svn: 52589
* fix warning when assertion disabled.Chris Lattner2008-06-211-1/+1
| | | | llvm-svn: 52588
* fix some warnings when assertions are disabled.Chris Lattner2008-06-213-5/+5
| | | | llvm-svn: 52587
* Remove a redundant return.Dan Gohman2008-06-211-2/+0
| | | | llvm-svn: 52585
* Remove ScheduleDAG's SUnitMap altogether. Instead, use SDNode's NodeIdDan Gohman2008-06-214-50/+38
| | | | | | | field, which is otherwise unused after instruction selection, as an index into the SUnit array. llvm-svn: 52583
* Add a priority queue class, which is a wrapper around std::priority_queueDan Gohman2008-06-212-11/+8
| | | | | | | and provides fairly efficient removal of arbitrary elements. Switch ScheduleDAGRRList from std::set to this new priority queue. llvm-svn: 52582
* Support for load/store of expanded float types. IDuncan Sands2008-06-213-1/+65
| | | | | | | don't know if a truncating store is possible here, but added support for it anyway. llvm-svn: 52577
* Change ScheduleDAG's SUnitMap from DenseMap<SDNode*, vector<SUnit*> >Dan Gohman2008-06-214-34/+46
| | | | | | | | to DenseMap<SDNode*, SUnit*>, and adjust the way cloned SUnit nodes are handled so that only the original node needs to be in the map. This speeds up llc on 447.dealII.llvm.bc by about 2%. llvm-svn: 52576
* Enable PRE.Evan Cheng2008-06-211-1/+1
| | | | llvm-svn: 52574
* Undo spill weight tweak. Need to investigate the performance regressions.Evan Cheng2008-06-212-10/+5
| | | | llvm-svn: 52572
* Simplify some template parameterization.Dan Gohman2008-06-211-19/+12
| | | | llvm-svn: 52571
* Back out Matthijs' DAE patches. It's miscompiling gcc driver.Evan Cheng2008-06-211-518/+367
| | | | llvm-svn: 52570
* Enhanced heuristic to determine the *best* register to spill. Instead of ↵Evan Cheng2008-06-201-66/+176
| | | | | | | | picking the register with the lowest spill weight. Consider (up to) 2 additional registers with spill weights that are close to the lowest spill weight. The one with fewest defs and uses that conflicts with the current interval (weighted by loop depth) is the spill candidate. This is not always a win, but there are much more wins than loses and wins tend to be more noticeable. llvm-svn: 52554
* Share some code that is common between integer andDuncan Sands2008-06-206-412/+560
| | | | | | float expansion (and sometimes vector splitting too). llvm-svn: 52548
* Rename the operation of turning a float type into anDuncan Sands2008-06-205-77/+76
| | | | | | | | | integer of the same type. Before it was "promotion", but this is confusing because it is quite different to promotion of integers. Call it "softening" instead, inspired by "soft float". llvm-svn: 52546
* Clean up some uses of std::distance, now that we have allnodes_size.Dan Gohman2008-06-202-4/+3
| | | | llvm-svn: 52545
* Clean up a use of std::distance.Dan Gohman2008-06-201-2/+1
| | | | llvm-svn: 52544
* Tidy up some commments and use the getAggregateOperand andDan Gohman2008-06-201-9/+9
| | | | | | getInsertedValueOperand accessors. Thanks Matthijs! llvm-svn: 52543
* Fix the conditions under which SCCP should examine insertvalueDan Gohman2008-06-201-1/+18
| | | | | | instructions. Thanks to Matthijs Kooijman for pointing this out! llvm-svn: 52542
* 80 column and trailing whitespace fixes.Matthijs Kooijman2008-06-201-49/+72
| | | | llvm-svn: 52539
* Don't let DeadArgumentElimination attempt to update callers when the returnMatthijs Kooijman2008-06-201-9/+12
| | | | | | type wasn't changed. llvm-svn: 52538
* Don't let DeadArgElimination change the return type ({} into void and {T}Matthijs Kooijman2008-06-201-7/+13
| | | | | | into T) when no return values are actually dead. llvm-svn: 52537
* Explicitely track if any arguments or return values were removed inMatthijs Kooijman2008-06-201-1/+10
| | | | | | | | DeadArgumentElimination and assert that the function type does not change if nothing was changed. This should catch subtle changes in function type that are not intended. llvm-svn: 52536
* Remove debug output.Matthijs Kooijman2008-06-201-4/+0
| | | | llvm-svn: 52535
OpenPOWER on IntegriCloud