Undefined behaviour is a complex issue, but compiler devs seem alarmingly unaware that optimising for performance is one choice among many.
@stephenrkell A safety/hardening-oriented -O level would probably be welcome if someone wants to develop it.
-
-
@stephenrkell However lots of UB is nearly as dangerous even without optimizations that actively 'exploit' it. It's undefined for a reason. -
@RichFelker I'd say "many reasons", which is why this issue is so complex... (hmm, perhaps I should blog about this soonish). -
@stephenrkell Also, if you write a proper optimizing compiler, you have to go out of your way NOT to "exploit UB" or else badly pessimize. -
@RichFelker That's the conventional wisdom. Problem is I'm a serial doubter. Do you know any experiments that measure this effect? -
@stephenrkell I don't know how to measure the effect, but many historical aliasing/etc hacks I saw were obviously working around bad codegen -
@stephenrkell To quantify you'd need a tool to find such hacks in code from times when compilers were that bad, then guess motive by hand. -
@RichFelker Agreed it's hard to measure. Out of interest, would love to see any examples of said historical hacks.... -
@stephenrkell First example, my own strlen, which is pending either addition of proper may_alias attr or rewrite. http://git.musl-libc.org/cgit/musl/diff/src/string/strlen.c?id=571744447c23f91feb6439948f3a619aca850dfb … - 1 more reply
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.