[Bug middle-end/37710] When peeling an ordinary label off a case-table and making it a default label, strip from the end with identical labels.

2021-08-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37710 --- Comment #4 from Andrew Pinski --- and yes we get code that looks like: xorl%eax, %eax cmpl$-34, %edi jb .L1 negl%edi cmpl$34, %edi ja .L3 jmp *.L5(,%rdi,8)

[Bug middle-end/37710] When peeling an ordinary label off a case-table and making it a default label, strip from the end with identical labels.

2021-08-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37710 --- Comment #3 from Andrew Pinski --- Here is a new testcase: extern void abort (void); extern char *name1; extern char *name2; int stab_xcoff_builtin_type (int typenum) __attribute__((noclone,noinline)); int stab_xcoff_builtin_type (int

[Bug middle-end/37710] When peeling an ordinary label off a case-table and making it a default label, strip from the end with identical labels.

2021-08-28 Thread pinskia at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37710 --- Comment #2 from Andrew Pinski --- Note we almost optimize out the testcase now to just: [local count: 1073741819]: typenum.0_1 = (unsigned int) typenum_4(D); _2 = typenum.0_1 + 34; if (_2 > 33) goto ; [34.00%] else goto ;

[Bug middle-end/37710] When peeling an ordinary label off a case-table and making it a default label, strip from the end with identical labels.

2008-10-02 Thread rguenth at gcc dot gnu dot org
--- Comment #1 from rguenth at gcc dot gnu dot org 2008-10-02 11:08 --- This basically boils down to moving optimizing case labels earlier (we do so after going out-of-ssa). -- rguenth at gcc dot gnu dot org changed: What|Removed |Added