Methods and apparatus to compile code to generate data flow code

US10402176B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10402176-B2
Application numberUS-201715855964-A
CountryUS
Kind codeB2
Filing dateDec 27, 2017
Priority dateDec 27, 2017
Publication dateSep 3, 2019
Grant dateSep 3, 2019

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.

Methods, apparatus, systems and articles of manufacture to compiler compile code to generate dataflow code are described. An example compiler apparatus includes an intermediate representation transformer to transform input software code to intermediate representation code; an instruction selector to insert machine instructions of a target execution platform in the intermediate representation code to generate machine intermediate representation code; and a target machine transformer to: convert a portion of the machine intermediate representation code to dataflow code to generate dataflow intermediate representation code; and allocate registers within the dataflow intermediate representation code.

First claim

Opening claim text (preview).

What is claimed is: 1. A compiler apparatus comprising: a memory; a processor circuitry; an intermediate representation transformer to transform input software code to intermediate representation code; an instruction selector to insert machine instructions of a target execution platform in the intermediate representation code to generate machine intermediate representation code; and a dataflow converter to convert a portion of the machine intermediate representation code to dataflow code to generate dataflow intermediate representation code including: selecting a first region of the machine intermediate representation code; converting the first region to the dataflow code prior to converting a second region, wherein the first region is contained within the second region; performing a live range analysis to identify a live range when variables in the machine intermediate representation code are active, and assigning a latency insensitive channel to the live range; and, a target machine transformer to allocate registers within the dataflow intermediate representation code, wherein at least one of the intermediate representation transformer, the instruction selector, the dataflow converter, or the target machine transformer is implemented by the processor circuitry. 2. The compiler apparatus as defined in claim 1 , wherein the dataflow converter is to generate machine specific instructions of the target execution platform for at least one of a join or a split included in the machine intermediate representation code. 3. The compiler apparatus as defined in claim 1 , wherein the dataflow converter is to move operations converted to dataflow code onto dataflow units of the target execution platform. 4. The compiler apparatus as defined in claim 1 , wherein the dataflow converter is to remove branches from the machine intermediate representation code. 5. The compiler apparatus as defined in claim 1 , wherein the target execution platform is a spatial accelerator. 6. A non-transitory computer readable medium comprising instructions that, when executed, cause a machine to at least: transform input software code to intermediate representation code; insert machine instructions of a target execution platform in the intermediate representation code to generate machine intermediate representation code; convert a portion of the machine intermediate representation code to dataflow code to generate dataflow intermediate representation code including: selecting a first region of the machine intermediate representation code; converting the first region to the dataflow code prior to converting a second region, wherein the first region is contained within the second region; performing a live range analysis to identify a live range when variables in the machine intermediate representation code are active, and assigning a latency insensitive channel to the live range; and allocate registers within the dataflow intermediate representation code. 7. The non-transitory computer readable medium as defined in claim 6 , wherein the instructions, when executed, cause the machine to generate machine specific instructions of the target execution platform for at least one of a join or a split included in the machine intermediate representation code. 8. The non-transitory computer readable medium as defined in claim 6 , wherein the instructions, when executed, cause the machine to move operations converted to dataflow code onto dataflow units of the target execution platform. 9. The non-transitory computer readable medium as defined in claim 6 , wherein the instructions, when executed, cause the machine to remove branches from the machine intermediate representation code. 10. The non-transitory computer readable medium as defined in claim 6 , wherein the target execution platform is a spatial accelerator. 11. A method comprising: transforming, by executing an instruction with a processor, input software code to intermediate representation code; inserting, by executing an instruction with a processor, machine instructions of a target execution platform in the intermediate representation code to generate machine intermediate representation code; converting, by executing an instruction with a processor, a portion of the machine intermediate representation code to dataflow code to generate dataflow intermediate representation code including: selecting a first region of the machine intermediate representation code; converting the first region to the dataflow code prior to converting a second region, wherein the first region is contained within the second region; performing a live range analysis to identify a live range when variables in the machine intermediate representation code are active, and assigning a latency insensitive channel to the live range; and allocating, by executing an instruction with a processor, registers within the dataflow intermediate representation code. 12. The method as defined in claim 11 , further including generating machine specific instructions of the target execution platform for at least one of a join or a split included in the machine intermediate representation code. 13. The method as defined in claim 11 , further including moving operations converted to dataflow code onto dataflow units of the target execution platform. 14. The method as defined in claim 11 , further including removing branches from the machine intermediate representation code. 15. The method as defined in claim 11 , wherein the target execution platform is a spatial accelerator.

Assignees

Inventors

Classifications

  • Reducing the execution time required by the program code · CPC title

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • Register allocation; Assignment of physical memory space to logical memory space · CPC title

  • Optimisation · CPC title

  • Target code generation · 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 US10402176B2 cover?
Methods, apparatus, systems and articles of manufacture to compiler compile code to generate dataflow code are described. An example compiler apparatus includes an intermediate representation transformer to transform input software code to intermediate representation code; an instruction selector to insert machine instructions of a target execution platform in the intermediate representation co…
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification G06F8/433. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 03 2019 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).