Commits

Show all
Author Commit Message Labels Comments Date
Evan Cheng
Enhanced heuristic to determine the *best* register to spill. Instead of 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.
Tags
4 tags
Chris Lattner
integer types are not primitive, they are derived.
Owen Anderson
llvmc doesn't exist anymore, and llvmc2 doesn't have a special license file.
Owen Anderson
Remove empty directory.
Duncan Sands
Share some code that is common between integer and float expansion (and sometimes vector splitting too).
Duncan Sands
Add some methods for querying the nature of a store, like the methods for loads (and neaten those up a bit while there).
Duncan Sands
Rename the operation of turning a float type into an 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".
Dan Gohman
Clean up some uses of std::distance, now that we have allnodes_size.
Dan Gohman
Clean up a use of std::distance.
Dan Gohman
Tidy up some commments and use the getAggregateOperand and getInsertedValueOperand accessors. Thanks Matthijs!
Dan Gohman
Fix the conditions under which SCCP should examine insertvalue instructions. Thanks to Matthijs Kooijman for pointing this out!
Dan Gohman
Add an allnodes_size method.
matthijs
Add testcase that checks that DeadArgElim doesn't touch stuff it shouldn't touch.
matthijs
80 column and trailing whitespace fixes.
matthijs
Don't let DeadArgumentElimination attempt to update callers when the return type wasn't changed.
matthijs
Don't let DeadArgElimination change the return type ({} into void and {T} into T) when no return values are actually dead.
matthijs
Explicitely track if any arguments or return values were removed in 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.
matthijs
Remove debug output.
matthijs
Recommit r52459, rewriting of the dead argument elimination pass. 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.
Owen Anderson
Really disable PRE.
Chris Lattner
"Just a small update for the project files for adding a missing preprocessor definition for VS2005 (without SP1). It suppress the (bogus) M$ deprecated warning." Patch by Cédric Venet!
Chris Lattner
Fix a warning, closing PR2452
Chris Lattner
Fix a warning.
Chris Lattner
Fix an error handling redefinition of linkonce functions where the types differ. Patch by Nathan Keynes!
Chris Lattner
fix a warning.
Chris Lattner
Fix PR2471, which is a bug involving an invalid promotion from a conditional load.
Chris Lattner
Fix typo, fix suggested by Nicholas Olsen
Gordon Henriksen
Add C binding for ExecutionEngine::addGlobalMapping.
Dan Gohman
Teach ReturnInst lowering about aggregate return values.
Owen Anderson
Change around the data structures used to store availability sets, resulting in a GVN+PRE that is faster that GVN alone was before.
  1. Prev
  2. Next