G06F8/37

Redundant Instance Variable Initialization Elision
20170293547 · 2017-10-12 ·

A compiler, IDE or other code analyzer may determine whether an instance variable declaration assignment is redundant. The code analyzer may also take action based on that determination. A code analyzer may be able to determine with certainty that a particular instance variable initialization or assignment is definitely redundant. The code analyzer may cause a compiler to automatically elide the redundant assignment from compiled source code. The code analyzer may be able to determine with certainty that a particular assignment is definitely not redundant. Additionally, a code analyzer may not be able to determine with certainty whether an instance variable assignment is definitely redundant or definitely not redundant. Additionally, the code analyzer may report a warning or other informative message indicating the redundancy property of the assignment, thus alerting the programming to a (possibly) redundant assignment.

DATA PROCESSING METHOD
20170242602 · 2017-08-24 ·

A method of data processing comprises a first instance of a computer program allocating a first contiguous portion of memory for storing program heap variables. The first instance processes data including storing variables in the program heap. When the first instance is to cease data processing, the first contiguous portion of memory is copied to persistent memory. A second instance of the computer program allocates a second contiguous portion of memory for storing program heap variables, the second contiguous portion of memory being at least as large as the first contiguous portion of memory. The second instance copies the persistent memory into the second contiguous portion of memory; and resumes processing data based on variables stored in the program heap in the second contiguous portion of memory.

FEATURE ESTIMATING DEVICE, FEATURE ESTIMATING METHOD AND COMPUTER-READABLE MEDIUM
20220269490 · 2022-08-25 · ·

A feature estimating device includes a parser identifying means for identifying a parser, the parser being contained in software, for parsing user input and executing a relevant command, a dividing means for extracting commands form a character string in the parser and clustering control flows connecting with the extracted commands as starting points to divide a code of the software for each feature, and a feature estimating means for estimating, based on a characteristic part of each divided code, a feature for each divided code.

Memory Compiler Techniques

Various implementations described herein are directed to a system and methods for memory compiling. For instance, a method may include selecting source corners from a memory compiler configuration and generating a standardized set of memory instances for the selected source corners. Also, the method may include deriving a reduced set of memory instances based on the standardized set of memory instances and building a memory compiler database for a compiler space based on the standardized set of memory instances and the reduced set of memory instances.

AUTOMATIC CORRECTNESS AND PERFORMANCE MEASUREMENT OF BINARY TRANSFORMATION SYSTEMS

Disclosed is a test engine intended to evaluate the correctness and measure the performance effects of a binary transformation technique. The disclosed system takes source code as input and compiler information/flags as input. The transformation-under-test is applied to the compiler, creating a transformed compiler. A random test case generator residing within the test engine for injecting illegal code structures to modify the project source code, build flags, or compiler's operating environment, thereby creating an unlimited number of input test cases for the compiler. The test engine compiles the source code utilizing both the raw and transformed compilers and compares the results. For example, the test engine renders a pass/fail judgement on the binary transformation based on a metric of near equivalence between the results of the raw compiler and transformed compiler. By using one or more bitmasks, the evaluation process factors in differences attributed to compiler run-time generated artifacts.

COMPILER PLUGIN FOR SPECIAL-PURPOSE COMPUTER PROCESSORS WITH DUAL SUPPORT FOR DESIGN VERIFICATION AND RELEASE PACKAGING
20220207210 · 2022-06-30 ·

A compiler (CPL) plugin comprises a TC to, responsive to a new DV test, read configuration settings and selects appropriate plugin processes based on the configuration settings. An API interface can generate images that control the special purpose processor during a stage of a plurality of stages for a CPL-related design verification (DV) test and call selected plugin processes. A common compiler module comprising a common function codebase. A DV specialized support module comprising a DV function only codebase, wherein the DV has access to the common compiler module. An RP specialized support module can comprise an RP function only codebase, wherein the codebase is common for both DV and RP, and wherein top-level APIs are designed for both DV and RP. Responsive to completing the DV test, TC disables the plugins and injects traffic for the DV test, and wherein TC reports testing results.

METHOD AND SYSTEM FOR COMPILER OPTIMIZATION BASED ON ARTIFICIAL INTELLIGENCE
20220179635 · 2022-06-09 ·

This application describes methods, systems, and apparatus, including computer programs encoded on computer storage media, of an AI-assisted compiler. An example method includes obtaining intermediate code and executable code generated by compiling a computer program with a compiler; determining a reward based on one or more traces obtained by executing the executable code in a runtime system; generating an embedding vector based on the intermediate code and the one or more traces to represent code execution states; determining, using a reinforcement learning agent, one or more optimization actions based on the embedding vector and the reward; and updating the compiler by applying the one or more optimization actions.

Open compiler system for the construction of safe and correct computational systems
11216255 · 2022-01-04 · ·

An open compiler system for the construction of safe and correct computational systems. This system allows a user to define multiple computational resources, each of which containing multiple computations, which, together, provide some desired functionality. This system generates the artifacts required to create such computational resources, may verify logical properties of such a system, may integrate user-defined programs in the process of compiling such artifacts, and may allow for the deployment, debugging, and monitoring of such computational resources.

ENTERPRISE WEB APPLICATION CONSTRUCTOR SYSTEM AND METHOD

A web-based application constructor can be used to construct a web display. A specification, for constructing a web display to contain page components that display data from heterogeneous data sources, may be created. The page components may be associated with uniform resource locators. Data from heterogeneous data sources may be retrieved to produce the web display. Display and update of the page components may be controlled using the uniform resource locators. User-selectable options may allow annotation of the page components for a page with comments.

Methods and devices for computing a memory size for software optimization

There is provided methods and devices for computing a tile size for software optimization. A method includes receiving, by a computing device, information indicative of one or more of a set of loop bounds and a set of data shapes; processing, by the computing device, the information to determine a computation configuration based on the obtained information, the computation configuration implementable by a compiler, said processing including evaluating at least the computation configuration based on a build cost model, the build cost model representative of a data transfer cost and a data efficiency of the computation configuration; and transmitting, by the computing device, instructions directing the compiler to implement the computation configuration.