Method and apparatus for performing register allocation

US9841975B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9841975-B2
Application numberUS-201314917962-A
CountryUS
Kind codeB2
Filing dateSep 18, 2013
Priority dateSep 18, 2013
Publication dateDec 12, 2017
Grant dateDec 12, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method is provided of performing register allocation for at least one program code module. The method includes constructing a restriction graph for program variables within at least one program instruction, and determining whether the constructed restriction graph is colorable. If it is determined that the constructed restriction graph is not colorable, then the method determines whether at least one alternative form of the at least one program instruction is available, and modifies the at least one program instruction to comprise an alternative form if it is determined that at least one alternative form is available.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method executed by software instructions on a hardware processor of performing register allocation for at least one program code module, the method comprising: constructing a restriction graph for program variables within at least one program instruction; and performing at least a partial colourability check of the constructed restriction graph; wherein the method further comprises, if it is determined that the constructed restriction graph is not colourable: determining whether at least one alternative form of the at least one program instruction is available; determining that such a restriction graph updated to take into account the alternative form of the at least one program instruction is not colourable; determining whether at least one further alternative form of the at least one program instruction is available; determining whether a restriction graph updated to take into account the further alternative form of the at least one program instruction is colourable; and progressively updating the constructed restriction graph in accordance with alternative forms of the at least one program instruction until a colourable restriction graph is achievable. 2. The method of claim 1 , wherein the method comprises, if it is determined that the constructed restriction graph is not colourable: identifying a set of instructions comprising at least one program instruction comprising program variables connected to an edge of the constructed restriction graph to be broken; determining whether at least one alternative form of at least one program instruction within the identified set of instructions is available; and modifying at least one program instruction within the identified set of instructions to comprise an alternative form if it is determined that at least one alternative form of at least one program instruction within the identified set of instructions is available. 3. The method of claim 1 , wherein the method further comprises, if it is determined that at least one alternative form is available: determining whether a restriction graph updated to take into account the alternative form of the at least one program instruction is colourable; and modifying the at least one program instruction to comprise the alternative form, if it is determined that such an updated restriction graph is colourable. 4. The method of claim 1 , wherein the method further comprises, if a colourable restriction graph is not achievable following progressively updating the restriction graph in accordance with all available alternative forms of the program instructions comprising variables within the restriction graph: progressively reverting back to previous configurations of program instruction forms until an alternative form of at least one program instruction comprising variables within the restriction graph that produces a new configuration of program instruction forms is available; determining whether a restriction graph updated to take into account the alternative form of the at least one program instruction that produces a new configuration of program instruction forms is colourable; and modifying the program instructions comprising variables within the restriction graph to comprise the new configuration of program instruction forms, if it is determined that such an updated restriction graph is colourable. 5. The method of claim 1 , wherein the method comprises adding transfer instructions to the at least one program code module to achieve a colourable restriction graph if no alternative form of a program instruction comprising variables within the restriction graph that produces a new configuration of program instruction forms becomes available when progressively reverting back to previous configurations of program instruction forms. 6. The method of claim 1 , wherein the at least partial colourability check is performed at least with respect to restrictions imposed by restricted operands associated with the constructed restriction graph. 7. A computer system comprising a hardware processor and at least one signal processing module arranged to perform register allocation, the at least one signal processing module being arranged to: construct a restriction graph for program variables within at least one program instruction; and determine whether the constructed restriction graph is colourable; wherein at least one signal processing module is further arranged to, if it is determined that the constructed restriction graph is not colourable: determine whether at least one alternative form of the at least one program instruction is available; determine that such a restriction graph updated to take into account the alternative form of the at least one program instruction is not colourable; and determine whether at least one further alternative form of the at least one program instruction is available; determine whether a restriction graph updated to take into account the further alternative form of the at least one program instruction is colourable; and progressively update the constructed restriction graph in accordance with alternative forms of the at least one program instruction until a colourable restriction graph is achievable. 8. A non-transitory computer program product having executable program code stored therein for performing register allocation, the program code operable for: constructing a restriction graph for program variables within at least one program instruction; and determining whether the constructed restriction graph is colourable; wherein the program code is further operable for, if it is determined that the constructed restriction graph is not colourable: determining whether at least one alternative form of the at least one program instruction is available; determining that such a restriction graph updated to take into account the alternative form of the at least one program instruction is not colourable; determining whether at least one further alternative form of the at least one program instruction is available; determining whether a restriction graph updated to take into account the further alternative form of the at least one program instruction is colourable; and progressively updating the constructed restriction graph in accordance with alternative forms of the at least one program instruction until a colourable restriction graph is achievable. 9. The non-transitory computer program product of claim 8 , wherein the non-transitory computer program product comprises at least one from a group including: a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a Read Only Memory, ROM, a Programmable Read Only Memory, PROM, an Erasable Programmable Read Only Memory, EPROM, an Electrically Erasable Programmable Read Only Memory, EEPROM, and a Flash memory.

Assignees

Inventors

Classifications

  • considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title

  • Target code generation · CPC title

  • Instruction analysis, e.g. decoding, instruction word fields · CPC title

  • Register arrangements · CPC title

  • Circuit design · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9841975B2 cover?
A method is provided of performing register allocation for at least one program code module. The method includes constructing a restriction graph for program variables within at least one program instruction, and determining whether the constructed restriction graph is colorable. If it is determined that the constructed restriction graph is not colorable, then the method determines whether at l…
Who is the assignee on this patent?
Nicolescu Andreea Florina, Palalau Rene Catalin, Nxp Usa Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/30098. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 12 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).