Если вообще есть оптимизация, вполне вероятно, что 3
никогда даже не попадет в регистр. Скорее компилятор распознает, что x
имеет значение 3 и заменит 3 для следующего использования x
, возможно, с помощью, например, инструкции немедленного добавления, которая сначала не помещает значение в регистр.
Или компилятор может оптимизировать x
в регистр, поэтому значение x
никогда не будет храниться в памяти и, следовательно, никогда не будет проходить через кеш.
А некоторые процессоры имеют так называемый «кэш с хранением», что означает, что если x
назначено место хранения, значение может быть помещено в это место без первого / одновременного помещения в кэш хранения.
Таким образом, мы можем определенно сказать, что значение 3
может появиться где-то в кэше. Иногда.