Hacker News new | ask | show | jobs
by hardware2win 811 days ago
Why would you want to remove those calculations?

You would change behavior of this program

1 comments

How? Except it would finish sooner. The is no behavior.
There is a side effect like cpu temperature increase

If I put my leg on my desktop tower then I may feel enjoyably warm or if I put some chocolate on my laptop then it may start melting

Also fans will be louder

None of that is behavior according to the java (or any sane) language specification, so it can be optimized out of existence.
It is written in other, more general "specification" called physics

Computers arent purely abstract, they exist in real world and are affected by it, so lets do not try to pretend otherwise

So according to that "specification" no optimization is allowed. Since that would almost always change the "heating behavior" of code. Therefore, it is absurd.
None at all, even out of order execution. For that matter, executing the same code on different hardware is right out. Every program must be implemented on single-purpose hardware, and you can't even manufacture two of them.
Yet the compiler writers care only about the language spec, and you can bet that failing to optimize this as dead code would be considered a compiler bug.

This goes not only for Java compiler, but many other languages as well.

Sometimes compiler engineers try to be too smart and they end up creating a mess :)

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=8537

>When optimizing code for "dead store removal" the optimizing compiler may remove code necessary for security.

What exactly do you expect an optimizing compiler to do?
Leave code without obvious side effects alone (this is different from dead code)
Not sure if being facetious, but FWIW you can't really rely on these. Next year you'll get a much faster CPU and memory and the timing will be all different. Or, tomorrow you run it while encoding video on the CPU which eats 99% of CPU, and it's hundred times slower.
Obviously, there is an xkcd for that: https://xkcd.com/1172/