[LLVMdev] Tagged (Disjoint) Unions
sabre at nondot.org
Wed May 3 11:08:13 PDT 2006
On Wed, 3 May 2006, Ben Chambers wrote:
> I realize I *COULD* do it as a pair of an integer tag and the data, or any of
> the numerous ways that have been devised for representing such types in other
> functional languages.
Yup, you should treat LLVM as a slightly-higher level machine language.
As such, you should lower it into an explicit "union" (using pointer casts
> The problem that I see is that any optimizations for
> which LLVM needs types to perform would basically be prohibited this
> technique. So, I guess what I'm asking is, is there a way of representing
> tagged union types in LLVM that doesn't prevent providing accurate type
No, there isn't.
More information about the llvm-dev