Skip to content
  • Jakob Stoklund Olesen's avatar
    Mostly rewrite RegAllocFast. · f1b3029a
    Jakob Stoklund Olesen authored
    Sorry for the big change. The path leading up to this patch had some TableGen
    changes that I didn't want to commit before I knew they were useful. They
    weren't, and this version does not need them.
    
    The fast register allocator now does no liveness calculations. Instead it relies
    on kill flags provided by isel. (Currently those kill flags are also ignored due
    to isel bugs). The allocation algorithm is supposed to work with any subset of
    valid kill flags. More kill flags simply means fewer spills inserted.
    
    Registers are allocated from a working set that contains no aliases. That means
    most allocations can be done directly without expensive alias checks. When the
    working set runs out of registers we do the full alias check to find new free
    registers.
    
    llvm-svn: 103488
    f1b3029a
Loading