llvm-6502/lib
Jakob Stoklund Olesen d0bec3e62c 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121294 91177308-0d34-0410-b5e6-96231b3b80d8
2010-12-08 22:22:41 +00:00
..
Analysis Use type's file info while describing inheritance relationship. 2010-12-08 21:46:37 +00:00
Archive
AsmParser PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and 2010-12-07 08:25:19 +00:00
Bitcode
CodeGen Store (priority,regnum) pairs in the priority queue instead of providing an 2010-12-08 22:22:41 +00:00
CompilerDriver
ExecutionEngine Remove unneeded zero arrays. 2010-12-04 15:28:22 +00:00
Linker
MC Add support for loading from a constant pool. 2010-12-08 01:57:09 +00:00
Object
Support Support: Remove Alarm. It is unused (via local grep and google code search). 2010-12-07 18:41:59 +00:00
Target Simplify T2 operand assignment notation a bit. No need to specify a bit range 2010-12-08 22:10:43 +00:00
Transforms Remove some dead code from the jump threading pass. 2010-12-07 13:08:07 +00:00
VMCore Remove the code from Function::dropAllReferences which replaced 2010-12-07 19:56:51 +00:00
Makefile