This is the mail archive of the gcc@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]

Re: Severe problems with vectorizing stuff in 4.0.3 HEAD


On Fri, Oct 14, 2005 at 04:35:48PM -0700, Kean Johnston wrote:
> This seems far less invasive that redefining an ABI.

No, it isn't less invasive.

Your first case is not too difficult.  No more difficult, really,
than supporting alloca.  Indeed, this is more or less exactly the
code we emit in main.  (Which got bypassed with the tailcall.)

Your second case results in a variable displacement between the
local stack frame and the incoming function arguments.  This means
we need an extra register to hold this displacement (or, equivalently,
a pointer to the base of the arguments).  Combine this with -fpic
and alloca and 4 of the 8 general registers are consumed.  At this
point, lots of code stops compiling.

You're coming into this discussion about 6 years late.

> I think, and I may be wrong here, but I think if I simply
> make sure that entry to main is correctly aligned, then
> the majority of code will just work.

Yes.  Which is exactly why the dynamic alignment solutions were
rejected.  There's simply not enough gain.

> The only other time it's likely to be
> an issue is with signal delivery...

And the code in the thread libraries that calls the thread start
routine.


r~


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