Hi David, On 4/4/22 11:50, David Laight wrote:
> while (pwrpriv->bInSuspend && I've looked into what gcc11 produced from this function and looks like my compiler is smart enough to not cache that value, but I am afraid not all compilers are that smart.The compiler can't cache the value because of the function call.
Hm, I am a newbie in compilers, so can you, please, explain (or give a link to any resource where I can read about it) how function call here prevent caching.
IIUC compiler generates code that works well in scope of single-threaded application, so why can't compiler cache that value instead of accessing memory on each iteration... Isn't register access a way faster than even cache hit?
Thanks! With regards, Pavel Skripkin
Attachment:
OpenPGP_signature
Description: OpenPGP digital signature