×

System for local context spilling for graph coloring register allocators

  • US 6,090,156 A
  • Filed: 05/15/1998
  • Issued: 07/18/2000
  • Est. Priority Date: 05/22/1997
  • Status: Expired due to Fees
First Claim
Patent Images

1. A register allocation procedure for a compiler for converting a high level source code program into a machine executable program, the compiler includes an optimizer for translating the high level source code into an intermediate language wherein storage requirements for the program are specified as a plurality of symbolic registers, said register allocation procedure comprising the steps of:

  • (a) generating an interference graph for said program;

    (b) reducing said interference graph via application of graph reduction techniques and selecting symbolic registers for spilling;

    (c) allocating machine registers to said program via graph colouring techniques without spilling; and

    (d) after a single iteration of steps (a) through (c), applying local context spilling to allocate machine registers to said symbolic registers selected for spilling that were not allocated using said graph colouring techniques, wherein said local context spilling comprises determining one or more free machine registers in a section of said intermediate language program, and allocating said free machine registers to the symbolic registers in said program, and when it is determined that the section does not have a free machine register, selecting a machine register for spilling and generating spill code for instructing said program to spill said selected machine register.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×