Mercurial > projects > ldc
view tools/binding/llvmsample2.d @ 1506:76936858d1c6
Return `void*` from _d_allocclass so LLVM doesn't do weird things with it...
This allows `-instcombine` followed by `-gvn` to do devirtualization, so add
`-gvn` in strategic places in the default pass order.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Sat, 20 Jun 2009 11:39:13 +0200 |
parents | 1ba61de8796b |
children |
line wrap: on
line source
// simple test of recursive types. module llvmsample2; import llvm.llvm; void main() { auto th = new TypeHandle(); auto s = StructType.Get([ PointerType.Get(th.resolve) ], false); th.refine(s); s.dump(); th.dispose(); auto t = getTypeOf(s.ll); t.dump(); assert(s is t); }