[llvm-commits] RFC: initial union syntax support
    Chris Lattner 
    clattner at apple.com
       
    Thu May 14 13:44:38 PDT 2009
    
    
  
On May 14, 2009, at 1:04 PM, Frits van Bommel wrote:
> Nick Lewycky wrote:
>> Andrew Lenharth wrote:
>>> The whole point of this exercise is to remove bitcasts.  In fact,
>>> though I am not suggesting it, you could do away with bitcasts
>>> completely given unions.
>
> I disagree with this. Proper union support will allow more than just  
> doing away
> with bitcasts in a few places. A union type would have both the  
> maximum size and
> maximum alignment of any member, so that e.g. explicit padding to  
> get a union in
> a struct at the right alignment won't be necessary.
I think that unions are a potentially interesting feature, but they  
definately don't eliminate the need for pointer bitcasts.
Some random things:
1. Union types should be uniqued, but the type as written in the code  
should be used for uniquing.  u{i32, i32} should be distinct from  
u{i32}.
2. GEP into the union should be allowed.
3. We need a ConstantStruct equivalent.
4. Unions should work as first class aggregates, just like structs.
I haven't had a chance to look at the patch yet,
-Chris
    
    
More information about the llvm-commits
mailing list