https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94566

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|11832, 33315                |
         Depends on|                            |33315

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
I've verified my old fix for PR33315 does

t.C:11:45: optimized: sinking common stores to D.8528._M_value
...
conv2 (int i)
{
  struct strong_ordering D.8528;
  int _7;

  <bb 2> [local count: 1073741817]:
  switch (i_2(D)) <default: <L3> [0.00%], case -1: <L5> [33.33%], case 0: <L1>
[33.33%], case 1: <L2> [33.33%]>

  <bb 3> [local count: 357913942]:
<L1>:
  goto <bb 6>; [100.00%]

  <bb 4> [local count: 357913942]:
<L2>:
  goto <bb 6>; [100.00%]

  <bb 5> [count: 0]:
<L3>:
  __builtin_unreachable ();

  <bb 6> [local count: 1073741824]:
  # _7 = PHI <-1(2), 0(3), 1(4)>
<L5>:
  D.8528._M_value = _7;
  return D.8528;

still not optimized further tho.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11832
[Bug 11832] Optimization of common stores in switch statements
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=33315
[Bug 33315] stores not commoned by sinking

Reply via email to