Skip to content
  • Jakob Stoklund Olesen's avatar
    Store (priority,regnum) pairs in the priority queue instead of providing an · e0df786c
    Jakob Stoklund Olesen authored
    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
    e0df786c
Loading