Re: Accessing the vector elements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Chris Lattner <clattner@xxxxxxxxx> writes:

> > But at my previous
> > company, we got significantly better generated code in some cases by
> > breaking that aliasing.  In particular this aliasing forces a pointer
> > to a vector of char to alias char* and therefore alias everything.
> > But if the compiler breaks that aliasing, then your suggestion of
> > using a cast will fail in some cases.
> 
> The compiler shouldn't break that aliasing, and using a union will
> give you poor code anyway.  LLVM will optimize either idiom into
> element extract/insert operations, but I don't think GCC will in an
> any case.  If you care about performance with GCC, you have to use
> ISA-specific builtins.

gcc generates efficient insert/extract with the union if the backend
is written correctly.  See the uses of vec_extract and vec_get in
extract_bit_field and store_bit_field in expmed.c.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux