摘要:
A fast and efficient way of performing extended global value numbering beyond basic blocks and extended basic blocks on a complete topological ordering of basic blocks in a program. Global value numbering is further extended with a Value Number List, an ordered list of value numbers of an expression, and iterative processing of a worklist containing expressions which are recursively defined. A hash table is used to reduce storage and processing time.
摘要:
Method of, system for, and computer program product for generating efficient code for a set of nested Fortran 90 array constructors without introducing temporary vectors by the use of normalized counters and by maintaining array constructor extent structure trees. Non-perfectly nested array constructors and array constructors with dynamic extents may be inlined. The results provided include a reduction in run-time memory storage usage and an improvement in execution time performance.
摘要:
A system and method for passing arrays and structures as host variables to a stored procedure. An application program packs an array or structure into a binary large object (BLOB) and sends the BLOB to a database management system. An adapter called by the database management system, and coupled to the stored procedure, passes a reference to the data area in the BLOB to the stored procedure. After completion of the stored procedure, the BLOB is returned to the application program. Finally, upon the return from the stored procedure call, the application program unpacks the BLOB back into the array or structure.
摘要:
Code motion and redundancy removal based on an Extended Global Value Numbering technique which performs value numbering beyond basic blocks and extended basic blocks. Full redundancies and partial redundancies are identified and iteratively processed until they are no longer movable or removable in the program. The identification and processing is aided by the use of Value Number Lists and Value Number Sets. Provides improved optimization of redundancy and partial redundancy with reduced compilation time and reduced storage.
摘要:
A fast and efficient way of performing global value numbering beyond basic blocks and extended basic blocks on a complete topological ordering of basic blocks in a program. Global value numbering makes use of an unknown value number and iterative processing of a worklist containing expressions assigned an unknown value number. A hash table is used to reduce storage and processing time.
摘要:
A system and method for translating source code, comprising high level source code with embedded SQL statements, to p-code or machine-language instructions by a one-pass parsing mechanism. The one-pass parsing mechanism generates executable code without the need to generate an intermediate file. Additionally, the p-code or machine-language instructions are annotated with references to the line numbers of the corresponding source code, thereby allowing a source level debugger to debug the source code with embedded SQL statements.
摘要:
A system and method for building and linking an interpretive procedure so as to enable a compiled computer program to invoke the interpretive procedure are described herein. A target object code is modified to include information identifying files associated with the interpretive procedure. A compiled representation of the interpretive procedure is generated by linking together adapter code, the modified target object code, and an interpreter. The compiled representation of the interpretive procedure is invocable by a compiled computer program. The adapter code is in binary and includes an interpreter command module. The interpreter command module when executed causes the interpreter to load and interpretively execute the files associated with the interpretive procedure. The adapter code also includes a parameter conversion module, which converts the parameter list to the interpretive computer language of the interpretive procedure.
摘要:
A system and method for translating source code, comprising high level source code with embedded SQL statements, to p-code or machine-language instructions by a one-pass parsing mechanism. The one-pass parsing mechanism generates executable code without the need to generate an intermediate file. Additionally, the p-code or machine-language instructions are annotated with references to the line numbers of the corresponding source code, thereby allowing a source level debugger to debug the source code with embedded SQL statements.
摘要:
FORTRAN WHERE construct compilation and optimization is provided by excluding an assignment statement containing a transformational intrinsic function from loop fusion of the WHERE construct. To perform this loop fusion, intrastatement dependence analysis is performed within each assignment statement of the WHERE construct, and then interstatement dependence analysis is performed between each assignment statement and assignment statements subsequent to the assignment statement. Responsive to this dependence analysis, pairs of assignment statements which may not be fused into a single loop are identified, and non-fusion boundaries between adjacent assignment statements where assignment statements preceding a non-fusion boundary and assignment statements subsequent to the non-fusion boundary may not be fused into a single loop are identified. This fusion analysis yields a loop fusion configuration. After the loop fusion configuration is identified and the rank of any temporary expression is determined, code generation is performed by scalarizing each assignment statement. This provides better optimization than the conventional straight forward approach to compiling a WHERE construct, and further provides an optimized compilation of a WHERE construct by the use of less compilation time than that required by conventional high-level optimization.
摘要:
Described herein is a system and method for enabling an application to pass a structure containing a pointer member to an external entity, wherein the application represents a computer program executing in a computer system, and the computer program is written in a computer programming language that does not support pointers. The application declares a variable V, a structure type having a member P, and a variable M of the structure type. The application invokes a function written in a computer programming language that supports pointers. A reference to the variable V is passed to the function. The function, when executed, obtains and returns an address of the variable V. The application sets the member P in the variable M equal to the address of the variable V. The application then passes the variable M to an external entity. In this manner, the present invention enables a structure having a pointer embedded therein to be passed to the external entity.