summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Recommit r52459, rewriting of the dead argument elimination pass.Matthijs Kooijman2008-06-201-369/+483
| | | | | | | | | | | | This is a fixed version that no longer uses multimap::equal_range, which resulted in a pointer invalidation problem. Also, DAE::InspectedFunctions was not really necessary, so it got removed. Lastly, this version no longer applies the extra arg hack on functions who did not have any arguments to start with. llvm-svn: 52532
* Really disable PRE.Owen Anderson2008-06-201-1/+1
| | | | llvm-svn: 52531
* Fix an error handling redefinition of linkonce functions where theChris Lattner2008-06-201-18/+14
| | | | | | types differ. Patch by Nathan Keynes! llvm-svn: 52527
* Fix PR2471, which is a bug involving an invalid promotion from a conditional ↵Chris Lattner2008-06-201-1/+7
| | | | | | load. llvm-svn: 52525
* Add C binding for ExecutionEngine::addGlobalMapping.Gordon Henriksen2008-06-201-0/+5
| | | | llvm-svn: 52523
* Teach ReturnInst lowering about aggregate return values.Dan Gohman2008-06-201-22/+28
| | | | llvm-svn: 52522
* Change around the data structures used to store availability sets, resulting ↵Owen Anderson2008-06-201-26/+64
| | | | | | in a GVN+PRE that is faster that GVN alone was before. llvm-svn: 52521
* Teach SCCP about insertvalue and extractvalue, and aboutDan Gohman2008-06-201-13/+107
| | | | | | | propagating constants across aggregate return values when insertvalue and extractvalue are used. llvm-svn: 52520
* Teach InlineFunction how to differentiate between multiple-valueDan Gohman2008-06-201-2/+10
| | | | | | | return statements and aggregate returns so that it handles both correctly. llvm-svn: 52519
* Disable PRE for now. It seems to be breaking llvm-gcc bootstrapping.Evan Cheng2008-06-201-2/+2
| | | | llvm-svn: 52518
* Fix the index calculations for the extractvalue lowering code.Dan Gohman2008-06-201-2/+2
| | | | llvm-svn: 52517
* Simplify the ComputeLinearIndex logic and fix a few bugs.Dan Gohman2008-06-201-16/+10
| | | | llvm-svn: 52516
* Simplify this code. Thanks Chris!Dan Gohman2008-06-201-3/+2
| | | | llvm-svn: 52514
OpenPOWER on IntegriCloud