[Bug tree-optimization/86263] [9 Regression] [nvptx] casesi, tablejump
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Jun 27 09:14:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86263
--- Comment #7 from Tom de Vries <vries at gcc dot gnu.org> ---
The pass_lower_switch<O0> has no effect. It generates a switch expansion at
bb12, but the function still uses the switch at bb10:
...
(gdb) call debug_function (cfun.decl, 0)
_dcvt (void * ptr, char type, int opt, int val)
{
char D.1454;
int _1;
char _12;
unsigned int _13;
unsigned int _14;
_Bool _15;
long unsigned int _16;
long unsigned int _17;
_Bool _18;
long unsigned int _19;
_Bool _20;
long unsigned int _21;
_Bool _22;
<bb 2> :
_1 = (int) type_3(D);
<bb 11> :
goto <bb 10>; [100.00%]
<bb 12> :
_13 = (unsigned int) _1;
_14 = _13 + 4294967227;
_15 = _14 > 34;
if (_15 != 0)
goto <bb 8>; [INV]
else
goto <bb 13>; [INV]
<bb 13> :
_16 = 1 << _14;
_17 = _16 & 4294967297;
_18 = _17 != 0;
if (_18 != 0)
goto <bb 7>; [INV]
else
goto <bb 14>; [INV]
<bb 14> :
_19 = _16 & 17179869188;
_20 = _19 != 0;
if (_20 != 0)
goto <bb 4>; [INV]
else
goto <bb 15>; [INV]
<bb 15> :
_21 = _16 & 8589934594;
_22 = _21 != 0;
if (_22 != 0)
goto <bb 3>; [INV]
else
goto <bb 16>; [INV]
<bb 16> :
goto <bb 8>; [INV]
<bb 10> :
switch (_1) <default: <L8> [INV], case 69: <L6> [INV], case 70: <L0> [INV],
case 71: <L2> [INV], case 101: <L6> [INV], case 102: <L0> [INV], case 103: <L2>
[INV]>
<bb 3> :
<L0>:
f1 (ptr_5(D));
goto <bb 8>; [INV]
<bb 4> :
<L2>:
if (opt_7(D) == 0)
goto <bb 5>; [INV]
else
goto <bb 6>; [INV]
<bb 5> :
opt_8 = 1;
<bb 6> :
f2 (ptr_5(D));
goto <bb 8>; [INV]
<bb 7> :
<L6>:
f3 (ptr_5(D));
<bb 8> :
<L8>:
_12 = (char) val_11(D);
<bb 9> :
<L10>:
return _12;
}
...
More information about the Gcc-bugs
mailing list