发展历程 什么是寄存器分配? -技术百科的定义

什么是寄存器分配? -技术百科的定义

目录:

Anonim

定义-寄存器分配是什么意思?

寄存器分配是指将变量分配给寄存器以及处理数据进出寄存器的实践。 寄存器分配可能会发生:

  • 在一个基本块上,称为本地寄存器分配
  • 在整个功能或过程中,称为全局寄存器分配
  • 通过调用图遍历的函数边界,称为过程间寄存器分配

Techopedia解释了寄存器分配

在编译过程中,编译器应确定将变量分配给特定范围较小的寄存器的方式。 某些变量可能未使用或被称为“实时”。 这导致将某些寄存器分配给多个变量。 但是,在不破坏值的情况下,不能将两个同时的活动变量分配给完全相同的寄存器。


无法分配给某些寄存器的变量需要存储在RAM中,并且应该分别为每次读取和写入而装入和取出,这一过程称为溢出。 访问寄存器比访问RAM要快得多。 另外,它加快了编译程序的执行时间; 因此,高效的编译器旨在为寄存器分配尽可能多的变量。


通常,大多数寄存器分配器会将每个变量分配给主存储器或中央处理器(CPU)寄存器。 使用寄存器时,速度是关键优势。 计算机具有有限范围的寄存器,这意味着并非所有可用变量都可以分配给寄存器。 将变量从寄存器移至存储器的过程称为溢出,而将变量从存储器移至寄存器的反向过程称为填充。 对于任何编译器而言,智能寄存器分配都是至关重要的一步。


寄存器分配有两种类型:

  • 本地寄存器分配:这是一次分配一个基本块(或超级块或超级块)的过程。 本地寄存器分配可以提高速度。
  • 全局寄存器分配:如果使用本地分配的寄存器利用率很低,则使用全局寄存器分配很重要。 在简单的全局寄存器分配中,最活跃的值分配在每个内部循环中。 完整的全局寄存器分配使用以下过程来识别控制流程图中的有效范围,分配有效范围以及根据需要拆分范围。
什么是寄存器分配? -技术百科的定义