Compiler Symbol Table Register Allocation for Temporary Arrays

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvememory access speedVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

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.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If temporary arrays are allocated to general-purpose registers, then memory access efficiency improves, but register availability may be insufficient

Engineering Contradiction:
Improvecompilation efficiencyVSAvoidregister availability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

3Loss of energy

If temporary arrays are stored in private memory, then register availability is maintained, but resource wastage occurs due to slower access

Engineering Contradiction:
Improveresource wastageVSAvoidmemory access performance
Core Design Contradiction:
Loss of energyVSEase of operation

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20260023543A1Compiler symbol table support to avoid private memory spills for temporary array accesses
Publication Date: 2026.01.22 QUALCOMM INC
  • US20260023543A1 patent drawing
  • US20260023543A1 patent drawing
  • US20260023543A1 patent drawing

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.