Method and apparatus for compiling code based on a dependency tree

US9823911B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9823911-B2
Application numberUS-201514590164-A
CountryUS
Kind codeB2
Filing dateJan 6, 2015
Priority dateJan 31, 2014
Publication dateNov 21, 2017
Grant dateNov 21, 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 compiling apparatus generates a dependency tree representing dependency relations among a plurality of instructions included in first code. The compiling apparatus detects, from the dependency tree, a partial tree including a first instruction, a second instruction, and a third instruction that depends on the operation results of the first and second instructions, and rewrites the instructions corresponding to the partial tree to a set of instructions including a plurality of complex instructions each of which causes a processor to perform a complex operation including a plurality of operations. The compiling apparatus generates second code on the basis of the dependency tree and the set of instructions.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer-readable medium storing therein a compiling program that causes a computer to execute a process comprising: generating a dependency tree representing dependency relations among a plurality of instructions included in first code; detecting a first partial tree from the dependency tree, the first partial tree including a first instruction, a second instruction, and a third instruction, the third instruction depending on operation results of the first instruction and the second instruction; updating the dependency tree by replacing the first partial tree with a second partial tree, wherein the replacing includes converting the first, second and third instructions included in the first partial tree into a plurality of complex instructions under a conversion rule that is determined according to operation types of the first, second and third instructions, the plurality of complex instructions each causing a processor to perform a complex operation that includes a plurality of operations; and generating second code based on the updated dependency tree; wherein generating second code includes comparing the updated dependency tree including the complex instructions with another dependency tree including complex instructions, and converting some or all of the plurality of instructions into parallel instructions, the parallel instructions each causing the processor to perform two or more complex instructions in parallel. 2. The non-transitory computer-readable medium according to claim 1 , wherein the process further includes, before detecting the first partial tree, detecting a set of instructions from the dependency tree and deforming the set of instructions into the first partial tree, the set of instructions including the first instruction, a fourth instruction, and a fifth instruction and satisfying prescribed conditions, the fourth instruction depending on an operation result of the first instruction, the fifth instruction depending on an operation result of the fourth instruction. 3. A compiling method comprising: generating, by a processor, a dependency tree representing dependency relations among a plurality of instructions included in first code; detecting, by the processor, a first partial tree from the dependency tree, and rewriting instructions corresponding to the partial tree to a set of instructions, the instructions corresponding to the first partial tree including a first instruction, a second instruction, and a third instruction, the third instruction depending on operation results of the first instruction and the second instruction; updating, by the processor, the dependency tree by replacing the first partial tree with a second partial tree, wherein the replacing includes converting the first, second and third instructions included in the first partial tree into a plurality of complex instructions under a conversion rule that is determined according to operation types of the first, second and third instructions, the set of instructions including a the plurality of complex instructions each causing the processor or another processor to perform a complex operation that includes a plurality of operations; and generating, by the processor, second code based on the updated dependency tree and the set of instructions; wherein generating second code includes comparing the updated dependency tree including the complex instructions with another dependency tree including complex instructions, and converting some or all of the plurality of instructions into parallel instructions, the parallel instructions each causing the processor to perform two or more complex instructions in parallel. 4. A compiling apparatus comprising: a memory configured to store first code and second code generated by converting the first code; and a processor configured to perform a process including: generating a dependency tree representing dependency relations among a plurality of instructions included in the first code; detecting a first partial tree from the dependency tree, and rewriting instructions corresponding to the partial tree to a set of instructions, the instructions corresponding to the first partial tree including a first instruction, a second instruction, and a third instruction, the third instruction depending on operation results of the first instruction and the second instruction; updating the dependency tree by replacing the first partial tree with a second partial tree, wherein the replacing includes converting the first, second and third instructions included in the first partial three into a plurality of complex instructions under a conversion rule that is determined according to operation types of the first, second and third instructions, the set of instructions including a the plurality of complex instructions each causing a processor to perform a complex operation that includes a plurality of operations; and generating the second code based on the updated dependency tree and the set of instructions; wherein generating second code includes comparing the updated dependency tree including the complex instructions with another dependency tree including complex instructions, and converting some or all of the plurality of instructions into parallel instructions, the parallel instructions each causing the processor to perform two or more complex instructions in parallel.

Assignees

Inventors

Classifications

  • G06F8/453Primary

    Data distribution · CPC title

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

  • Transformation of program code · CPC title

  • G06F8/433Primary

    Dependency analysis; Data or control flow analysis · CPC title

  • Parallelism detection · 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 US9823911B2 cover?
A compiling apparatus generates a dependency tree representing dependency relations among a plurality of instructions included in first code. The compiling apparatus detects, from the dependency tree, a partial tree including a first instruction, a second instruction, and a third instruction that depends on the operation results of the first and second instructions, and rewrites the instruction…
Who is the assignee on this patent?
Fujitsu Ltd
What technology area does this patent fall under?
Primary CPC classification G06F8/453. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 21 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).