Go to file
Jakob Stoklund Olesen e0df786c98 Store (priority,regnum) pairs in the priority queue instead of providing an
abstract priority queue interface in subclasses that want to override the
priority calculations.

Subclasses must provide a getPriority() implementation instead.

This approach requires less code as long as priorities are expressable as simple
floats, and it avoids the dangers of defining potentially expensive priority
comparison functions.

It also should speed up priority_queue operations since they no longer have to
chase pointers when comparing registers. This is not measurable, though.

Preferably, we shouldn't use floats to guide code generation. The use of floats
here is derived from the use of floats for spill weights. Spill weights have a
dynamic range that doesn't lend itself easily to a fixpoint implementation.

When someone invents a stable spill weight representation, it can be reused for
allocation priorities.

llvm-svn: 121294
2010-12-08 22:22:41 +00:00
clang Put the "'typename' occurs outside of a template" and "'template' 2010-12-08 22:02:28 +00:00
compiler-rt license change 2010-11-16 22:13:33 +00:00
debuginfo-tests Zap white spaces, test commit email. 2010-11-10 18:11:11 +00:00
libcxx N3158 Missing preconditions for default-constructed match_result objects 2010-12-08 21:07:55 +00:00
lldb Fixed an issue in our source manager where we were permanently caching source 2010-12-08 20:16:12 +00:00
llvm Store (priority,regnum) pairs in the priority queue instead of providing an 2010-12-08 22:22:41 +00:00