A system and a method are described for optimizing the sequencing and time requirements for compiling large sets of source code residing in multiple hierarchical file directories using an abstracted logical description of the hierarchical file relations existing between directories. The system consists of a logic processor working in concert with input and output file registers, a match register, and an abstracted tree register for the purpose of creating a identifying, comparing, and sequencing file names in a final description of the global directory. The method iteratively identifies the primary input files and the intermediate input files for a given output file for each of a series of directories, inverts the casual relationship between the output file and its intermediary input files, and accumulates and stores these relationships in a sequential manner for subsequent use.
A method is disclosed for operating a computer system in order to validate data stored in a plurality of data files in a database. Each of the data files have an associated file type and are arranged in a plurality of data stores in the database. At least one of the data files is a data dependent file which contains data dependent upon data in one or more other files of the data store. The method includes the steps of selecting a file locator which is associated with a respective one data store in the database, via the selected file locator identifying a first dependent file and identifying one or more other files on which said first file is dependent. For each identified file a first file reader is selected which is associated with the file type of the identified file. Via each selected first file reader a predetermined parameter of the identified file is determined. The method further includes the steps of comparing the predetermined parameter from the first file with that from the or each other file and responsive to the comparison step providing an output signal for each data file indicating whether the data file is valid.
A method and system for minimizing the cycle time when compiling a program in a computer system is disclosed. The program includes a plurality of directories and each of the directories includes a code file. The method and system comprises the steps of providing a master array of directories of the program, wherein the master array lists the dependencies of the directories; providing a code change to the program to provide an updated program; providing associated dependency changes to the master array to provide an updated master array; and compiling the updated program utilizing the updated master array wherein the code files of the directories are compiled in an ordered manner based upon the dependencies of the plurality of directories. Through the use of the method and system in accordance with the present invention, compile cycle time for large programs is significantly reduced. A second advantage is that since the dependencies are updated substantially simultaneously with code changes, there are minimal dependency violations and therefore few deadlocks.
A project analysis system and method is described to allow for automated generation of scalable bootable applications and downloadable applications, preferably in connection with an integrated development environment (IDE). The project analysis system and method includes facilities for automatically identifying and including software components in application development projects based on symbol dependencies and component dependencies. The project analysis system and method also includes facilities for automatically identifying and removing software components in application development projects where no symbol dependencies or component dependencies exist, thereby removing unused code. A graphical user interface is provided for user display and selection of includable and excludable components.
A method for increasing the processing speed of database instructions using a page prefetch cache. More particularly, the method is executed on a microprocessor and reduces database cache misses and improves the processing speed. The method comprises enabling a page prefetch cache with a database application, issuing one or more page prefetch instructions, and determining whether the particular database page is in the page prefetch cache.
A method and apparatus for transforming a source executable code optimized for a source processor into a target executable code optimized for execution on a target processor is provided. Initially, the source executable is converted into a functionally equivalent source executable capable of execution on the target processor. Next, execution performance information for each basic block of code in the functionally equivalent source executable code is collected. Similarly, execution performance information for each basic block of code in an initial target executable code is also collected. As a next step, an optimization metric is generated for each basic block of code within the functionally equivalent source executable code and for each basic block of code within the initial target executable code. These optimization metrics are used to compare basic blocks in the functionally equivalent source executable code with basic block of code within the initial target executable code. To perform this comparison, the optimization metric for each basic block of code within the initial target executable code is associated with the corresponding optimization metric associated with each basic block of code within the functionally equivalent source executable code. Next, based upon the corresponding optimization metric for each basic block, it is determined which basic blocks of code in the initial target executable code and the functionally equivalent source executable code have higher execution performance. Next, a target executable code is generated using a combination of basic blocks of code from the initial target executable code and the functionally equivalent source executable code which exhibit higher execution performance. Then, each basic block in the target executable code is optimized in a predetermined order typically based upon the elapsed execution time.