摘要:
Functionality from an object file can be incorporated into an already existing binary file. Functions from the object file can be intelligently inserted into the binary file with the guidance of control flow analysis of both the binary file and the object file. Symbols not defined in the symbol table of the binary file are added to the symbol table of the binary file. When symbols of the object file and the binary file overlap, then priority is given to the object file symbol definitions. The ability to incorporate functionality from an object file into an existing binary file reduces logistical overhead and provides flexibility in code development and maintenance.
摘要:
A code placement technique that organizes code units to at least reduce layout conflicts among caller/callee code units. A code preparation environment determines those code units of a code representation that have overlapping memory mappings with their counterpart caller/callee code units. To at least reduce the layout conflicts, or overlapping memory mappings, the code preparation environment arranges the caller/callee code units to eliminate the layout conflicts among the caller/callee code units.
摘要:
Automatically executing commands to process code (e.g., compile commands, interpret commands, etc.) and recording code characteristic metric values (e.g., file size, execution time, etc.) allows automatic code tuning. The automatic turning system may execute predefined commands on codes, automatically intelligently build commands, both execute predefined commands and intelligently build upon those predefined commands, etc. With the automatic intelligent building of commands to build more effective commands, an automatic tuning system can efficiently and judiciously search through available code development tool options to find the more effective combinations of options to generate executable codes.
摘要:
Indication of uncoverage information allows tests to be tailored to target those uncovered code units with the most potential to increase coverage of a program. A tool examines coverage information of a program to identify code units of the program that were not covered by test data used to exercise the program. The tool also examines structural information (e.g., control flow) for the program to identify those of the uncovered code units that have direct control flow from a corresponding covered code unit (“root level uncovered code units”). The coverage tool then measures potential impact on coverage for each of the root level uncovered code units.
摘要:
A method for creating a unified binary file that may be executed on a plurality of hardware platforms. The unified binary file includes hardware independent code and a plurality of hardware dependent binary files for a variety of hardware platforms. When the unified binary file is executed on a supported hardware platform, an appropriate hardware dependent file is identified and installed. A method for preparing a software package supported on a plurality of hardware platforms for distribution. A unified binary file is created for each corresponding file of the software package. Each unified binary file includes installation directory information and dependent file information.
摘要:
Monitoring system wide task dispatch allows dynamic adaptation to conditions of a system. A monitor tracks the total tasks currently dispatched to the system. In a system with multiple processing units, this monitor is centralized and collects information about tasks dispatched to each of the processing units. The monitor compares the total dispatched tasks against a threshold that has already been defined. Further dispatching of tasks to the system is regulated based on comparison of the total dispatched tasks against the threshold. If the comparison achieves a trigger condition (e.g., total dispatched tasks exceeding the threshold), then task dispatch is throttled. Throttling further task dispatching, as long as the threshold is exceeded, allows progress to continue without overwhelming the system.
摘要:
Automatically executing commands to process code (e.g., compile commands, interpret commands, etc.) and recording code characteristic metric values (e.g., file size, execution time, etc.) allows automatic code tuning. The automatic turning system may execute predefined commands on codes, automatically intelligently build commands, both execute predefined commands and intelligently build upon those predefined commands, etc. With the automatic intelligent building of commands to build more effective commands, an automatic tuning system can efficiently and judiciously search through available code development tool options to find the more effective combinations of options to generate executable codes.
摘要:
Sweeping through the code development options of a code development command allows diagnosis of a failure resulting from execution of the code development command on a given code. Successively modifying the code development command, such as successively removing code development options, automatically allows efficient examination of a failure. Executing each modified version of the code development command and recording results of the executions generates information that can expeditiously identify correspondence between a failure and one or more of the code development options.
摘要:
Platform independent processing of the source code is performed, such as lexical analysis, semantic analysis, syntax analysis, and platform independent optimization, and an intermediate representation of the source code is generated. This intermediate representation is carried forward into the next stage of processing, which is platform dependent processing. The intermediate representation undergoes machine specific analysis and an executable representation (i.e., executable code) of the source code for a particular platform is generated. However, the intermediate representation, which has not been converted to a machine specific representation, is included with the executable representation. The source code can essentially be ported to a different platform by extracting the intermediate representation and performing platform dependent processing on the intermediate representation. The extracted intermediate representation, which has already undergone platform independent processing, is processed for the target platform and an executable representation for the target platform is generated.
摘要:
Indication of uncoverage information allows tests to be tailored to target those uncovered code units with the most potential to increase coverage of a program. A tool examines coverage information of a program to identify code units of the program that were not covered by test data used to exercise the program. The tool also examines structural information (e.g., control flow) for the program to identify those of the uncovered code units that have direct control flow from a corresponding covered code unit (“root level uncovered code units”). The coverage tool then measures potential impact on coverage for each of the root level uncovered code units.