This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/46555] [4.9/5/6 Regression] PHI RTL expansion leads to CSiBE regression


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

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
PRE does some of it via tail merge:
find_duplicates: <bb 7> duplicate of <bb 8>
find_duplicates: <bb 7> duplicate of <bb 9>
Removing basic block 8
Removing basic block 9

Obviously if you have more complex code it won't do it.
This an example where PRE does it:
int h(void);
int f(int a, int b, int c)
{
  if (a)
    return 2;
  h();
  if (b)
    return 2;
  h();
  if (c)
    return 2;
  h();
  return 4;
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]