>>740
言語仕様上の制約として register キーワード付きの変数はアドレスを取ることが出来なくなる。
(まともなコンパイラならアドレスを取ろうとするとエラーを通知する。)
当然だがアドレスが存在しなければならない変数はレジスタに載せられないので、
その逆にアドレスを取らなくていい変数であることを確約することで結果的にレジスタに載りやすくなる可能性はある。

gcc などは register キーワードの有無は変数をレジスタに載せるかどうかの決定を左右しないが、
レジスタに載せることが可能な変数の選択肢が多ければ結果的に最適化しやすくなるかもしれない。

まあ、よほど速度に厳しい箇所をチューニングするのでもなければ付けなくていいと思うけどね。