Compiler Symbol Table Register Allocation for Temporary Arrays
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current techniques do not efficiently manage the storage and loading of temporary array values in private memory, leading to wastage of resources.
Innovation Solution
The method involves determining the size of temporary arrays in source code and allocating them to available registers in a compiler symbol table if the size is less than or equal to the available register capacity, and using the compiler symbol table to store and load these arrays during compilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If temporary arrays are stored in private memory, then memory capacity is sufficient, but memory access speed decreases and resources are wasted
Solution Approach 1:
The patent changes the storage location parameter of temporary arrays from private memory to general-purpose registers. By modifying this parameter, the system achieves faster access speeds while the register allocation mechanism ensures that register usage does not exceed available capacity, thus resolving the contradiction between speed and memory capacity utilization.
2Productivity
If temporary arrays are allocated to general-purpose registers, then memory access efficiency improves, but register availability may be insufficient
Solution Approach 1:
The patent implements a dynamic allocation strategy where the compiler evaluates the size of temporary arrays against available register capacity at compile time. This dynamic assessment allows the system to adaptively allocate registers when sufficient capacity exists, thereby improving compilation efficiency while preserving register availability for other purposes when registers are limited.
3Loss of energy
If temporary arrays are stored in private memory, then register availability is maintained, but resource wastage occurs due to slower access
Solution Approach 1:
The patent modifies the storage parameter from private memory to general-purpose registers for temporary arrays. This parameter change eliminates resource wastage by utilizing faster register access, while the compiled code generation ensures proper management of register resources, thereby improving ease of operation without significant energy loss.
Data Source
AI summary
This disclosure provides systems, devices, apparatus, and methods, including computer programs encoded on storage media, for processing a representation of source code. A processor may obtain a representation of source code. The processor may determine a first size of a set of temporary arrays of the representation. The processor may determine whether the first size of the set of temporary arrays is less than or equal to a second size of a set of available registers in a compiler symbol table. The processor may allocate the set of temporary arrays to the set of available registers in the compiler symbol table in response to the first size being less than or equal to the second size. The processor may compile the representation of source code to store the set of temporary arrays to the allocated set of available registers. The processor may output an indication of the compiled representation.


