logoalt Hacker News

tsukikage • today at 2:56 PM • 3 replies • view on HN

The article makes no mention of optimisation use cases. In case anyone already knows off the top of their heads and before I start digging for the answer, is part of the intent here for these to inform the optimiser stages, perhaps similarly to what the if (!(some_condition)) { __builtin_unreachable(); } idiom can achieve?


Replies

leni536 • today at 9:11 PM

That is not a primary goal. There was a discussion about "assume" semantics, but that is not one of the standardized contract evaluation semantics.

throwaway17_17 • today at 3:02 PM

Allegedly the pre and post conditions, in varying degrees of certainty according to the evaluation semantics selected, are propagated to the optimization passes of gcc and llvm. However, I haven’t seen any detailed blog posts or summaries of the effectiveness or reliability of this feature. Sorry it’s not a lot of info, but it was what I knew off hand based on previous reading.

➕ show 1 reply
i2talics • today at 5:15 PM

I don't get the impression that these are meant to influence optimization at all.