CN105589728B - A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism - Google Patents

A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism Download PDF

Info

Publication number
CN105589728B
CN105589728B CN201510945710.6A CN201510945710A CN105589728B CN 105589728 B CN105589728 B CN 105589728B CN 201510945710 A CN201510945710 A CN 201510945710A CN 105589728 B CN105589728 B CN 105589728B
Authority
CN
China
Prior art keywords
instruction
idiom
subgraph
basic block
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510945710.6A
Other languages
Chinese (zh)
Other versions
CN105589728A (en
Inventor
李�浩
高寅生
李向军
李立
崔啸华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hongyi vision (Beijing) Technology Co., Ltd
Original Assignee
Xian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xian University filed Critical Xian University
Priority to CN201510945710.6A priority Critical patent/CN105589728B/en
Publication of CN105589728A publication Critical patent/CN105589728A/en
Application granted granted Critical
Publication of CN105589728B publication Critical patent/CN105589728B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Abstract

The invention discloses the analysis methods that idiom is instructed in a kind of conversed analysis, by carrying out data-flow analysis to the assembly instruction sequence flows in a basic block, the data dependence graph of relationship construction instruction sequence stream is used according to definition-, then each connection subgraph in data dependence graph subgraph semanteme isomorphism is carried out with the template in template library to match, it was found that semantic isomorphism subgraph, and by isomorphism subgraph carry out specification abatement, analyze subgraph abstract operation and corresponding operand.The invention can effectively improve the level of abstraction of intermediate code in conversed analysis, improve code analysis efficiency.

Description

A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism
Technical field
The invention belongs to inverse compiling technique fields, and in particular to a kind of instruction idiom identification side based on subgraph semanteme isomorphism Method.
Background technique
With scientific and technological progress, major part software is supplied to user using high level language in the form of machine code at present, and Machine code is readable poor, and people need to translate into machine code program into understandable high-level language programs, and reaching has video card The purpose of software analysis, understanding and maintenance.Inverse compiling technique is also known as reverse technique of compiling, refers to executable file becoming high The process of grade language source code, the tool that decompiling is analyzed and understood as a kind of software have been widely used program at present The various aspects such as understanding, program debugging, source code recovery.The process of decompiling generally includes: object language code → dis-assembling → language and compiler version identification → library function or class libraries identification → pretreatment → intermediate language → data-flow analysis, control stream Analysis → translater → high-level language.Currently, mainstream decompiling software includes Hex-Rays, Retargetable Decompiler, SecondWrite etc., their basic fundamental are that corresponding subsequence is searched in assembly instruction sequence flows, Code schedule of this method by the compiling optimizing phase, the influence of the factors such as code optimization can not detect journey completely Instruction idiom in sequence.And the instruction idiom detection method based on subgraph semanteme isomorphism can be detected effectively in program because referring to The instruction idiom for enabling scheduling and being hidden, and then effectively improve the level of abstraction of code.
Summary of the invention
The object of the present invention is to provide a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism, detect in program The instruction idiom being hidden because instructing scheduling, improves the level of abstraction of code.
The technical scheme adopted by the invention is that a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism, including Following steps:
Step 1: according to the developing algorithm of assembler controlling stream graph, the assembly instruction controlling stream graph of building process body;
Step 2: carrying out the analysis of instruction idiom on the resulting assembly instruction controlling stream graph of step 1, pass through Frequent episodes Mining algorithm analyzes instruction sequence stream corresponding to different instruction idioms, by all instruction idioms and instruction sequence stream structure At data dependence graph;
Step 3: in the database, building instructs idiom database to the data dependence graph key-value pair storage in step 2;
Step 4: each of traversal assembly instruction controlling stream graph basic block constructs the data dependence graph of basic block, will Each of the data obtained dependency graph connected subgraph respectively with the instruction idiom in step 3 in institute's call instruction idiom database Corresponding data dependence graph carries out the matching of subgraph semanteme isomorphism, and marks and be matched in the data dependence graph of basic block Assembly instruction control stream subgraph and corresponding instruction idiom;
Step 5: according to data-flow analysis algorithm, analyzing the assembly instruction control stream subgraph entrance being matched in step 4 The live variables at place and exit control the parameter for flowing abstract operation representated by subgraph using live variables as the compilation And return value;
Step 6: the assembly instruction control stream subgraph come out will be labeled in step 5 and cut down, the section being matched to is deleted Point reconstructs the side collection in data dependence graph, and the identification of instruction idiom can be realized.
The features of the present invention also characterized in that
In step 2, the method for instruction sequence stream corresponding to instruction idiom is excavated specifically according to following using Frequent episodes Step is implemented:
A) source program of the selection comprising instruction idiom to be excavated compiles source with the different optimization ranks of different compilers Program obtains binary program set;
B) disassemblers dis-assembling binary program set is utilized, assembler set is obtained;
C) assembler controlling stream graph developing algorithm is utilized, the controlling stream graph of assembler is constructed;For based on control stream The assembler of figure is assembler as Customs Assigned Number using basic block, numbers by affairs of basic block and to instruct as thing Service type;Using b) to database c) established as the input of Frequent episodes algorithm, find out corresponding to any instruction idiom Instruction sequence stream.
In step 2, assembler controlling stream graph developing algorithm is specifically implemented according to the following steps:
A) the empty non-access address chained list of building, and with the non-access address chained list of function entrance address initialization;
B) header element of non-access address chained list is taken, if the instruction at the address is already contained in assembly instruction control stream In some basic block in figure, then need basic block of the division comprising the address and rebuild to jump pass between basic block System;Otherwise, the continuous instruction fetch since the memory the address, until encountering jump instruction or procedure epilogue;To get Instruction set be content, instantiate current basic block;It meanwhile being the instruction of the jump address of current basic block and successor address Sequence construct basic block, and be added in assembly instruction controlling stream graph;Finally, setting current basic block and jump basic block and Current basic block and successor basic blocks jump relationship;
C) jump address of branch's basic block in b) and subsequent address are added in non-access address chained list;
D) it repeats and b) arrives c), until non-access address chained list is sky.
In step 3, instruct idiom database building the following steps are included:
A) all instruction idioms to be excavated are directed to, construction includes the source program of command adapted thereto idiom, with different compilers Different Optimization rank compile source program, using Frequent episodes algorithm excavate comprising different instruction idiom source program in it is frequent Sequence, using these Frequent episodes as the instruction sequence stream of command adapted thereto idiom;
B) the instruction sequence stream of idiom and corresponding instruction idiom will be instructed as element, relationship structure is used by definition- The data dependence graph G=(V, E) of the instruction sequence stream is built, wherein vertex V is the instruction in basic block, and side collection E is by definition-use Relationship determines, if register or memory that instruction I has used instruction J to define, construction one directed edge<I, J>;
C) it to instruct idiom and corresponding data dependence graph as element, inserts it into instruction idiom database.
D) step a) is repeated to process c), meets expected instruction idiom database until constructing.
Step 4 is specifically implemented according to the following steps:
A) it treats each of the assembly instruction controlling stream graph of matching process body basic block and carries out data-flow analysis, and The data dependence graph of each basic block is established using relationship according to definition-;
B) by the instruction idiom in the connected subgraph and instruction idiom database in the data dependence graph in each basic block Corresponding data dependence graph carries out the matching of subgraph semanteme isomorphism, and mark in the data dependence graph of basic block Matching sub-image with And corresponding instruction idiom.
In step 5, the determination of parameter and return value the following steps are included:
A) data-flow analysis is carried out as unit of the basic block of assembly instruction controlling stream graph, calculates the assembly instruction being matched The live variables of control stream subgraph inlet and exit;
B) parameter of the live variables for the instruction idiom inlet that will match to as the instruction idiom, with the finger being matched to Enable the live variables in idiom exit as the return value of the instruction idiom.
In step 6, reconstruct the side collection of data dependence graph the following steps are included:
A) boundary that instruction idiom is matched in data dependence graph is determined;
B) subgraph being matched is deleted.
The invention has the advantages that the general of intermediate expression can be improved in detection instruction idiom in the dis-assembling stage Property;Instruction idiom analysis is carried out in the assembler based on controlling stream graph, can cut down the number and reduction of intermediate expression The complexity of stream is controlled, and then can effectively simplify the analysis of follow-up data flow point and control flow analysis;It is instructed in basic block Idiom detection makes the analysis of call instruction idiom have boundary, improves the accuracy of instruction idiom analysis;By in construction basic block Instruction between data dependence graph, can effectively eliminate influence of the instruction scheduling for instruction sequences, improve instruction idiom Accuracy of identification;Subgraph semanteme isomorphism algorithm can accurately match the instruction embedded in the data dependence graph of basic block and practise Language.
Detailed description of the invention
Fig. 1 is a kind of work flow diagram of the instruction idiom recognition methods based on subgraph semanteme isomorphism of the present invention;
Fig. 2 is in x86 except the data dependence graph of 7 instruction idioms;
Fig. 3 is the schematic diagram of the method for the present invention neutron graphic language justice isomorphism matching process;
Specific embodiment
The following describes the present invention in detail with reference to the accompanying drawings and specific embodiments.
A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism of the present invention, workflow is as shown in Figure 1, specifically press Implement according to following steps:
Step 1: according to the developing algorithm of assembler controlling stream graph, the assembly instruction controlling stream graph of building process body;
Step 2: carrying out the analysis of instruction idiom on the resulting assembly instruction controlling stream graph of step 1, pass through Frequent episodes Mining algorithm analyzes instruction sequence stream corresponding to different instruction idioms, by all instruction idioms and instruction sequence stream structure At data dependence graph;
Specifically includes the following steps:
A) source program of the selection comprising instruction idiom to be excavated compiles source with the different optimization ranks of different compilers Program obtains binary program set;
B) disassemblers dis-assembling binary program set is utilized, assembler set is obtained;
C) assembler controlling stream graph developing algorithm is utilized, the controlling stream graph of assembler is constructed.For based on control stream The assembler of figure is assembler as Customs Assigned Number using basic block, numbers by affairs of basic block and to instruct as thing Service type.Using b) to database c) established as the input of Frequent episodes algorithm, find out corresponding to any instruction idiom Instruction sequence stream;
D) all instruction idioms and instruction sequence stream are constituted into data dependence graph.
The developing algorithm of data dependence graph is as follows:
Proc build_instruction_dependency_graph()
Input: assembly instruction sequence flows
Output: assembly instruction dependency graph
1. counting the definition of every instruction in instruction sequence stream and using set
2. for the instruction I of instruction sequence stream, the definition set Ix of acquisition instruction I
3. each definition Id in set Ix is traversed, in the instruction sequence made a definition a little since instructing I to Id The use that Id is found in stream instructs Iy, and constructs one<Ix, Iy>directed edge.
End proc
In x86 except 7 instruction stream sequences it is as follows:
mov ecx,[esp+1Ch]
mov edx,92492493h
mov eax,ecx
imul edx
lea eax,[edx+ecx]
sar eax,2
sar ecx,1Fh
sub eax,ecx
The instruction sequence stream is the common method that most of compilers accelerate division calculation using hardware architecture, In, digital 92492493h is the magic number that compiler is calculated according to specific formula, division arithmetic is converted into a series of Shift operation and multiplication operation, overall calculation speed can be accelerated.
Fig. 2 is except the data dependence graph of 7 instruction idioms in x86, and instruction imul edx has used register edx, and instructs Mov edx, 92492493h define edx, and from mov edx, 92492493h to imul edx, and edx is not redefined, To construct one from mov edx, the side of 92492493h to imul edx.
Step 3: in the database, building instructs idiom database to the data dependence graph key-value pair storage in step 2;
Step 4: each of traversal assembly instruction controlling stream graph basic block constructs the data dependence graph of basic block, will Each of the data obtained dependency graph connected subgraph respectively with the instruction idiom in step 3 in institute's call instruction idiom database Corresponding data dependence graph carries out the matching of subgraph semanteme isomorphism, and the remittance being matched is marked in the data dependence graph of basic block Compile instruction control flow subgraph and corresponding instruction idiom;
Subgraph semanteme isomorphism algorithm is as follows:
Fig. 3 is the matched process of subgraph semanteme isomorphism, wherein G in Fig. 3 (a)1=(V1,E1) subgraph semanteme is isomorphic to Fig. 3 (b) G in2=(V2,E2), and if only if there are G2A subgraph G3=(V3,E3), and there are bijective functions Φ: V1→ V3, two vertex Semantic mapping functions Ψ: V1→ L and Ψ ': V3→ L, so that for G1In any two vertex vi, vj∈V1, And (vi,vj)∈E1And if only if (Φ (vi),Φ(vj))∈E3, Ψ (vi) and Ψ ' (Φ (vi)) semantic mutually compatible, Ψ (vj) With Ψ ' (Φ (vj)) it is semantic mutually compatible, it is the matching of data dependence graph that the matching of figure is corresponding, and semantic matching is operation code Matching, if the operator of two assembly instructions is identical, both it is semantic mutually compatible, it is otherwise incompatible.Target figure G1With Prototype drawing G2Matching process in, as shown in Fig. 3 (c), when initial matching solution M be sky, state space SSR be S0, detect n1With m1 Whether match, SSR is by S0Become S1, semanteme mismatch, SSR is by S1Return to S0;Detect n2With m1Whether match, SSR is by S0Become S2, n2And m1Semanteme match, matching solution M become { (n2, m1) };In matching status S2, n2Each successor node and m1 Each successor node matched, when SSR attempts from S2Expand to S3When, although n3And m3Degree it is equal, but due to n3And m3Semanteme mismatches, so matching status is by S3Back to S2;Then SSR is from S2Expand to S4, due to n4And m3Degree phase Deng, and n4And m3Semanteme match, matching solution M become { (n2,m1),(n4,m3)};When SSR is from S4When continuing extension, due to n4 And m3All without successor node, and matches solution M and be both not covered with G1Also it is not covered with G2, it fails to match, and SSR is from S4Back to S2; When SSR is from S2Expand to S5When, n4With m2It is semantic mismatch, extension failure, SSR is by S5Back to S2;n3With m2Match, two Person's degree it is equal and it is semantic match, SSR is from S2Expand to S6, match solution M and become { (n2,m1),(n3,m2)};In state S6, n3Each successor node and m2Each successor node match, node n3There is unique successor node n4, node m2Have Unique successor node m3, n4With m3Semanteme match, SSR is by S6Expand to S7, match solution M and become { (n2,m1),(n3,m2), (n4,m3), at this point, n4And m3Without subsequent, and M has completely covered G2, therefore primary matching is completed, and have found matching Solve M={ (n2,m1),(n3,m2),(n4,m3), i.e. G1In n2With G2In m1Match, G1In n3With G2In m2Phase Match, G1In n4With G2In m3Match.
Step 5: according to data-flow analysis algorithm, analyzing the assembly instruction control stream subgraph entrance being matched in step 4 The live variables at place and exit control using live variables as the compilation and flow the parameter of abstract operation representated by subgraph and return Return value;
Step 6: the assembly instruction control stream subgraph come out will be labeled in step 5 and cut down, the section being matched to is deleted Point reconstructs the side collection in data dependence graph, since the compilation control stream subgraph being matched is exactly corresponding instruction idiom, so The identification of instruction idiom can be realized by cutting down corresponding side collection.
Specifically includes the following steps:
A) boundary that instruction idiom is matched in data dependence graph is determined;
B) subgraph being matched is deleted.

Claims (6)

1. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism, which comprises the following steps:
Step 1: according to the developing algorithm of assembler controlling stream graph, the assembly instruction controlling stream graph of building process body;
Step 2: carrying out the analysis of instruction idiom on the resulting assembly instruction controlling stream graph of step 1, excavated by Frequent episodes Algorithm analyzes instruction sequence stream corresponding to different instruction idioms, and all instruction idioms and instruction sequence stream are constituted number According to dependency graph;
The assembler controlling stream graph developing algorithm is specifically implemented according to the following steps:
A) the empty non-access address chained list of building, and with the non-access address chained list of function entrance address initialization;
B) header element of non-access address chained list is taken, if the instruction at the vector address of header element instruction idiom is already contained in In some basic block in assembly instruction controlling stream graph, then needs to divide the basic block comprising the address and rebuild basic block Between jump relationship;Otherwise, the continuous instruction fetch since the memory the address, until encountering jump instruction or procedure epilogue Until;The instruction set got, it is updated to the new content of current basic block;Meanwhile for current basic block jump address and The instruction sequence of successor address constructs basic block, and is added in assembly instruction controlling stream graph;Finally, setting current basic block with Jump basic block and current basic block and successor basic blocks jumps relationship;
C) jump address of the branch of current basic block and subsequent address in b) are added in non-access address chained list;
D) it repeats and b) arrives c), until non-access address chained list is sky;
Step 3: in the database by the data dependence graph key-value pair storage of the resulting instruction idiom of step 2 and instruction sequence stream, Building instruction idiom database;
Step 4: each of traversal assembly instruction controlling stream graph basic block constructs the data dependence graph of basic block, by gained Each of the data dependence graph of basic block connected subgraph respectively with the instruction in step 3 in institute's call instruction idiom database The corresponding data dependence graph of idiom carries out the matching of subgraph semanteme isomorphism, and marks and be matched in the data dependence graph of basic block Assembly instruction control stream subgraph and corresponding instruction idiom;
Step 5: according to data-flow analysis algorithm, analyze be matched in step 4 assembly instruction control stream subgraph inlet and The live variables in exit control the parameter for flowing abstract operation representated by subgraph using live variables as the assembly instruction And return value;
Step 6: the assembly instruction control stream subgraph come out will be labeled in step 4 and cut down, delete the node being matched to, weight The identification of instruction idiom can be realized in side collection in the data dependence graph of structure basic block.
2. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism according to claim 1, which is characterized in that institute State and analyze instruction sequence stream corresponding to different instruction idioms in step 2 by Frequent episodes mining algorithm, specifically according to Following steps are implemented:
Step 2.1, source program of the selection comprising instruction idiom to be excavated, is compiled with the different optimization ranks of different compilers Source program obtains binary program set;
Step 2.2, using disassemblers dis-assembling binary program set, assembler set is obtained;
Step 2.3, using assembler controlling stream graph developing algorithm, the controlling stream graph of assembler is constructed;For based on control The assembler of flow graph is assembler as Customs Assigned Number using basic block, is numbered by affairs of basic block and to instruct as thing Service type;Using described instruction idiom database as the input of Frequent episodes mining algorithm, find out corresponding to any instruction idiom Instruction sequence stream.
3. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism according to claim 1, which is characterized in that institute Building instruction idiom database in step 3 is stated to be specifically implemented according to the following steps:
Step 3.1, for all instruction idioms to be excavated, construction includes the source program of command adapted thereto idiom, with different compilings The Different Optimization rank of device compiles source program, is excavated in the source program comprising different instruction idiom using Frequent episodes mining algorithm Frequent episodes, using the Frequent episodes in the source program comprising different instruction idiom as the instruction sequence of command adapted thereto idiom Stream;
Step 3.2, the instruction sequence stream of idiom and corresponding instruction idiom will be instructed as element, relationship is used by definition- The data dependence graph G=(V, E) of the instruction sequence stream is constructed, wherein vertex V is the instruction in basic block, and side collection E is by defining-making Determined with relationship, the definition-is data dependence relation using relationship, if instruction I used the register that defines of instruction J or Memory, then construct a directed edge<I, J>;
Step 3.3, it to instruct idiom and corresponding data dependence graph as element, inserts it into instruction idiom database;
Step 3.4, the process of step .3.1 to 3.3 is repeated, until constructing instruction idiom database D B.
4. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism according to claim 1, which is characterized in that institute Step 4 is stated to be specifically implemented according to the following steps:
A) treat each of the assembly instruction controlling stream graph of matching process body basic block carry out data-flow analysis, and according to The data dependence graph of each basic block is established in definition-using relationship;
B) connected subgraph in the data dependence graph in each basic block is corresponding with the instruction idiom in instruction idiom database Dependency graph carry out the matching of subgraph semanteme isomorphism, and mark in data dependence graph Matching sub-image and corresponding instruction habit Language.
5. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism according to claim 1, which is characterized in that institute Parameter and return value in step 5 is stated to obtain as steps described below:
A) data-flow analysis is carried out as unit of the basic block of assembly instruction controlling stream graph, calculates the assembly instruction control being matched Flow the live variables of subgraph inlet and exit;
B) parameter of the live variables for the instruction idiom inlet that will match to as the instruction idiom, is practised with the instruction being matched to Return value of the live variables in language exit as the instruction idiom.
6. a kind of instruction idiom recognition methods based on subgraph semanteme isomorphism according to claim 1, which is characterized in that institute The side collection for stating reconstruct data dependence graph in step 6 is specifically implemented according to the following steps:
A) the side collection that instruction idiom is matched in data dependence graph is determined;
B) subgraph being matched is deleted.
CN201510945710.6A 2015-12-16 2015-12-16 A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism Active CN105589728B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510945710.6A CN105589728B (en) 2015-12-16 2015-12-16 A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510945710.6A CN105589728B (en) 2015-12-16 2015-12-16 A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism

Publications (2)

Publication Number Publication Date
CN105589728A CN105589728A (en) 2016-05-18
CN105589728B true CN105589728B (en) 2019-03-29

Family

ID=55929334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510945710.6A Active CN105589728B (en) 2015-12-16 2015-12-16 A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism

Country Status (1)

Country Link
CN (1) CN105589728B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109977233B (en) * 2019-03-15 2021-02-23 北京金山数字娱乐科技有限公司 Idiom knowledge graph construction method and device
CN115185526B (en) * 2022-05-27 2023-10-10 韩济澎 Compiling system and method for programming language capable of reverse reasoning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271397A (en) * 2007-03-23 2008-09-24 北京大学 Recognition method of nested loop structure
CN104915211A (en) * 2015-06-18 2015-09-16 西安交通大学 Intrinsic function recognition method based on sub-graph isomorphism matching algorithm in decompilation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483295B2 (en) * 2014-03-31 2016-11-01 International Business Machines Corporation Transparent dynamic code optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271397A (en) * 2007-03-23 2008-09-24 北京大学 Recognition method of nested loop structure
CN104915211A (en) * 2015-06-18 2015-09-16 西安交通大学 Intrinsic function recognition method based on sub-graph isomorphism matching algorithm in decompilation

Also Published As

Publication number Publication date
CN105589728A (en) 2016-05-18

Similar Documents

Publication Publication Date Title
Kong et al. When polyhedral transformations meet SIMD code generation
CN104915211B (en) Intrinsic function recognition methods based on Subgraph Isomorphism matching algorithm in decompiling
CN103577241B (en) compiling system and compiling method
CN104794401B (en) A kind of semiology analysis leak detection method of static analysis auxiliary
Porpodas et al. PSLP: Padded SLP automatic vectorization
Puschner et al. Compiling for time predictability
Tripp et al. Sea cucumber: A synthesizing compiler for fpgas
CN100559347C (en) A kind of recognition methods of nested loop structure
Cullmann et al. Data-flow based detection of loop bounds
CN105589728B (en) A kind of instruction idiom recognition methods based on subgraph semanteme isomorphism
Sharygin et al. Runtime specialization of PostgreSQL query executor
Shypula et al. Learning to superoptimize real-world programs
Bispo et al. On identifying and optimizing instruction sequences for dynamic compilation
Wilhelm Computation and use of data flow information in optimizing compilers
Puschner A tool for high-level language analysis of worst-case execution times
Wang et al. A platform-specific code smell alert system for high performance computing applications
Siek et al. A formal design of a tool for static analysis of upper bounds on object calls in Java
Ge et al. RollBin: reducing code-size via loop rerolling at binary level
Dukhan PeachPy: A python framework for developing high-performance assembly kernels
Escalada et al. An adaptable infrastructure to generate training datasets for decompilation issues
SEEDORF FINGERPRINT VERIFICATION ON THE VEX PROCESSOR.
Novack et al. A hierarchical approach to instruction-level parallelization
Arató et al. A data flow graph generation method starting from C description by handling loop nest hierarchy
Gómez Obtaining High-Level Semantic Information from Binary Code
Posadas et al. Accelerating host-compiled simulation by modifying ir code: Industrial application in the spatial domain

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200922

Address after: No. 1-2428, East (LIANHANG building), chaichangtun village, Yongledian Town, Tongzhou District, Beijing

Patentee after: Hongyi vision (Beijing) Technology Co., Ltd

Address before: 710065 No. six, No. 1, science and technology, Shaanxi, Xi'an

Patentee before: XI'AN UNVERSITY OF ARTS AND SCIENCE

TR01 Transfer of patent right