[LLVMdev] LLVM IR Type System Rewrite

Rafael Ávila de Espíndola rafael.espindola at gmail.com
Sun Feb 27 12:50:16 PST 2011


> I don't see this as requiring a type merging pass.  A better way to
> handle this (IMO) would be to generalize constant merging to handle
> bit identities, which would allow it to merge things like:
> 
> @a = unnamed constant i32 0 @b = unnamed constant float 0.0
> 
> This can be done today, and then the type system change won't affect
> constant merging.

It is true that it is better to have passes know that different types
can have the same bits, but a type merging pass would still be useful
for the passes that have not been updated or just for reducing the size
of a bitcode file.

The main question is if such a pass would be legal, or if we would
guarantee that Foo and Bar in the above examples would remain as two
different types.

> 
> -Chris

Thanks,
Rafael



More information about the llvm-dev mailing list