efriedma added a comment.

> Now, we could theoretically use a different ABI rule for vectors defined with 
> Clang-specific extensions, but that seems like it would cause quite a few 
> problems of its own.

I think we can't reasonably impose this ABI rule on vectors defined with 
ext_vector_type: that makes it impossible to build portable OpenCL code for 
32-bit x86, given the side-effects of introducing any use of the x86_mmx type.  
So that leaves us with two options: make vector_size and ext_vector_type 
incompatible, or revert this patch and intentionally remain ABI-incompatible 
with gcc. (I guess we could theoretically try to separate out a special case 
for OpenCL instead, but that seems even more fragile.)

Being ABI-incompatible is obviously inconvenient if you're writing code using 
MMX types/intrinsics, but using MMX intrinsics is sort of "at your own risk" 
anyway, given neither LLVM nor gcc properly manages the state of the MMX/x87 
register file.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D59744/new/

https://reviews.llvm.org/D59744



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to