Hacker News new | past | comments | ask | show | jobs | submit login

Are you familiar with this classic example? http://blog.llvm.org/2011/05/what-every-c-programmer-should-...

The problem (if I understand it right) is that "Redundant Null Check Elimination" might be run first, and will get rid of the safety return. But then the "Dead Code Elimination" can be run, which gets rid of the unused read, and thus removes the crash. Which means that rather than being logically equivalent, you can end up with a situation where /* do real stuff */ (aka /* launch missiles */) can be run despite the programmer's clear intentions.




Right, each optimization is fine on its own but the combination is dangerous.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: