• Title/Summary/Keyword: register allocation

Search Result 40, Processing Time 0.026 seconds

The Design of A Register Allocation Phase for RISC Compilers (RISC 컴파일러 레지스터 할당부 설계)

  • 박종덕;임인칠
    • Journal of the Korean Institute of Telematics and Electronics
    • /
    • v.27 no.8
    • /
    • pp.1211-1220
    • /
    • 1990
  • This paper describes and implements a design method of register allocation as a required module of RISC compiler systems. It compiles a C program to a machine-independent intermediate language, translates each variable into symbolic register. After local allocation process for the symbolic registers, global register allocation is executed by applying the graph coloring algorithm. This register allocation phase is designed for a system with the large register file like RISC machines.

  • PDF

A Systematic Generation of Register-Reuse Chains (레지스터 재활용 사슬의 체계적 생성)

  • Lee, Hyuk-Jae
    • The Transactions of the Korean Institute of Electrical Engineers A
    • /
    • v.48 no.12
    • /
    • pp.1564-1574
    • /
    • 1999
  • In order to improve the efficiency of optimizing compilers, integration of register allocation and instruction scheduling has been extensively studied. One of the promising integration techniques is register allocation based on register-reuse chains. However, the generation of register-reuse chains in the previous approach was not completely systematic and consequently it creates unnecessarily dependencies that restrict instruction scheduling. This paper proposes a new register allocation technique based on a systematic generation of register-reuse chains. The first phase of the proposed technique is to generate register-reuse chains that are optimal in the sense that no additional dependencies are created. Thus, register allocation can be done without restricting instruction scheduling. For the case when the optimal register-reuse chains require more than available registers, the second phase reduces the number of required registers by merging the register-reuse chains. Chain merging always generates additional dependencies and consequently enforces the execution order of instructions. A heuristic is developed for the second phase in order to reduce additional dependencies created by merging chains. For matrix multiplication program, the number of registers resulting from the first phase is small enough to fit into available registers for most basic blocks. In addition, it is shown that the restriction to instruction scheduling is reduced by the proposed merging heuristic of the second phase.

  • PDF

A Register Scheduling and Allocation Algorithm for Low Power High Level synthesis (저전력 상위 레벨 합성을 위한 레지스터 스케줄링 및 할당알고리듬)

  • 최지영;인치호;김희석
    • Proceedings of the IEEK Conference
    • /
    • 2000.11b
    • /
    • pp.188-191
    • /
    • 2000
  • This paper presents a register scheduling and allocation algorithm for high level synthesis. The proposed algorithm executes the low power scheduling to reduce the switching activity using shut down technique which was not unnecessary the calculation through the extraction DFG from VHDL description. Also, the register allocation algorithm determines the minimum register after the life time analysis of all variable. It is minimum the switching activity using graph coloring technique for low power consumption. The proposed algorithm proves the effect through various filter benchmark to adopt a new scheduling and allocation algorithm considering the low power.

  • PDF

An Optimal Register resource Allocation Algorithm using Graph Coloring

  • Park, Ji-young;Lim, Chi-ho;Kim, Hi-seok
    • Proceedings of the IEEK Conference
    • /
    • 2000.07a
    • /
    • pp.302-305
    • /
    • 2000
  • This paper proposed an optimal register resource allocation algorithm using graph coloring for minimal register at high level synthesis. The proposed algorithm constructed interference graph consist of the intermediated representation CFG to description VHDL. and at interference graph fur the minimal select color selected a position node at stack, the next inserted spill code and the graph coloring process executes for optimal register allocation. The proposed algorithm proves to effect that result compare another allocation techniques through experiments of bench mark.

  • PDF

The Analysis of Global Register Allocation Algorithms (전역 레지스터 할당 알고리즘 분석)

  • 박종득
    • Proceedings of the IEEK Conference
    • /
    • 2000.06c
    • /
    • pp.51-54
    • /
    • 2000
  • In this paper, an compiler system is ported and modified for register allocation experiments. This compiler system will enable various global register allocation. Lcc is introduced and Chaitin's graph coloring algorithm is executed with cmcc on DEC ALPHA 255/300. Several functions of SPEC921NT is used as inputs of the compiler system.

  • PDF

Pair Register Allocation Algorithm for 16-bit Instruction Set Architecture (ISA) Processor (16비트 명령어 기반 프로세서를 위한 페어 레지스터 할당 알고리즘)

  • Lee, Ho-Kyoon;Kim, Seon-Wook;Han, Young-Sun
    • The KIPS Transactions:PartA
    • /
    • v.18A no.6
    • /
    • pp.265-270
    • /
    • 2011
  • Even though 32-bit ISA based microprocessors are widely used more and more, 16-bit ISA based processors are still being frequently employed for embedded systems. Intel 8086, 80286, Motorola 68000, and ADChips AE32000 are the representatives of the 16-bit ISA based processors. However, due to less expressiveness of the 16-bit ISA from its narrow bit width, we need to execute more 16-bit instructions for the same implementation compared to 32-bit instructions. Because the number of executed instructions is a very important factor in performance, we have to resolve the problem by improving the expressiveness of the 16-bit ISA. In this paper, we propose a new pair register allocation algorithm to enhance an original graph-coloring based register allocation algorithm. Also, we explain about both the performance result and further research directions.

A New Register Allocation Technique for Performance Enhancement of Embedded Software (내장형 소프트웨어의 성능 향상을 위한 새로운 레지스터 할당 기법)

  • Jong-Yeol, Lee
    • Journal of the Institute of Electronics Engineers of Korea SD
    • /
    • v.41 no.10
    • /
    • pp.85-94
    • /
    • 2004
  • In this paper, a register allocation techlique that translates memory accesses to register accesses Is presented to enhance embedded software performance. In the proposed method, a source code is profiled to generate a memory trace. From the profiling results, target functions with high dynamic call counts are selected, and the proposed register allocation technique is applied only to the target functions to save the compilation time. The memory trace of the target functions is searched for the memory accesses that result in cycle count reduction when replaced by register accesses, and they are translated to register accesses by modifying the intermediate code and allocating Promotion registers. The experiments where the performance is measured in terms of the cycle count on MediaBench and DSPstone benchmark programs show that the proposed method increases the performance by 14% and 18% on the average for ARM and MCORE, respectively.

An Aggressive Register Allocation Algorithm for EPIC Architectures (EPIC 아키텍쳐를 위한 적극적 레지스터 할당 알고리듬)

  • Choe, Jun-Gi;Lee, Sang-Jeong
    • The Transactions of the Korea Information Processing Society
    • /
    • v.6 no.2
    • /
    • pp.497-511
    • /
    • 1999
  • Recently, many parallel processing technologies were developed, ILP(Instruction level Parallelism) processor's performance have been growed very rapidly. especially, EPIC(Explicitly Parallel Instruction computing) architectures attempt to enhance the performance in the predicated execution and speculative execution with the hardware. In this paper to improve the code scheduling possibility by applying to the characteristics of EPIC architectures, a new register allocation algorithm is proposed. And we proves that proposed register allocation algorithm is more efficient scheme than the conventional scheme when predicated execution is applied to our scheme by experiments. In experimental results, it shows much more performance enhancement, about 19% in proposed scheme than the conventional scheme. So, our scheme is verified that it is an effective register allocation method.

  • PDF

Faster Binary Translation by Delayed Deallocation of Temporary Registers (레지스터 사용해제 지연을 통한 바이너리 변환 성능향상)

  • Choi, Min
    • Proceedings of the Korean Institute of Information and Commucation Sciences Conference
    • /
    • 2013.05a
    • /
    • pp.494-496
    • /
    • 2013
  • In this paper, we introduce a technique for delayed deallocation of temporary register allocation. We achieve faster binary translation that is used in the context of register allocation. By delaying deallocation of the temporary register containing the value, it is preserved until the next instruction fetched. If subsequent instruction does not require the value again, binary translator deallocate and release the temporary register at the first stage of the next instruction.

  • PDF

A Hardware Allocation and Binding Algorithm for ASIC Design (ASIC설계를 위한 하드웨어 할당 및 바인딩 알고리듬)

  • Choe, Ji-Yeong;In, Chi-Ho;Kim, Hui-Seok
    • The Transactions of the Korea Information Processing Society
    • /
    • v.7 no.4
    • /
    • pp.1255-1262
    • /
    • 2000
  • This paper proposes a hardware allocation and binding algorithm for ASIC Design. The proposed algorithm works on schedules input graph and simultaneously allocates and binds functional units, interconnections and registers by considering interdependency between operations and storage elements in each control step, in order to share registers and interconnections connected to functional units, as much as possible. Especially, he register allocation is executes the allocation optimal using graph coloring. This paper shows the effectiveness of the algorithm by comparing experiments to determine number of functional unit and register in advance or to separate executing allocation and binding of existing system.

  • PDF