On Jun 20, 2006, at 7:20 AM, Andrew Haley wrote:

Does using fields of auto variables of union type generate code that
is less efficient than it would be using scalars?

If it is only one used field at a time (and the address is not taken),
then FRE will resolve them.

Take:
int f(int t, int t1)
{

union f
{
  int n;
  float n1;
} f1, f2;
f1.n = t;
f2.n1 = t1;
int t2 = f1.n;
f1.n1 = t2;
return f1.n1 + f2.n1 * f1.n1;
}

in final_cleanup, we get:
  D.1522 = (float) t;
  return (int) (D.1522 + (float) t1 * D.1522);

Reply via email to