https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118992
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|Redundant argument set up |Redundant argument set up
|for tail call |for call
Component|tree-optimization |target
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Hmm, looks like this works for aarch64, arm, power.
Also it does nothing to do with tail calls.
Even:
```
void bar0 (int);
void bar1 (int);
void g();
void
foo (int i)
{
switch (i)
{
case 0: bar0 (i); break;
case 1: bar1 (i); break;
}
g();
}
```
Fails to work on x86_64 but works on aarch64 and other targets.