Re: [Linux-ia64] gcc won't inline function returning struct?

2001-10-31 Thread Jim Wilson
The IA-64 ABI says that structures of floats are passed/returned decomposed into floating point registers. They ABI calls them homogeneous floating-point aggregates, or HFA for short. This also applies to complex types. Thus your structure typedef struct { float re, im;

Re: [Linux-ia64] gcc won't inline function returning struct?

2001-10-31 Thread n0ano
Jim- Just out of idle curiousity, what would happen if the `complex' structure were changed to something like: typedef struct { float re, im; int dummy; } complex; Since this is no longer an HFA would this kick the compiler into a mode where the

Re: [Linux-ia64] gcc won't inline function returning struct?

2001-10-31 Thread Jim Wilson
typedef struct { float re, im; int dummy; } complex; I tried this, and it works. Since this is no longer an HFA would this kick the compiler into a mode where the code would at least work, all be it not in the most efficient manner? Just to

Re: [Linux-ia64] gcc won't inline function returning struct?

2001-10-31 Thread Matthew Wilcox
On Wed, Oct 31, 2001 at 04:27:17PM -0800, Jim Wilson wrote: extern inline means emit this function inline if you can, otherwise emit nothing. Since gcc makes no promise that it will inline any function, it is inherently unsafe to put extern inline in a C file. There is no guarantee that it