Re: CFR: a new __unreachable() builtin

From: David Chisnall <David.Chisnall_at_cl.cam.ac.uk>
Date: Wed, 13 May 2015 17:09:43 +0100
On 13 May 2015, at 17:05, Pedro Giffuni <pfg_at_FreeBSD.org> wrote:
> 
> Hello;
> 
> I am looking at the cdefs in other BSDs hoping to avoid adopting the
> same definitions with incompatible names and I noticed NetBSD is using
> a new __builtin_unreachable (void) function from gcc 4.6:
> 
> https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html
> 
> Apparently it was interesting enough that clang implemented it too so
> I created a code review differential for it.
> 
> https://reviews.freebsd.org/D2536
> 
> I don't want to add new C definitions unless they are going to be used
> so feel free to comment on the convenience or not of having it.

LLVM uses this quite heavily, in a macro that expands to something equivalent to assert(0 && "unreachable reached!”) in debug mode and __builtin_unreachable() in release mode.  When you’re debugging, you get errors if you reach unreachable code and in deployment the compiler gets a useful hint for optimisation.

David
Received on Wed May 13 2015 - 14:09:45 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:57 UTC