CN104657257A - Pointer analysis method and device - Google Patents

Pointer analysis method and device Download PDF

Info

Publication number
CN104657257A
CN104657257A CN201310589292.2A CN201310589292A CN104657257A CN 104657257 A CN104657257 A CN 104657257A CN 201310589292 A CN201310589292 A CN 201310589292A CN 104657257 A CN104657257 A CN 104657257A
Authority
CN
China
Prior art keywords
amount
shared
thread
local
analysis
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.)
Granted
Application number
CN201310589292.2A
Other languages
Chinese (zh)
Other versions
CN104657257B (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.)
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
Original Assignee
Huawei Technologies Co Ltd
Institute of Computing Technology of CAS
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 Huawei Technologies Co Ltd, Institute of Computing Technology of CAS filed Critical Huawei Technologies Co Ltd
Priority to CN201310589292.2A priority Critical patent/CN104657257B/en
Publication of CN104657257A publication Critical patent/CN104657257A/en
Application granted granted Critical
Publication of CN104657257B publication Critical patent/CN104657257B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

An embodiment of the invention provides a pointer analysis method and device. The pointer analysis method includes the steps: reading statement information in a multi-thread procedure to be analyzed; analyzing the pointer of the procedure according to the statement information of the procedure to obtain share information; performing compensation analysis for the share quantity according to the share information of the procedure. The share information comprises the share quantity, a pointer pointing set and a memory access behavior, and the share quantity includes global share quantity and local share quantity. The method solves the problems that analysis of the pointer of the multi-thread procedure is limited in global share quantity in the procedure and analysis results are incomplete in the prior art, analysis accuracy of the pointer is improved, and optimizing implementation ranges and optimizing effects of the procedure are correspondingly improved.

Description

Pointer analysis method and device
Technical field
The embodiment of the present invention relates to computer technology, particularly relates to a kind of pointer analysis method and device.
Background technology
Along with popularizing of computing machine, computer software becomes increasingly complex, and the program statement type wherein used is also more flexibly with abundant, and be described for normally used C and C++ program statement, the use of program statement pointer is further extensive.The use of pointer statement be determination procedure be compiled optimize after the excellent key factor of runnability, therefore, for the compile optimization of program based on the analysis to program statement pointer.
The analysis of pointer is referred generally to this pointer variable character and the analysis pointing to collection.At present, when carrying out pointer analysis, flow sensitivity and context sensitivity that usual service precision is higher (Flow-Sensitiveand Context-Sensitive, referred to as: analytical approach FSCS), but directly use these class methods not to be suitable for multithread programs.Intuitively for a pointer analysis for multithread programs, the shared amount of the overall situation can be obtained to the reciprocal effect in the parallel regions of program between different threads by carrying out pointer analysis to global variable; Particularly, analyze the overall situation share amount the pointed collection of each program point, cross-thread point to alternately collection and present procedure statement perform terminate after sensing limit newly-increased in sensing figure.
To the pointer analysis method that the statement of multithread programs carries out in prior art, only consider that the overall situation shares the reciprocal effect of amount to cross-thread in the parallel regions of program, therefore, the overall situation that the shared amount of carrying out pointer analysis is only confined in program shares amount, make the object of pointer analysis, namely the shared weight range in program reduces, and reduces the precision of pointer analysis.
Summary of the invention
The embodiment of the present invention provides a kind of pointer analysis method and device, shares amount, the incomplete problem of analysis result to solve in prior art to the overall situation that the pointer analysis of multithread programs is only confined in program.
First aspect, the embodiment of the present invention provides a kind of pointer analysis method, comprising:
Read the statement information in multithread programs to be analyzed;
Statement information according to described program carries out pointer analysis to described program, obtains the shared information of described program, and described shared information comprises the amount of sharing, pointed collection and memory access behavior, and wherein, shared amount comprises overall sharing and measures and the shared amount in local;
Shared information according to described program compensates analysis to described shared amount.
In the first possibility implementation of first aspect, the described statement information according to described program carries out pointer analysis to described program, obtains the shared information of described program, comprising:
Share judgment rule according to the overall situation to analyze described program, the overall situation obtained in described program shares amount;
Pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
According to the first possible implementation of first aspect, in the implementation that the second is possible, the described overall situation is shared judgment rule and is comprised:
If variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
The implementation possible according to the first or the second of first aspect, in the implementation that the third is possible, described pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount, comprising:
Pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread;
Share the shared judgment rule in amount, described pointed collection and local according to the described overall situation to analyze each thread, amount is shared in the local obtained in each thread;
Share amount according to the described overall situation, described local shares amount and each thread of described pointed set pair is analyzed, and obtains the memory access behavior corresponding with described shared amount.
According to the third possible implementation of first aspect, in the 4th kind of possible implementation, described local is shared judgment rule and is comprised:
If variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then described variable is that amount is shared in local; Or,
If in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then described variable be local share amount; Or,
If variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then described variable is that amount is shared in local.
According to the third or the 4th kind of possible implementation of first aspect, in the 5th kind of possible implementation, describedly share amount, described pointed collection and local according to the described overall situation and share judgment rule each thread is analyzed, obtain local in each thread and share amount, comprising:
Share amount, described pointed collection and local according to the described overall situation and share recognition rule, obtain the local variable may escaped in each thread;
According to the described local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the described local variable that may escape is that amount is shared in local.
According to first aspect, first aspect the first in the 5th kind of possible implementation any one, in the 6th kind of possible implementation, the described shared information according to described program also comprises before compensating analysis respectively to each shared amount:
Statement information according to described program generates parallel control flow graph;
The shared amount memory access figure SAG for described program is generated according to described parallel control flow graph and described shared information;
The described shared information according to described program compensates analysis to described shared amount, comprising:
According to described SAG, analysis is compensated to described shared amount.
According to first aspect, first aspect the first in the 6th kind of possible implementation any one, in the 7th kind of possible implementation, described shared measurer has corresponding definite value point and invocation point pair; The described shared information according to described program compensates analysis to described shared amount, comprising:
According to propagation judgment rule obtain described definite value point and invocation point between can interactional shared amount;
By described definite value point and invocation point between the pointed collection of described definite value point of interactional shared amount can propagate into corresponding invocation point.
According to first aspect, first aspect the first in the 7th kind of possible implementation any one, in the 8th kind of possible implementation, before the statement information in the multithread programs that described reading is to be analyzed, also comprise:
Receive the pointer analysis instruction that user sends;
Statement information in the multithread programs that described reading is to be analyzed, comprising:
Statement information in multithread programs to be analyzed according to described pointer analysis instruction fetch.
According to first aspect, first aspect the first in the 8th kind of possible implementation any one, in the 9th kind of possible implementation, the described shared information according to described program also comprises after compensating analysis to described shared amount:
Adopt the result of described Compensation Analysis, process is optimized to described program.
Second aspect, the embodiment of the present invention provides a kind of pointer analysis device, comprising:
Read module, for reading the statement information in multithread programs to be analyzed;
Pointer analysis module, statement information for the described program read according to described read module carries out pointer analysis to described program, obtain the shared information of described program, described shared information comprises the amount of sharing, pointed collection and memory access behavior, wherein, shared amount comprise the overall situation share amount and local share amount;
Compensation Analysis module, the shared information for the described program obtained according to described pointer analysis module compensates analysis to described shared amount.
In the first possibility implementation of second aspect, described pointer analysis module, comprising:
Process analysis unit, analyzes described program for sharing judgment rule according to the overall situation, and the overall situation obtained in described program shares amount;
Thread Analysis unit, for carrying out pointer analysis to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
According to the first possible implementation of second aspect, in the implementation that the second is possible, the described overall situation is shared judgment rule and is comprised:
If variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
The implementation possible according to the first or the second of second aspect, in the implementation that the third is possible, described Thread Analysis unit, specifically for carrying out pointer analysis to thread each in described program, obtains the pointed collection in each thread; And share the shared judgment rule in amount, described pointed collection and local according to the described overall situation to analyze each thread, amount is shared in the local obtained in each thread; And then analyze according to the shared amount of the described overall situation, the shared amount in described local and each thread of described pointed set pair, obtain the memory access behavior corresponding with described shared amount.
According to the third possible implementation of second aspect, in the 4th kind of possible implementation, described local is shared judgment rule and is comprised:
If variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then described variable is that amount is shared in local; Or,
If in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then described variable be local share amount; Or,
If variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then described variable is that amount is shared in local.
According to the third or the 4th kind of possible implementation of second aspect, in the 5th kind of possible implementation, described Thread Analysis unit is used for sharing the shared judgment rule in amount, described pointed collection and local according to the described overall situation and analyzes each thread, amount is shared in the local obtained in each thread, specifically comprises:
Share recognition rule for sharing amount, described pointed collection and local according to the described overall situation, obtain the local variable may escaped in each thread;
And according to the described local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the described local variable that may escape is that amount is shared in local.
According to second aspect, second aspect the first in the 5th kind of possible implementation any one, in the 6th kind of possible implementation, described device also comprises: Computer image genration module, before compensating analysis for the shared information of described program that obtains according to described pointer analysis module in described Compensation Analysis module respectively to each shared amount, the statement information according to described program generates parallel control flow graph; And generate the shared amount memory access figure SAG for described program according to described parallel control flow graph and described shared information;
Described Compensation Analysis module, compensates analysis specifically for the described SAG according to described Computer image genration CMOS macro cell to described shared amount.
According to second aspect, second aspect the first in the 6th kind of possible implementation any one, in the 7th kind of possible implementation, described shared measurer has corresponding definite value point and invocation point pair; Described Compensation Analysis module, comprising: judging unit, for obtain according to propagation judgment rule described definite value point and invocation point between can interactional shared amount;
Propagation unit, for described definite value point that described judging unit is obtained and invocation point between the pointed collection of described definite value point of interactional shared amount can propagate into corresponding invocation point.
According to second aspect, second aspect the first in the 7th kind of possible implementation any one, in the 8th kind of possible implementation, described device also comprises: receiver module, for read the statement information in multithread programs to be analyzed at described read module before, receive the pointer analysis instruction that user sends;
Described read module, specifically for the described pointer analysis instruction received according to described receiver module, reads the statement information in described multithread programs to be analyzed.
According to second aspect, second aspect the first in the 8th kind of possible implementation any one, in the 9th kind of possible implementation, described device also comprises: optimize module, after for the shared information of described program that obtains according to described pointer analysis module in described Compensation Analysis module analysis being compensated to described shared amount, adopt the result of described Compensation Analysis, process is optimized to described program.
The pointer analysis method that the present embodiment provides and device, by the statement information reading multithread programs, pointer analysis is carried out to this program, in acquisition program, the overall situation is shared amount and locally shares amount, pointed collection and the memory access behavior for above-mentioned shared amount, based on the result of above-mentioned pointer analysis, realize the Compensation Analysis to sharing amount in program, obtaining may by definite value or/and quotes all results of the amount of sharing at its definite value point and invocation point for above-mentioned shared amount, namely the program that obtains is after any possible execution sequence, it shares amount by definite value or/and all possible outcomes quoted, solve in prior art and amount is shared to the overall situation that the pointer analysis of multithread programs is only confined in program, the incomplete problem of analysis result, improve the precision of pointer analysis, and correspondingly improve program optimization practical range and effect.
Accompanying drawing explanation
In order to be illustrated more clearly in the embodiment of the present invention or technical scheme of the prior art, be briefly described to the accompanying drawing used required in embodiment or description of the prior art below, apparently, accompanying drawing in the following describes is some embodiments of the present invention, for those of ordinary skill in the art, under the prerequisite not paying creative work, other accompanying drawing can also be obtained according to these accompanying drawings.
The process flow diagram of a kind of pointer analysis method that Fig. 1 provides for the embodiment of the present invention one;
The structural representation of a kind of destructuring multithread programs that Fig. 2 provides for the embodiment of the present invention one;
The process flow diagram of a kind of pointer analysis method that Fig. 3 provides for the embodiment of the present invention two;
The SAG figure of a kind of multithread programs that Fig. 4 provides for the embodiment of the present invention;
The structural representation of a kind of pointer analysis device that Fig. 5 provides for the embodiment of the present invention three;
The structural representation of a kind of pointer analysis device that Fig. 6 provides for the embodiment of the present invention;
The structural representation of a kind of pointer analysis device that Fig. 7 provides for the embodiment of the present invention four;
The structural representation of a kind of terminal device that Fig. 8 provides for the embodiment of the present invention five.
Embodiment
For making the object of the embodiment of the present invention, technical scheme and advantage clearly, below in conjunction with the accompanying drawing in the embodiment of the present invention, technical scheme in the embodiment of the present invention is clearly and completely described, obviously, described embodiment is the present invention's part embodiment, instead of whole embodiments.Based on the embodiment in the present invention, those of ordinary skill in the art, not making the every other embodiment obtained under creative work prerequisite, belong to the scope of protection of the invention.
The process flow diagram of a kind of pointer analysis method that Fig. 1 provides for the embodiment of the present invention one, the method that the present embodiment provides is applicable to situation about analyzing existing program, the method can be performed by terminal device or pointer analysis device, this pointer analysis device realizes with the method for hardware and/or software usually, can be integrated in the storer of this terminal device, call execution for processor.As shown in Figure 1, the method for the present embodiment can comprise:
S110, reads the statement information in multithread programs to be analyzed;
To the analysis of current multithread programs, usually pointer variable and the pointed collection of each thread in this program can be analyzed, therefore, the terminal device carrying out pointer analysis, after reading the statement information in multithread programs to be analyzed, could carry out pointer analysis to this program.
It should be noted that, to the pointer analysis that program is carried out, can be that user initiates designated program, therefore, the present embodiment, when specific implementation, also comprises before S110: receive the pointer analysis instruction that user sends; Correspondingly, S110 specifically comprises: according to the statement information in this multithread programs to be analyzed of pointer analysis instruction fetch.
S120, the statement information according to described program carries out pointer analysis to described program, obtains the shared information of described program, and described shared information comprises the amount of sharing, pointed collection and memory access behavior, and wherein, shared amount comprises overall sharing and measures and the shared amount in local;
Terminal device is based on the statement information of program, pointer analysis is carried out to this program, the analysis mode of the FSCS that usual use analysis precision is higher, when adopting the analysis mode of FSCS to analyze program, usually analyze according to the logical order of statement in program, if the execution sequence exchanging program statement is analyzed, the result of analysis is different; By contrast, adopt insensitive (the Flow-Insensitive and Context-Insensitive of the insensitive context of stream, referred to as: analysis mode FICI) is analyzed program, when exchanging the execution sequence of program statement, the result analyzed is identical, obviously, the analysis mode of FSCS has higher analysis precision; Analysis at present to program statement pointer, when usually using FSCS analysis mode in the parallel regions of program, the overall situation only in routine analyzer shares amount, and this overall situation shares amount having an impact alternately to the cross-thread of program, although FSCS analysis mode has certain analysis precision, the method does not still analyze shared amounts all in program; The pointer analysis method that the present embodiment provides, program statement according to reading carries out pointer analysis to program, the shared information of concrete acquisition comprises the amount of sharing, pointed collection and memory access behavior, and, this shared amount comprises the overall situation and shares amount and locally share amount, it is the local variable of program thread that amount is shared in local, by other thread accesses to and become shared variable; Correspondingly, the memory access behavior obtained also shares amount for all overall situation amounts of sharing and local, therefore, the pointer analysis method that the present embodiment provides, more comprehensive to sharing quantitative analysis in program, not only relate to the overall situation and share amount, and relate to the memory access behavior that amount and all shared amounts are shared in local.
S130, the shared information according to described program compensates analysis to described shared amount.
The structural representation of a kind of destructuring multithread programs that Fig. 2 provides for the embodiment of the present invention one.Based on the result analyzed program pointer, compensate analysis to analyzing the shared amount obtained, can according to the reciprocal effect of cross-thread, the result produced after obtaining its reciprocal effect, particularly, in the parallel regions of program, especially in non-structured multithread programs, in program, the operation order of statement has multiple possibility, usually perform according to program statement order in each thread, but between the parallel regions thread of program there is multiple possibility in the execution sequence of statement, non-structured multithread programs is provided to be described for Fig. 2, there is establishment limit and stop limit in cross-thread, be parallel regions between program point A to the C of thread 1 and program point F to the H of thread 2, thread 3 is parallel with thread 1 and 2 after the program point G of thread 2 performs, the rear terminate thread 1 of program point E execution of thread 1 and the parallel of thread 3, accordingly, program point A may at program point B after performing, H or I performs, program point H may perform at program point E or I after performing, therefore, the possibility of multiple execution sequence is there is in program in the process of perform statement, thus need to analyze often kind of possible execution sequence, and then the program that can analyze shares the memory access behavior of amount in any possible execution sequence, namely each shared amount may by definite value or/and all results quoted at its definite value point and invocation point.
Further, the pointer analysis method that the present embodiment provides, also comprises: the result adopting described Compensation Analysis, is optimized process to described program; Based on to sharing amount and the comprehensive and detailed analysis of implementation in program, optimization efficiency and quality can be improved in the optimization process of program, particularly, to program optimization or improvement, wherein optimizing is that program of instigating performs with higher efficiency, and improvement refers to and finds the leak in program or mistake or change.
The pointer analysis method that the present embodiment provides, by the statement information reading multithread programs, pointer analysis is carried out to this program, in acquisition program, the overall situation is shared amount and locally shares amount, pointed collection and the memory access behavior for above-mentioned shared amount, based on the result of above-mentioned pointer analysis, realize the Compensation Analysis to sharing amount in program, obtaining may by definite value or/and quotes all results of the amount of sharing at its definite value point and invocation point for above-mentioned shared amount, namely the program that obtains is after any possible execution sequence, it shares amount by definite value or/and all possible outcomes quoted, solve in prior art and amount is shared to the overall situation that the pointer analysis of multithread programs is only confined in program, the incomplete problem of analysis result, improve the precision of pointer analysis, and correspondingly improve practical range and the effect of program optimization.
Embodiment two
The process flow diagram of a kind of pointer analysis method that Fig. 3 provides for the embodiment of the present invention two.As shown in Figure 3, the method for the present embodiment can comprise:
S200, receives the pointer analysis instruction that user sends;
S210, according to the statement information in the multithread programs that described pointer analysis instruction fetch is to be analyzed;
S220, shares judgment rule according to the overall situation and analyzes described program, and the overall situation obtained in described program shares amount;
When pointer analysis is carried out to program, judgment rule can be shared according to the overall situation and first determine that the overall situation in program shares amount, judgement for the overall situation amount of sharing analyzes based on the one-piece construction of program, particularly, this overall situation is shared judgment rule and is comprised: if variable can be accessed by least two threads in program simultaneously, then this variable is that the overall situation shares amount.
S230, carries out pointer analysis to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount;
Pointer analysis is carried out to each thread in program, obtain the pointed collection in each thread, and share amount and pointed collection based on the overall situation obtained, according to the respective rule of pointer algorithm, and then the local amount of sharing that can obtain in thread and the memory access behavior for all shared amounts.
In specific implementation, S230 comprises: S231, carries out pointer analysis to thread each in program, obtains the pointed collection in each thread; S232, share the shared judgment rule in amount, pointed collection and local according to the overall situation and analyze each thread, amount is shared in the local obtained in each thread; S233, shares amount according to the overall situation, local shares amount and each thread of pointed set pair is analyzed, obtain and measure corresponding memory access behavior with shared.
It should be noted that, above-mentioned local is shared judgment rule and can be comprised: if variable can as the suction parameter of certain thread in this program by other thread accesses in given thread, then this variable is that amount is shared in local; Or, if in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then this variable be local share amount; Or if variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then this variable is that amount is shared in local.
S240, the shared information according to described program compensates analysis to shared amount.
S250, adopts the result of described Compensation Analysis, is optimized process to described program.
The pointer analysis method that the present embodiment provides, by the statement information reading multithread programs, pointer analysis is carried out to this program, in acquisition program, the overall situation is shared amount and locally shares amount, pointed collection and the memory access behavior for above-mentioned shared amount, based on the result of above-mentioned pointer analysis, realize the Compensation Analysis to sharing amount in program, obtaining may by definite value or/and quotes all results of the amount of sharing at its definite value point and invocation point for above-mentioned shared amount, namely the program that obtains is after any possible execution sequence, it shares amount by definite value or/and all possible outcomes quoted, solve in prior art and amount is shared to the overall situation that the pointer analysis of multithread programs is only confined in program, the incomplete problem of analysis result, improve the precision of pointer analysis, and correspondingly improve practical range and the effect of program optimization.In addition, first the overall situation in routine analyzer shares amount, thus the memory access behavior of the local amount of sharing that can comprehensively obtain in thread and all shared amounts, make pointer analysis can obtain comprehensive analysis result with more excellent sequential processing program statement, further increase efficiency and the quality of program optimization.
Further, the pointer analysis method that the present embodiment provides, S232 specifically comprises: share amount, pointed collection and local according to the overall situation and share recognition rule, obtain the local variable may escaped in each thread; According to the local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the local variable that may escape is for sharing amount in local.
When specific implementation, recognition rule is shared in local can comprise four kinds of fundamental types, please refer to table 1, recognition rule is shared in the local of a kind of pointer analysis method provided for the embodiment of the present invention, specifically comprises assignment expression corresponding to Addr, Copy, Load and Store Four types and recognition rule is shared in local.
Table 1
Be described for the multithread programs of destructuring shown in Fig. 2, obviously, the variable gp in program can be accessed by thread 1,2 and 3 simultaneously, is the overall situation and shares amount; Local is shared to the judgement of amount, such as, the expression formula L=& R corresponding according to Addr, if the variables L of expression formula left part is for sharing amount, then the variable R of right part is the amount of sharing, and the nested sensing belonging to variable R concentrates all variablees to be all share amount, and therefore, the lz of the lx of program point A, the ly of program point F and program point G is the local variable possible escaped; Based on the local variable that may escape obtained, according to shared propagation rule, it is analyzed, the local variable that may be used by other threads that can obtain from the local variable that may escape, be local and share amount, please refer to table 2, propagation rule is shared in the local of a kind of pointer analysis method provided for the embodiment of the present invention, specifically comprises assignment expression corresponding to Copy, Load, Store and PHI Four types and propagation rule is shared in local.
Table 2
Similarly, the judgment mode sharing recognition rule with above-mentioned local is similar, such as, the expression formula L=R corresponding according to Copy, if the variable R of expression formula right part is for sharing amount, then the variables L of left part has shared attribute, and namely the attribute of " copy points to collection from shared amount R ", is expressed as L and has shared attribute " cpy_shared (R) "; Share propagation rule according to above-mentioned local and can determine the local variable that may be used by other threads from the known local variable that may escape, be local and share amount; The method of the shared propagation rule that the present embodiment provides, preferably, can based on static state list assignment (the Static Single Assignment to program, referred to as: expression SSA), the title of variablees all in i.e. differentiation program, an assignment is only had in a program to make all variablees, make the description of variable and program clear, be convenient to analyze, usually do not need to represent with SSA in practical programs, usual multiple variable can use a title, and the representation of described two kinds of variablees can be changed mutually.
It should be noted that, in above-mentioned table 1 and table 2, the judgment mode of rule is: molecule is set up, then perform the operation of denominator; Further, when specific implementation, all assignment expressions for locally sharing recognition rule and shared propagation rule can be converted to the expression formula of the Four types shown in table 1 and table 2 respectively.
Alternatively, the pointer analysis method that the present embodiment provides, comprises before S240: the statement information according to described program generates parallel control flow graph; According to described parallel control flow graph and described shared information generate for described program shared amount memory access figure (Shared Access Graph, referred to as: SAG); Correspondingly, S240 specifically comprises: compensate analysis according to described SAG to described shared amount.
Be described for the destructuring multithread programs shown in Fig. 2 equally, the SAG figure of a kind of multithread programs that Fig. 4 provides for the embodiment of the present invention.Common, statement information according to this multithread programs can generate parallel control flow graph, and the shared amount obtained by pointer analysis and the memory access behavior corresponding with it are generated the SAG figure of this program, SAG figure can demonstrate the memory access behavior sharing amount in the structure of this multithread programs and program point intuitively, on this basis, analysis can be compensated respectively to shared amount each in this multithread programs more accurately.
It should be noted that, for the program of carrying out pointer analysis, directly can compensate analysis to the result of pointer analysis, analysis is compensated by the mode generating SAG figure, can make to check that the programmer of analysis result obtains the information of pointer analysis and Compensation Analysis more intuitively, more be conducive to programmer and program is optimized.
Shared amount has corresponding definite value point and invocation point pair usually, and the present embodiment is in specific implementation, and S240 comprises: according to propagation judgment rule obtain definite value point and invocation point between can interactional shared amount; By definite value point and invocation point between the pointed collection of definite value point of interactional shared amount can propagate into corresponding invocation point.For program shown in Fig. 2, shared amount gp in this program, definite value point A is there is in thread 1, after program point A executes, the sensing collection of gp is updated to pts(lx), and, invocation point H and I is there is respectively in gp in thread 2 and 3, after Compensation Analysis, the sensing collection pts(lx of the definite value lx of program point A place gp) propagate into the invocation point of gp, i.e. program point H and I.Table 3 is for for the pointer analysis of program shown in Fig. 2 and Compensation Analysis result:
Share amount Definite value point Invocation point Compensation Analysis result
gp A H Gp may point to lx at H point, so lx may by definite value at H point
gp A I Gp may point to lx at I point, so lx may be cited at I point
gp F C Lp may point to ly at C point, so ly may by definite value at C point
gp G C Lp may point to lz at C point, so lz may by definite value at C point
gp G I Gp may point to lz at I point, so lz may be cited at I point
lx H E Lx may point to lb at E point
lx C I Lx may point to pts (la) at I point
lz C I Lz may point to pts (la) at I point
lz H I Lz may point to lb at I point
lx H I Lx may point to lb at I point
Table 3
In specific implementation, above-mentioned propagation judgment rule comprises: may walk abreast mutually between program point X and Y, is only and can compensates mutually between namely only likely parallel definite value point and invocation point; Or program point Y can reach via program X point, and program point X backward control can reach other definite value for shared amount of program point Y.
The present embodiment provides ground pointer analysis method, for the result of pointer analysis, realizing sharing the Compensation Analysis that amount points to collection program from the definite value point of shared amount and the right propagation judgment rule of invocation point, obtaining for sharing the more accurate analysis result of amount in program after Compensation Analysis; Further, in the method that the embodiment of the present invention provides, shared amounts all in leading acquisition multithread programs, specifically comprise the shared amount of the overall situation and local, analysis is compensated based on acquired above-mentioned shared amount, therefore, by means of only carry out single compensation analysis just can in acquisition program all shared amounts by definite value or/and all possible outcomes quoted, further improve the efficiency of pointer analysis.
Embodiment three
The structural representation of a kind of pointer analysis device that Fig. 5 provides for the embodiment of the present invention three.As shown in Figure 5, the pointer analysis device that the present embodiment provides, specifically comprises: read module 11, pointer analysis module 12 and Compensation Analysis module 13.
Wherein, read module 11, for reading the statement information in multithread programs to be analyzed;
Pointer analysis module 12, statement information for the described program read according to read module 11 carries out pointer analysis to described program, obtain the shared information of described program, described shared information comprises the amount of sharing, pointed collection and memory access behavior, wherein, shared amount comprise the overall situation share amount and local share amount;
Compensation Analysis module 13, the shared information for the described program obtained according to pointer analysis module 12 compensates analysis to described shared amount.
The pointer analysis method that the pointer analysis device that the embodiment of the present invention provides provides for performing the embodiment of the present invention one, possess corresponding functional module, it realizes principle and technique effect is similar, repeats no more herein.
Alternatively, the structural representation of a kind of pointer analysis device that Fig. 6 provides for the embodiment of the present invention, on the basis of above-mentioned Fig. 5 shown device, the pointer analysis device that the present embodiment provides, also comprise: receiver module 14, for read the statement information in multithread programs to be analyzed at read module 11 before, receive the pointer analysis instruction that user sends; Correspondingly, read module 11, specifically for the statement information in multithread programs to be analyzed described in the described pointer analysis instruction fetch that receives according to receiver module 14.
Further, the pointer analysis device that the present embodiment provides, also comprise: optimize module 15, after for the shared information of described program that obtains according to pointer analysis module 12 in Compensation Analysis module 13 analysis being compensated to described shared amount, adopt the result of described Compensation Analysis, process is optimized to described program.
Embodiment four
The structural representation of a kind of pointer analysis device that Fig. 7 provides for the embodiment of the present invention four.As shown in Figure 7, the pointer analysis device that the present embodiment provides is on the basis of Fig. 6 shown device structure, and described pointer analysis module 12, comprising: process analysis unit 16, analyze described program for sharing judgment rule according to the overall situation, the overall situation obtained in described program shares amount; Thread Analysis unit 17, for carrying out pointer analysis to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
The present embodiment is in specific implementation, and the above-mentioned overall situation is shared judgment rule and comprised: if variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
Further, in the pointer analysis device that the present embodiment provides, described Thread Analysis unit 17, specifically for carrying out pointer analysis to thread each in program, obtains the pointed collection in each thread; And share the shared judgment rule in amount, pointed collection and local according to the overall situation to analyze each thread, amount is shared in the local obtained in each thread; And then share amount according to the overall situation, local shares amount and each thread of pointed set pair is analyzed, obtain and measure corresponding memory access behavior with shared.
It should be noted that, above-mentioned local is shared judgment rule and can be comprised: if variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then this variable is that amount is shared in local; Or, if in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then this variable be local share amount; Or if variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then this variable is that amount is shared in local.
Further, in the pointer analysis device that the present embodiment provides, described Thread Analysis unit 17 is analyzed each thread for sharing the shared judgment rule in amount, pointed collection and local according to the overall situation, amount is shared in the local obtained in each thread, specifically comprise: share recognition rule for sharing amount, pointed collection and local according to the overall situation, obtain the local variable may escaped in each thread; And according to the local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the local variable that may escape is for sharing amount in local.
Alternatively, the pointer analysis device that the present embodiment provides also comprises: Computer image genration module 18, before compensating analysis for the shared information of described program that obtains according to pointer analysis module 12 in Compensation Analysis module 13 respectively to each shared amount, the statement information according to program generates parallel control flow graph; And generate the shared amount memory access figure SAG for program according to this parallel control flow graph and shared information; Correspondingly, described Compensation Analysis module 13, compensates analysis specifically for the SAG generated according to Computer image genration module 18 to shared amount.The present embodiment is when specific implementation, and above-mentioned shared measurer has corresponding definite value point and invocation point pair; Correspondingly, described Compensation Analysis module 13, comprising: judging unit 19, for obtain according to propagation judgment rule described definite value point and invocation point between can interactional shared amount; Propagation unit 20, for definite value point that judging unit 19 is obtained and invocation point between the pointed collection of definite value point of interactional shared amount can propagate into corresponding invocation point.
The pointer analysis method that the pointer analysis device that the embodiment of the present invention provides provides for performing the embodiment of the present invention two, possess corresponding functional module, it realizes principle and technique effect is similar, repeats no more herein.
Embodiment five
The structural representation of a kind of terminal device that Fig. 8 provides for the embodiment of the present invention five.As shown in Figure 8, the terminal device that the present embodiment provides, specifically comprises: processor 21 and receiver 22.
Wherein, processor 21, for reading the statement information in multithread programs to be analyzed;
Described processor 21, also carry out pointer analysis for the statement information according to described program to described program, obtain the shared information of described program, described shared information comprises the amount of sharing, pointed collection and memory access behavior, wherein, shared amount comprise the overall situation share amount and local share amount;
Described processor 21, also compensates analysis for the shared information according to described program to described shared amount.
Receiver 22, for read the statement information in multithread programs to be analyzed at described processor 21 before, receives the pointer analysis instruction that user sends; Correspondingly, described processor 21, specifically for the statement information in multithread programs to be analyzed described in the described pointer analysis instruction fetch that receives according to receiver 22.
The pointer analysis method that the terminal device that the embodiment of the present invention provides provides for performing the embodiment of the present invention one, possess corresponding entity apparatus, it realizes principle and technique effect is similar, repeats no more herein.
Further, the terminal device that the present embodiment provides, described processor 21, also for after compensating analysis according to the shared information of described program to described shared amount, adopts the result of described Compensation Analysis, is optimized process to described program.
Embodiment six
Please refer to Fig. 8, the structural representation of a kind of terminal device also provided for the embodiment of the present invention six.The terminal device structure of this enforcement is identical with the terminal device structure that embodiment five provides, but functions of modules is different, in the present embodiment: described processor 21, analyze described program specifically for sharing judgment rule according to the overall situation, the overall situation obtained in described program shares amount; And pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
The present embodiment is in specific implementation, and the above-mentioned overall situation is shared judgment rule and comprised: if variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
Further, in the terminal device that the present embodiment provides, described processor 21 is for carrying out pointer analysis to thread each in described program, obtain the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount, specifically comprise: for carrying out pointer analysis to thread each in program, obtain the pointed collection in each thread; And share the shared judgment rule in amount, pointed collection and local according to the overall situation to analyze each thread, amount is shared in the local obtained in each thread; And then share amount according to the overall situation, local shares amount and each thread of pointed set pair is analyzed, obtain and measure corresponding memory access behavior with shared.
It should be noted that, above-mentioned local is shared judgment rule and can be comprised: if variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then this variable is that amount is shared in local; Or, if in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then this variable be local share amount; Or if variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then this variable is that amount is shared in local.
Further, in the terminal device that the present embodiment provides, described processor 21 is analyzed each thread for sharing the shared judgment rule in amount, pointed collection and local according to the overall situation, amount is shared in the local obtained in each thread, specifically comprise: share recognition rule for sharing amount, pointed collection and local according to the overall situation, obtain the local variable may escaped in each thread; And according to the local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the local variable that may escape is for sharing amount in local.
Alternatively, the terminal device that the present embodiment provides, described processor 21, also for before compensating analysis according to the shared information of program respectively to each shared amount, the statement information according to program generates parallel control flow graph; And generate the shared amount memory access figure SAG for program according to this parallel control flow graph and shared information; Correspondingly, described processor 21 compensates analysis for the shared information according to described program to described shared amount, specifically comprises: for compensating analysis according to SAG to shared amount.The present embodiment is when specific implementation, and above-mentioned shared measurer has corresponding definite value point and invocation point pair; Correspondingly, described processor 21 compensates analysis for the shared information according to described program to described shared amount, specifically comprises: for obtain according to propagation judgment rule described definite value point and invocation point between can interactional shared amount; And by definite value point and invocation point between the pointed collection of definite value point of interactional shared amount can propagate into corresponding invocation point.
The pointer analysis method that the terminal device that the embodiment of the present invention provides provides for performing the embodiment of the present invention two, possess corresponding entity apparatus, it realizes principle and technique effect is similar, repeats no more herein.
One of ordinary skill in the art will appreciate that: all or part of step realizing above-mentioned each embodiment of the method can have been come by the hardware that programmed instruction is relevant.Aforesaid program can be stored in a computer read/write memory medium.This program, when performing, performs the step comprising above-mentioned each embodiment of the method; And aforesaid storage medium comprises: ROM, RAM, magnetic disc or CD etc. various can be program code stored medium.
Last it is noted that above each embodiment is only in order to illustrate technical scheme of the present invention, be not intended to limit; Although with reference to foregoing embodiments to invention has been detailed description, those of ordinary skill in the art is to be understood that: it still can be modified to the technical scheme described in foregoing embodiments, or carries out equivalent replacement to wherein some or all of technical characteristic; And these amendments or replacement, do not make the essence of appropriate technical solution depart from the scope of various embodiments of the present invention technical scheme.

Claims (20)

1. a pointer analysis method, is characterized in that, comprising:
Read the statement information in multithread programs to be analyzed;
Statement information according to described program carries out pointer analysis to described program, obtains the shared information of described program, and described shared information comprises the amount of sharing, pointed collection and memory access behavior, and wherein, shared amount comprises overall sharing and measures and the shared amount in local;
Shared information according to described program compensates analysis to described shared amount.
2. method according to claim 1, is characterized in that, the described statement information according to described program carries out pointer analysis to described program, obtains the shared information of described program, comprising:
Share judgment rule according to the overall situation to analyze described program, the overall situation obtained in described program shares amount;
Pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
3. method according to claim 2, is characterized in that, the described overall situation is shared judgment rule and comprised:
If variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
4. according to the method in claim 2 or 3, it is characterized in that, described pointer analysis carried out to thread each in described program, obtain the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount, comprising:
Pointer analysis is carried out to thread each in described program, obtains the pointed collection in each thread;
Share the shared judgment rule in amount, described pointed collection and local according to the described overall situation to analyze each thread, amount is shared in the local obtained in each thread;
Share amount according to the described overall situation, described local shares amount and each thread of described pointed set pair is analyzed, and obtains the memory access behavior corresponding with described shared amount.
5. method according to claim 4, is characterized in that, described local is shared judgment rule and comprised:
If variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then described variable is that amount is shared in local; Or,
If in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then described variable be local share amount; Or,
If variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then described variable is that amount is shared in local.
6. the method according to claim 4 or 5, is characterized in that, describedly shares amount, described pointed collection and local according to the described overall situation and shares judgment rule and analyze each thread, obtains local in each thread and shares amount, comprising:
Share amount, described pointed collection and local according to the described overall situation and share recognition rule, obtain the local variable may escaped in each thread;
According to the described local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the described local variable that may escape is that amount is shared in local.
7., according to described method arbitrary in claim 1 ~ 6, it is characterized in that, the described shared information according to described program also comprises before compensating analysis respectively to each shared amount:
Statement information according to described program generates parallel control flow graph;
The shared amount memory access figure SAG for described program is generated according to described parallel control flow graph and described shared information;
The described shared information according to described program compensates analysis to described shared amount, comprising:
According to described SAG, analysis is compensated to described shared amount.
8., according to described method arbitrary in claim 1 ~ 7, it is characterized in that, described shared measurer has corresponding definite value point and invocation point pair; The described shared information according to described program compensates analysis to described shared amount, comprising:
According to propagation judgment rule obtain described definite value point and invocation point between can interactional shared amount;
By described definite value point and invocation point between the pointed collection of described definite value point of interactional shared amount can propagate into corresponding invocation point.
9., according to described method arbitrary in claim 1 ~ 8, it is characterized in that, before the statement information in the multithread programs that described reading is to be analyzed, also comprise:
Receive the pointer analysis instruction that user sends;
Statement information in the multithread programs that described reading is to be analyzed, comprising:
Statement information in multithread programs to be analyzed according to described pointer analysis instruction fetch.
10. the method according to any one of claim 1 ~ 9, is characterized in that, the described shared information according to described program also comprises after compensating analysis to described shared amount:
Adopt the result of described Compensation Analysis, process is optimized to described program.
11. 1 kinds of pointer analysis devices, is characterized in that, comprising:
Read module, for reading the statement information in multithread programs to be analyzed;
Pointer analysis module, statement information for the described program read according to described read module carries out pointer analysis to described program, obtain the shared information of described program, described shared information comprises the amount of sharing, pointed collection and memory access behavior, wherein, shared amount comprise the overall situation share amount and local share amount;
Compensation Analysis module, the shared information for the described program obtained according to described pointer analysis module compensates analysis to described shared amount.
12. devices according to claim 11, is characterized in that, described pointer analysis module, comprising:
Process analysis unit, analyzes described program for sharing judgment rule according to the overall situation, and the overall situation obtained in described program shares amount;
Thread Analysis unit, for carrying out pointer analysis to thread each in described program, obtains the pointed collection in each thread, amount is shared in local and the memory access behavior corresponding with described shared amount.
13. devices according to claim 12, is characterized in that, the described overall situation is shared judgment rule and comprised:
If variable can be accessed by least two threads in program simultaneously, then described variable is that the overall situation shares amount.
14. devices according to claim 12 or 13, is characterized in that, described Thread Analysis unit, specifically for carrying out pointer analysis to thread each in described program, obtaining the pointed collection in each thread; And share the shared judgment rule in amount, described pointed collection and local according to the described overall situation to analyze each thread, amount is shared in the local obtained in each thread; And then analyze according to the shared amount of the described overall situation, the shared amount in described local and each thread of described pointed set pair, obtain the memory access behavior corresponding with described shared amount.
15. devices according to claim 14, is characterized in that, described local is shared judgment rule and comprised:
If variable can as the suction parameter of certain thread in described program by other thread accesses in given thread, then described variable is that amount is shared in local; Or,
If in given thread variable can by by the mode of the overall situation amount of sharing indirect referencing by other thread accesses, then described variable be local share amount; Or,
If variable can share the assignment of amount in given thread by the overall situation, make the sensing collection of described variable comprise the described overall situation and share amount, then described variable is that amount is shared in local.
16. devices according to claims 14 or 15, it is characterized in that, described Thread Analysis unit is used for sharing the shared judgment rule in amount, described pointed collection and local according to the described overall situation and analyzes each thread, and amount is shared in the local obtained in each thread, specifically comprises:
Share recognition rule for sharing amount, described pointed collection and local according to the described overall situation, obtain the local variable may escaped in each thread;
And according to the described local variable that may escape and shared propagation rule, determine that the local variable that may be used by other threads obtained from the described local variable that may escape is that amount is shared in local.
17. according to described device arbitrary in claim 11 ~ 16, it is characterized in that, also comprise: Computer image genration module, before compensating analysis for the shared information of described program that obtains according to described pointer analysis module in described Compensation Analysis module respectively to each shared amount, the statement information according to described program generates parallel control flow graph; And generate the shared amount memory access figure SAG for described program according to described parallel control flow graph and described shared information;
Described Compensation Analysis module, compensates analysis specifically for the described SAG according to described Computer image genration CMOS macro cell to described shared amount.
18. according to described device arbitrary in claim 11 ~ 17, and it is characterized in that, described shared measurer has corresponding definite value point and invocation point pair; Described Compensation Analysis module, comprising: judging unit, for obtain according to propagation judgment rule described definite value point and invocation point between can interactional shared amount;
Propagation unit, for described definite value point that described judging unit is obtained and invocation point between the pointed collection of described definite value point of interactional shared amount can propagate into corresponding invocation point.
19., according to described device arbitrary in claim 11 ~ 18, is characterized in that, also comprise: receiver module, for read the statement information in multithread programs to be analyzed at described read module before, receive the pointer analysis instruction that user sends;
Described read module, specifically for the described pointer analysis instruction received according to described receiver module, reads the statement information in described multithread programs to be analyzed.
20. devices according to any one of claim 11 ~ 18, it is characterized in that, also comprise: optimize module, after for the shared information of described program that obtains according to described pointer analysis module in described Compensation Analysis module analysis being compensated to described shared amount, adopt the result of described Compensation Analysis, process is optimized to described program.
CN201310589292.2A 2013-11-20 2013-11-20 Pointer analysis method and device Expired - Fee Related CN104657257B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310589292.2A CN104657257B (en) 2013-11-20 2013-11-20 Pointer analysis method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310589292.2A CN104657257B (en) 2013-11-20 2013-11-20 Pointer analysis method and device

Publications (2)

Publication Number Publication Date
CN104657257A true CN104657257A (en) 2015-05-27
CN104657257B CN104657257B (en) 2017-11-17

Family

ID=53248426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310589292.2A Expired - Fee Related CN104657257B (en) 2013-11-20 2013-11-20 Pointer analysis method and device

Country Status (1)

Country Link
CN (1) CN104657257B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229286A1 (en) * 2007-03-14 2008-09-18 Nec Laboratories America, Inc. System and method for scalable flow and context-sensitive pointer alias analysis
CN101833631A (en) * 2010-02-09 2010-09-15 北京理工大学 Pointer analysis-combined software security hole dynamic detection method
CN102760095A (en) * 2011-04-25 2012-10-31 清华大学 Dynamic data race detection method based on static shared variable recognition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229286A1 (en) * 2007-03-14 2008-09-18 Nec Laboratories America, Inc. System and method for scalable flow and context-sensitive pointer alias analysis
CN101833631A (en) * 2010-02-09 2010-09-15 北京理工大学 Pointer analysis-combined software security hole dynamic detection method
CN102760095A (en) * 2011-04-25 2012-10-31 清华大学 Dynamic data race detection method based on static shared variable recognition

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
付小朋 等: ""一种面向动态链状数据结构的指针定值引用链算法"", 《小型微型计算机系统》 *

Also Published As

Publication number Publication date
CN104657257B (en) 2017-11-17

Similar Documents

Publication Publication Date Title
US10268454B2 (en) Methods and apparatus to eliminate partial-redundant vector loads
CN101937388B (en) High-extensibility and high-maintainability source code defect detection method and device
US7661095B2 (en) System and method to build a callgraph for functions with multiple entry points
Zois et al. Massively parallel skyline computation for processing-in-memory architectures
US20190220387A1 (en) Unexplored branch search in hybrid fuzz testing of software binaries
Chen et al. Coverage prediction for accelerating compiler testing
CN103294598A (en) Method and device for source code inspection
EP3254191A1 (en) Apparatus and method for using parameterized intermediate representation for just-in-time compilation in database query execution engine
US8359291B2 (en) Architecture-aware field affinity estimation
US20100275206A1 (en) Standalone software performance optimizer system for hybrid systems
CN109388573B (en) Error detection method and system during running of interrupt-driven program without false alarm
Danielsson et al. Measurement-based evaluation of data-parallelism for opencv feature-detection algorithms
CN115237920A (en) Load-oriented data index recommendation method and device and storage medium
Pena et al. A framework for tracking memory accesses in scientific applications
Muddukrishna et al. Characterizing task-based OpenMP programs
Schmitt et al. Energy-efficiency comparison of common sorting algorithms
CN112947932A (en) Method and device for optimizing vectorization in compiling process and electronic equipment
CN114969446B (en) Grouping hybrid precision configuration scheme searching method based on sensitivity model
CN103955394A (en) GPU (Graphic Processing Unit) virtualization optimization method based on delayed submitting
CN104657257A (en) Pointer analysis method and device
CN114389978B (en) Network protocol side channel detection method and system based on static stain analysis
JP5521687B2 (en) Analysis apparatus, analysis method, and analysis program
Guo et al. Graphspy: Fused program semantic embedding through graph neural networks for memory efficiency
Jha et al. Data-type aware arithmetic intensity for deep neural networks
Albert et al. Quantified abstract configurations of distributed systems

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171117

Termination date: 20201120