Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The compiler is allowed to act as if this loop executes exactly 16 times. That means it could unroll and vectorize it for example.


It is completely useless to allow compilers to assume false things about the code they generate.


It’s not useless. The assumption is not false if the program doesn’t have undefined behavior. The assumption allows the code to be a few times faster. To disallow this assumption would inhibit these optimizations.


a) the assumption is not false if it is not false! b) the speedup is not shown anywhere


The speedup is more or less the difference between O1 and O3 optimization levels.




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

Search: