[Bug c++/87205] Inefficient code generation for switch
glenjofe at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Sep 3 18:44:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87205
Glen Joseph Fernandes <glenjofe at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |glenjofe at gmail dot com
--- Comment #1 from Glen Joseph Fernandes <glenjofe at gmail dot com> ---
Interestingly, I observed that moving the default label first produces a better
result:
void f(int);
void h(unsigned i)
{
switch (i) {
default: __builtin_unreachable();
case 0: f(42); break;
case 1: f(42); break;
case 2: f(42); break;
case 3: f(42); break;
case 4: f(42); break;
case 5: f(42); break;
}
}
At -O2 or higher generates:
h(unsigned int):
mov edi, 42
jmp f(int)
More information about the Gcc-bugs
mailing list