Obsah:
Definice - Co znamená přidělení registrace?
Přidělení registru se týká praxe přiřazování proměnných k registrům, jakož i zpracování přenosu dat do a z registrů. Přidělení registru může nastat:- Na základním bloku, známém jako alokace místního registru
- Přes celou funkci nebo postup, známý jako alokace globálního registru
- Přes hranice funkcí procházené pomocí grafu volání, známého jako inter-procedurální přidělení registru
Techopedia vysvětluje registraci přidělení
Během kompilace by kompilátor měl určit způsob, jakým jsou proměnné přiřazeny malému, specifickému rozsahu registrů. Některé z proměnných nemusí být používány nebo se říká, že jsou "živé" současně. To vede k přiřazení některých registrů více proměnným. Nicméně žádné dvě současné živé proměnné nelze přiřadit k přesně stejnému registru bez poškození hodnoty.
Proměnné, které nelze přiřadit k některým registrům, musí být uloženy v paměti RAM a měly by být načteny a vypuštěny pro každý čtení a zápis, což je postup známý jako rozlití. Přístup k registrům je mnohem rychlejší než přístup k paměti RAM. Kromě toho urychluje dobu provádění kompilovaného programu; cílem efektivních kompilátorů je proto přiřadit registrům co nejvíce proměnných.
Většina alokátorů registrů obecně přiřazuje každou proměnnou hlavní paměti nebo registru centrální procesorové jednotky (CPU). Rychlost je klíčovou výhodou při používání registru. Počítače mají omezenou škálu registrů, což znamená, že ne všechny dostupné proměnné mohou být registrům přiřazeny. Proces posunu proměnné z registru do paměti je znám jako rozlití, zatímco reverzní postup přesunu proměnné z paměti do registru je známý jako plnění. Inteligentní přidělování registrů je klíčovým krokem pro všechny kompilátory.
Existují dva typy přidělování registrů:
- Přiřazení místního registru: Jedná se o proces přidělování jednoho základního bloku (nebo hyper bloku nebo super bloku) najednou. Přidělení místního registru zvyšuje rychlost.
- Globální alokace registrů: Pokud je využití registru špatné pomocí místního přidělování, je důležité využít alokaci globálních registrů. V jednoduché alokaci globálního registru jsou nejaktivnější hodnoty přiřazeny v každé vnitřní smyčce. Úplné přidělení globálního registru používá postup k identifikaci živých rozsahů v grafu toku řízení, přiřazení živých rozsahů a podle potřeby také rozdělení oblastí.
