[llvm-commits] PATCH: remove VICmp and VFCmp.

Eli Friedman eli.friedman at gmail.com
Fri Jul 10 07:40:40 PDT 2009


On Fri, Jul 10, 2009 at 7:25 AM, Duncan Sands<baldrick at free.fr> wrote:
> almost, but you need to take alignment into account.  For example,
> for x86 long double the spacing between elements is 2 or 6 bytes
> due to alignment (depends on the platform: on x86-32 linux it is
> 4 byte alignment, on darwin it is 8 byte alignment; the x86 long
> double itself is 10 bytes long).  Because of this it is not possible
> to get the right width without target data.

That's not going to work: the validity of IR isn't allowed to depend
on target data.

So now we have four conflicting requirements: a store+load with two
non-aggregate first class types of the same width must be
transformable into a bitcast, vectors must have the same layout in
memory as arrays, the legality of a bitcast must not depend on target
data, and bitcasts are only legal between types of the same width.
Any ideas for how to resolve this?

-Eli




More information about the llvm-commits mailing list