Klucove slovo register je honorovane uplne bezne. Zo skusenosti to ma vplyv na alokator premennych a je tak stale mozne posunut premennu k alokacii do registra namiesto na zasobnik.
Mam presne jedno pouzitie toho registra v kode na mieste, kde saham do nastavenia zasobnika a potrebujem, aby sa tych par riadkov kodu nepouzival. Mam v tom kontexte ale aktivnu jednu lokalnu premennu. Je tagnuta klucovym slovom register a prekladac ju ochotne alokuje do registra aj v -O0 aj v -O2 buildoch.
gcc mělo historicky pro "register" váhu jen "+1".
Interně vypočítaná váha, jestli má/nemá být proměnná v registru, byla násobně vyšší - odvozena od odhadnutém počtu přístupů, násobena počtem iterací cyklu.
"register" nebylo úplně ignorováno, ale v praxi to mělo minimální vliv.
Kdyby se náhodou potkaly dvě proměnné se stejnou váhou, pak hint "register" rozhodne, jinak ne.